I'm attempting to create a cubes wallpaper with an array of cube objects with different Z-offsets, where I can control the offset of each cube with a texture (height map) to get a more organic look (instead of randomizing the offsets, or moving the cubes manually).
At first, I added two array modifiers to a cube (along the X and Y axis), then applied the modifiers and separated the cubes so I can offset them individually (manually, or by a random transform). This had the downside that I needed to apply the modifiers (I'd rather work in a non-destructive way) and cannot get that organic look.
Next thing I tried is to create just a plane, and use a particle system to generate the cube particle instances in a grid pattern. For the offset, I used a copy of the plane with a Displace modifier backed by a texture underneath, with a sticky surface and high friction.
When stopping the simulation at the time the cube particles hit the displaced plane, it looks like what I was trying to acomplish:
At that time, some of the cubes already began to slide off the surface.
Now to my question: is there another way to get that look by using a cube, array modifiers, and some other modifier to displace just the cube location (not the actual cubes) along the Z-axis?