I am learning Geometry Nodes by creating procedural windows blinds. Thanks to the answers on my previous question I have solved some problems but now I want to get further.

I want create a number of slat composing windows blinds (done). I want to be able to rotate each slat through single input parameter (done).

Now I want to be able to animate those blinds in the way that slats will go top and down, stacking each other accordingly. I cannot find any suitable method for that as currently I am creating instances on points based on curve line. I was thinking about 2 ways:

  1. Using some rigging and making each lower slat a floor for the upper one. This way moving the last slat I shall be able to move all on top of it. But I don't know if it is possible to make such thing in a procedural way on each instance.
  2. Using some Python scripting and maybe avoid creating instances based on mesh line. But on the other hand I would like to use Geometry Nodes. Is it possible to mix Python scripting with Geometry Nodes?



1 Answer 1


You can use whatever techniques you want including Python or any rigging techniques on geometry created by Geometry nodes, but there is no need for it. You could simply animate properties of geometry nodes with simple keyframe animation:

enter image description here

You could make drivers as well if that works better for you with other rigs you might need, or you could simply control geometry nodes with position of some objects in the scene. It's just a matter of what you need and what's more convenient for you.

It could be something like this as well:

enter image description here

enter image description here

  • $\begingroup$ Also "scene time" node passed to a map range (usually with clamping enabled) is an option to control animation. $\endgroup$ Apr 4, 2023 at 9:19
  • 1
    $\begingroup$ Keyframe animation has more features, you can use Graph Editor to control interpolation visually and so on so that's why I would not recommend Scene Time node as the first solution, but sure, there are many ways to make it work. $\endgroup$ Apr 4, 2023 at 10:29
  • $\begingroup$ Thank you for the answer, but this exactly the way I did it so far. But it is not what I expect to achieve. I want those slats to behave exactly as in the real life. The Last slat on the bottom shall move and others shall stack on it and start moving up at some point. All the other slats shall preserve their distance to each other until the will not be pushed by the ones on the bottom. $\endgroup$ Apr 4, 2023 at 19:09
  • 2
    $\begingroup$ @user2301299 there are two ways to achieve that, one is a simulation, and I linked above how to do that. Another is to mathematically predict how a blind will be affected by other blinds. For example, you don't need to simulate a ball to know its height after a few bounces - you can use a formula to calculate it immediately. The former takes more time to figure out the workflow and is computationally expensive, the latter is fast but figuring out the mathematical formula can be very hard. $\endgroup$ Apr 5, 2023 at 11:16
  • 1
    $\begingroup$ @user2301299 I provided another example in the edited answer that might be closer to what you need. It's not a full solution, because I don't want to dedicate a lot of my time to this without having seen a specific example of what you are after, but it could be a start. $\endgroup$ Apr 5, 2023 at 12:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .