This post shows an idea of how to do something like this. The concept is that you have a class SquareCell which is defined by a size and position and it has a function call draw()
do draw itself. The code has an ArrayList of squares. In each frame you draw all the squares based on the noise pattern. The trick is that every so often in draw, say every 10 seconds, you change the grid pattern as to make the square smaller. When you do this, you remove all the squares in the list and then you add the squares back again with a new size and with a defined position, which is based on size. Let us know if this is enough info to get you started or if something is not clear.
By the way, if you want to try, there is a python mode in Processing. I am not good at it, but I could always give it a try.
Kf