For anyone curious on how to add a texture to the bouncing balls here's how I did it. Add a "Set Material" node in between the "Simulation Output" and "Group Output". Then go into the "Material" settings to add a new material. Then go back to the "Set Material" node and assign it the material you added in the "Material" settings. That should do the trick.
Is your material textures/UV based or procedural? because I did the same for my project and the UV map was completely broken. I used the same material that was applied on the single object scattered in geonodes; maybe I should redo the UV unwrapping of the geometry and create a new material with the same textures
Had to refresh my memory on this by taking a look at my old file tonight. I used a procedural texture that was a mix shader with a noise texture and musgrave texture.@@willowproduction
Have you tried to see if it works for just a simple color using a simple BSDF? For testing purposes I mean before trying with your main material texture. @@willowproduction
This is the stuff that strains my brain the most so I'll need to watch multiple times before I digest the impact of each node in the logic. I am never satisfied just watching someone place the nodes without fully comprehending the variable, within the node tree, that each node or its value has a wide reaching effect upon. I feel I am most messed up by some of the socket names withing the realm of "true" and "false" in a switch node that is fed by a value from an inverse multiplication such as factors of less than zero . My weak brain wants to follow along like my eyes are doing but the: flipping conditional on false status of inversely factored values which equal a state which causes the addition of a velocity etc.......oh man ...lost. But I have a compelling case for the logic functioning fine because the simulation DOES run and I can see it. Being able to tinker with values and having their effect be immediately seen is one of the greatest parts of Blender geo-nodes.
I feel you and appreciate the message. I programmed for 10 years which allows me to grasp this stuff, but at the start it can be hard to understand. If you have any questions about anything in the video - feel free to ask.
@@RobbieTilton Thanks for your attention to the comment. I am able to work out the logic of the true false if then statements...eventually. IQ is about speed. I never formally took any programming. I have way less agility with such logic buried inside node trees. What I find I yearn for when watching these explanatory videos is a [pause-step back] moment where it the pre calculations of which nodes will accomplish the aim of the whole tree are done in advance so that , as the nodes are added, you can anticipate how they will affect what is already there and how they will affect the choice of paths to take to arrive at the desired destination.
I am trying to create a custom keyframe animation, then instance the animated geo, and trigger the animations (control the timing) based on the instance proximity to a controller object...is this achievable using simulation nodes?
I haven't tested in the latest version. Simulation nodes likely updated since I made this video. Hopefully I can have time soon to check it out and remake the video.
nice tutorial! Can I ask you how did you set the material to the spheres ? In my project I'm instancing a collection of objects on points extracted from the volume of the mesh and before the simulation every instance has his right material applied. If I put a viewer node after the simulation loop the materials are gone and the Set Material node applies the material to the entire geometry.
Update: managed using a single material setted in geonodes after the simulation and using "random per island" socket of the geometry info shader node to drive different materials on the single instances. It is an half solution because in works only for materials not UV map dependent
@@RobbieTilton yes I did the same, but it was not correct. It was like the UVmap of the single instance breaks after the simulation loop. I think it's because the objects instanced on the points are treated as a single geometry after the loop and not as a single object, so the material is applied to the entire geometry. Your ball material was UVmap dependent too?
Nice! I tried here and sometimes depending on the distance or accumulated speed of the instance it just goes trough the floor. Why is that and how would you do to overcome this kind of limitation?
with the movement and raycasting - each frame is basically a 'step' to process/evaluate. One way to help solve something where the speed of the ball is moving faster would be raycast from an offset position. For example u can racast 5m in the inverse direction of the velocity. and then when you elevaluate the is hit you add the 5m into ur math. most physics engines let you do more steps in-between frame, but with simulation nodes you're stuck w each frame being one step. so to my understanding that would be the best way to deal with it for now.
I downloaded a texture for a bball and applied it to the material w set material near the group output in node graph. You could also instance a different mesh w your texture instead of the uv sphere at the beginning of the graph.
@@RobbieTilton Have done separate object, simple sphere, object info, and all that. Still. White spheres. Dec 23 download of Blender. Thanks for the reply. Sorry to bother you with something that sholud just work.
@@covbloke511 very weird. i was using a november branch of simulation nodes... i'm wondering if it's a bug from their dec branch. You're always welcome to share ur file in the 'help' section of my discord and I can take a look.
Great stuff thank you Robbie!
No problem! Excited to see how you take it to the next level :)
@@RobbieTilton we'll see. Head still hurting ha
Very useful. Thank you!!! :)
short and clean, great video - thank you
Very Cool! Awesome video
Thank you for sahring, great tutorial, keep going!
Thank you so much! This helps me immensely for what I need to do.
Excellent, my Friend!! 👍 Thanks for everything 😊
Excellent tutorial process explanation thanks you
Best and clear explanation for collider object in simulation nodes!! 💪🏻👍🏻 thank you!
appreciate it
A fun next step is to use the hit normal to calculate the bounce angle then run it on a sloped plane or more complex surface. That, plus damping.
oooooooo! great idea!
@@RobbieTilton For damping you can use a vector scale node set to like 0.9 in between the velocity inversion and the switch node
Love how you explain things Robbie! I need to practice more geo-nodes on my own channel :D !
appreciate it!
great video! Would be nice to add the velocity into the scale to get it squashing and stretching a bit :)
you made a simple concept look so complicated. for beginners you could has simply incremented the vector 3 posiiton in the simulation area.
For anyone curious on how to add a texture to the bouncing balls here's how I did it. Add a "Set Material" node in between the "Simulation Output" and "Group Output". Then go into the "Material" settings to add a new material. Then go back to the "Set Material" node and assign it the material you added in the "Material" settings. That should do the trick.
Is your material textures/UV based or procedural? because I did the same for my project and the UV map was completely broken. I used the same material that was applied on the single object scattered in geonodes; maybe I should redo the UV unwrapping of the geometry and create a new material with the same textures
Had to refresh my memory on this by taking a look at my old file tonight. I used a procedural texture that was a mix shader with a noise texture and musgrave texture.@@willowproduction
Have you tried to see if it works for just a simple color using a simple BSDF? For testing purposes I mean before trying with your main material texture. @@willowproduction
This is the stuff that strains my brain the most so I'll need to watch multiple times before I digest the impact of each node in the logic. I am never satisfied just watching someone place the nodes without fully comprehending the variable, within the node tree, that each node or its value has a wide reaching effect upon.
I feel I am most messed up by some of the socket names withing the realm of "true" and "false" in a switch node that is fed by a value from an inverse multiplication such as factors of less than zero . My weak brain wants to follow along like my eyes are doing but the:
flipping conditional on false status of inversely factored values which equal a state which causes the addition of a velocity etc.......oh man ...lost.
But I have a compelling case for the logic functioning fine because the simulation DOES run and I can see it.
Being able to tinker with values and having their effect be immediately seen is one of the greatest parts of Blender geo-nodes.
I feel you and appreciate the message. I programmed for 10 years which allows me to grasp this stuff, but at the start it can be hard to understand. If you have any questions about anything in the video - feel free to ask.
the 'true/false' switch is what we call a conditional statement in programming. If this -> then that. If NOT this -> then that other thing.
@@RobbieTilton Thanks for your attention to the comment. I am able to work out the logic of the true false if then statements...eventually. IQ is about speed. I never formally took any programming. I have way less agility with such logic buried inside node trees. What I find I yearn for when watching these explanatory videos is a [pause-step back] moment where it the pre calculations of which nodes will accomplish the aim of the whole tree are done in advance so that , as the nodes are added, you can anticipate how they will affect what is already there and how they will affect the choice of paths to take to arrive at the desired destination.
Great tutorial! & Thank you for the wish list! \o/
Coupled pendulum! Yeah, that's my wish!:)
I am bad at math and good at drawing, so I started learning 3d softwares. But now it's all math again.
I am trying to create a custom keyframe animation, then instance the animated geo, and trigger the animations (control the timing) based on the instance proximity to a controller object...is this achievable using simulation nodes?
Nice video. Do you know any way to make the instances place/stack them self in a natural way? i.e. like rigid bodies dropped in a container?
yes - plenty of other videos on youtube to show physics sims. check cgmatter or CartesianCaramel
yes
Have you tested it with blender 4.3 ? In my simulation the balls do not move in -z-direction, but i do not know why (they move diagonal).
I haven't tested in the latest version. Simulation nodes likely updated since I made this video. Hopefully I can have time soon to check it out and remake the video.
are this technique can be applied on compressing any object?
nice tutorial! Can I ask you how did you set the material to the spheres ?
In my project I'm instancing a collection of objects on points extracted from the volume of the mesh and before the simulation every instance has his right material applied. If I put a viewer node after the simulation loop the materials are gone and the Set Material node applies the material to the entire geometry.
Update: managed using a single material setted in geonodes after the simulation and using "random per island" socket of the geometry info shader node to drive different materials on the single instances. It is an half solution because in works only for materials not UV map dependent
i have the set material node at the end of my graph
@@RobbieTilton yes I did the same, but it was not correct. It was like the UVmap of the single instance breaks after the simulation loop. I think it's because the objects instanced on the points are treated as a single geometry after the loop and not as a single object, so the material is applied to the entire geometry. Your ball material was UVmap dependent too?
Nice! I tried here and sometimes depending on the distance or accumulated speed of the instance it just goes trough the floor. Why is that and how would you do to overcome this kind of limitation?
with the movement and raycasting - each frame is basically a 'step' to process/evaluate. One way to help solve something where the speed of the ball is moving faster would be raycast from an offset position. For example u can racast 5m in the inverse direction of the velocity. and then when you elevaluate the is hit you add the 5m into ur math.
most physics engines let you do more steps in-between frame, but with simulation nodes you're stuck w each frame being one step. so to my understanding that would be the best way to deal with it for now.
Are simulation input and output not in blender anymore? I can't find it :((
yeah. it's changed to 'simulation zone'
somehow when I add ball they dont move when I set position....
Nice job Robbie. Enjoyed the tut. One thing for me. When rendered, I only get white spheres. Not a coloured one that I have used. Strange. Any ideas?
I downloaded a texture for a bball and applied it to the material w set material near the group output in node graph. You could also instance a different mesh w your texture instead of the uv sphere at the beginning of the graph.
@@RobbieTilton Have done separate object, simple sphere, object info, and all that. Still. White spheres. Dec 23 download of Blender. Thanks for the reply. Sorry to bother you with something that sholud just work.
@@covbloke511 very weird. i was using a november branch of simulation nodes... i'm wondering if it's a bug from their dec branch. You're always welcome to share ur file in the 'help' section of my discord and I can take a look.
The instances bounce higher each time, even though my vector math multiply is set to -1. Any idea why that is happening?
might be the scale of your gravity isn't high enough