Animating an Array of Buttons with Geometry Nodes in Blender

Today I’ve been working on creating an array of buttons that land into place using Geometry Nodes in Blender. The idea was to animate each button with a slight delay so they rise into position in a smooth, procedural way. However, I wasn't able to create a proper ease-in animation with Geometry Nodes, so I ended up using sine wave motion instead.
Step-by-step instructions at a general level (still improving, but sticking to the process):
- Use a Grid node to define the layout for your array of buttons.
- Use a Scene Time node to drive the animation based on playback time.
- Offset each button’s animation using the Index node multiplied by a delay factor.
- Feed the time-offset value into a Sine node to create smooth up-and-down motion.
- Use Set Position to apply the vertical movement to each button.
- Bring in the base object using Group Input and duplicate it across the grid using Instance on Points.
- Connect the final result to Group Output to render the animated array.

This setup creates a simple but dynamic motion: each button moves with a sine wave pattern, staggered in time based on its position in the array. It’s a good stepping stone toward more complex easing and interaction behaviors.
This is how it looks: