# How to Randomly Delay Animation for Geometry Node Instances?

Is there a way how to randomly delay an animation? i mean i don't want a set of different instances to animate at the same time from 0% to 100% final animation state. So i want to introduce a random delay of maybe 0-3 seconds or something.

I have several of these types of animation setups on the timeline of these growth states animating from 0.0 - to 1.0.

• A noise function keyframe modifier with the blend method set to “add” might do this? Commented Apr 16, 2022 at 2:43
• useful related: blender.stackexchange.com/questions/299641/… Commented Aug 23, 2023 at 11:07

To achieve a delay of variable values in the context of your timeline, you would actually only need to define an offset and the duration of your animation.

You can accomplish this by using these two values together and mapping them to a specific range of values for scaling:

1. Define the offset and use it as Max value in the node Random Value. This defines a random start frame for the animation.
2. Subtract this resulting value from the current frame. So you get your offset times.
3. To make this value practical, use the Map Range node, again using your duration as the maximum value for the length of the animation and mapping the values to a range of $$0 - 1$$ for scaling.

Here is an overview of the Node group:

Here is the blend file:

• does this only work for instanced objects? is there away to apply it for n unique user-created objects as well? Commented Nov 3, 2022 at 21:31
• @Tejas I don't know your setup, but basically this should work. You could put the objects into a collection and include it with Collection Info. Commented Nov 3, 2022 at 21:49
• i'm not familiar with the collection method you speak of, all my objects are in a collection and i have dragged in the collection info node, now what? Commented Nov 3, 2022 at 22:06
• Commented Nov 3, 2022 at 22:25

Would this be suitable? I'm not sure what the output of greater than is (but if its just 1, or 0, use a math node to multiply the random value by that output 1). Once frame time is greater than your random number the rest of your nodes will start animating.

• thanks for your response. unfortunately this will only sort of work for one animation which is the one at starting at frame 0. it will not work for the following sets of animations that start further down the timeline. Also the "Growth" input parameter is on the timeline animating from 0 to 1. putting the condition will only stop it from flowing and once the condition is met it will not be 0 anymore but somewhere between 0 and 1 if not already 1. I need it still to be 0 and only start animating towards 1 when the condition is met. Commented Apr 16, 2022 at 14:54
• @HarryMcKenzie You could use bpy to set keyframes using my complex logic. I could upload some of my bpy scrips to github that I use to set complex animations using keyframes from csv data, but unfortunately it will only give you some guidelines. Commented Apr 16, 2022 at 18:31
• hey thank you. thats fine il just try to get an idea from it, can u kindly share a link? :) Commented Apr 16, 2022 at 22:57
• @HarryMcKenzie github.com/HarrisonLeece/blender_bpy_script_examples Check out the 'use bpy to keyframe' folder. Commented Apr 16, 2022 at 23:15
• @HarryMcKenzie ctrl-f 'keyframe_insert' Commented Apr 16, 2022 at 23:29