Absolutely awesome stuff, I i do hope that simulation algorithms are individual nodes at some point because while this is so cool and provides alot of control it seems somewhat impractical for alot of situations. But then again this can be grouped into node assets so idk. Anyways awesome stuff as always.
I agree with this so much. Group nodes can help quite a bit, and having built-in nodes optimized for specific types of simulation would be amazing. In an ideal world you'd be able to benefit from the convenience of built-ins while having the ability to pull everything apart for full control.
I thought I could handle building basic cloth sim solver but it turned out to be way too complex for me. Hopefully I'll get back to it some day (hopefully befor we get GN physics solvers build or packed with default Blender). I feel like I can do this by following this tutorial so thank you a million :)
i'd love to try using something like this to get a dynamic retopo system, where the mesh is simultaneously relaxing and shrink wrapping to the source model, so you could get an even polygon density
OMG YOU SAVE ME AHHAHA I was going crazy lloking for what i diid wrong. it was giving me a teraing effect because i put epsilon to 0 ahahha MANY THANks
I've followed along. I'm getting a pretty cool result but not the simulation effect you have created. I'd say my result has the points acting like a high viscosity fluid that has a really loose distance constraint and those parts of the grid points in the initialization group that don't collide with sphere are not staying constrained, disconnecting and dropping to the ground. Also, I've used Blender 4.0's Repeat Zone inside the simulation zone for the 4 instances of the substep group. I'm sure I've missed something, but I've ran through it several times and am not sure why. Also for a different visualization I added a group before the Set Material and after the Simulation Zone, consisting of a Points to Volume node set to Size connected to a Volume to Mesh node set to Amount
Incredibly detailed and very useful, and a lot to dig into! One small comment from someone who's not the most knowledgeable about these topics, but wants to learn. I had to pause a lot and really often, due to how tightly packed your video is and how most thought sections flow together. Sometimes there is more space left at a comma than between sentences. This makes it challenging to take in the whole video in one continuous viewing, as I had to pause and decipher what was just said (due to complexity of the topic, not because of bad explanation) before moving on, since multiple sentences flowed into one extra long breath. Maybe due to editing, but something I wanted to point out and hope it helps. :)
I was hoping to get feedback on this, thank you! Definitely very helpful as I’ve been wondering if condensed overviews or longer form tutorials are the better choice.
@@seanterelle I'd say, just a bit more pause between sentences and important thought beats could help a lot with understanding the scope while still keeping it as a "short" overview, without stepping into 20-30 minute long form tutorials. It's just harder for someone on my level to understand the logic if I have to pause (or even go back) every other sentence to let settle what you just explained. And if you ever want to do longer form, explaining all the nitty gritty, I'll eat it up just the same! :D
perhaps the longer in depth cut on a patreon for those who need it to not only go slower, but get a better understanding on why things work the way they do. i'm always working on my fundamentals but i'm especially working on my fundamentals rn with simulation nodes ;) @@seanterelle
Amazing work once again! I love the auto naming system for the neighbor & distance attributes, very clever. I'm also very curious to see how you set up constraints for the softbody style sims too... I've tried adding additional constraints on the Z axis in the same manner as the X and Y in this tutorial but it always makes the simulation twist out of control & explode immediately upon impact haha.
Thanks! You're on the right track with the z-axis constraints for soft bodies. They are a hassle to set up manually but the new repeat zones make it quite a bit easier.
@@seanterelle Do those softbody sims just require a lot more iterations? I’ve tried up to 16 but the behavior doesn’t seem to change. Still very explodey. Although it’s totally possible that I overlooked something in one of the many nodegroups!
@@joeyvfx_official I don't believe the explodiness is due to the constraint iteration count but it could be due to a larger delta time. On collision it's possible for a softbody to find the inverted solution to the distance constraints for some of the particles, causing a self intersection where ghost forces arise from distance and collision constraints constantly battling with each other. This becomes less likely with a smaller delta time. But those ghost forces tend to be pretty small. I'd say it was something in the constraint initialization but that doesn't match up with the issues only happening on collision. It could be in the distance constraint update as well. I'd try removing other factors like the collision constraint step and go over the distance constraint update to make sure all the correction vectors are getting calculated and averaged correctly.
@@seanterelle Looks like I did miss something in one of the node groups - forgot to wire in the Z axis in one of the auto attribute naming setups. It works great now! I don’t have diagonal constraints on the Z yet so it’s pretty wiggly but it is working :) thanks for the help!
Hey Sean! Seeing that your simulation nodes explanation "series" stopped at this video for now, not touching (yet) on soft body or 3D constraints and interactions, would it be possible to get those demo files on your gumroad for dissection? Or some other method of moving forward with it, without putting the pressure on you to push out more videos. Much appreciated in advance!
I don't know why, I follow the nodes in the video, and the end effect is that when the fabric hits the object, the edge particles will bounce off, and there is no fabric pulling effect😂😂😂
Amazing stuff! Thanks a lot! How would you go about turning it from points back into a mesh? I’d guess you need a plane with the same resolution and set the position through a geo-proximity node?
Thank you! You can take the original grid mesh or one with the same parameters and set the position to the point on the simulated points with the same index. So first you could add a new output to the 'initialize' node group that comes from the grid mesh primitive node before it is converted to points. Then use the sample index node with the simulated points as the geometry input, the position attribute node as the value input, and the index attribute node as the index input. Then set the position of the original grid mesh geometry using the output of the sample index node.
like in my version I only got three "get_neighbor_attribute_name" 2 times and not 3 like in the tutorial. the first I see is at 2:41 the second I see is at 5:17 I cant seem to see the third one.
All the particles collide with each other so there are self collisions! And yes tuning the delta time, number of sub steps, and strength of the distance constraints can produce different mixes of speed/quality. The biggest factor for me is whether or not the tuning prevents the cloth from passing through itself.
@@seanterelle Oooh okay, neat. I guess I had a settings combination that wasn't handling it well in my tests. I hope you continue to develop this! I've wanted to work with cloth more, but the current clunkiness of Blender's cloth system makes it very tedious.
I believe you could but the distance constraint initialization would have to use the existing mesh topology to create constraints between the mesh vertices
@@seanterelle and does that allow me to have a good result, cause I'm thinking to buy this product from your gumroad store, but want to make sure it'll give good results with my t-shirt mesh
@@amrtahtawi It would require a lot of customization, so I would try out Blender's built-in cloth simulation first. It has some nice features for stitching meshes together for clothing simulations so you might have better luck there.
@@seanterelle Thanks for your honestly and suggested, I was looking forward to purchase your product thinking I could save my laptop from the danger of the cloth sim lol, it can't handle the built in sim for some reason. Yet I will definitely love to study your amazing creation, so I will invest in it anyway soon in time.
You're undeniably cool, that's not up for debate. This project could be a term paper at university or something like that. Unfortunately, even the cloth stimulation engine built into the blender kernel is not capable of producing acceptable results in terms of speed and detail. Until the Blender kernel is rewritten for highly polygonal tasks, until it is capable of processing polygonal scenes comparable to such packages as Zbrush, Houdini, Clarisse, we will not be able to increase the detail of projects. There will be no responsive work with any environments in which detail is critical, and this is any simulation of anything, cloth, liquids, this is really uncompromising sculpting, this is the assembly of large-scale scenes.... Unfortunately there is no prospect of such a change happening with blender in the near future... Until then, such themes can only be realized in low-detailed/low-polygonalized motion design mode...and it's downright infuriating... You can't throw in f***ing subdives as much as you need, it's infuriating that the whole blender architecture is so retarded arrrrg
I am trying to implement a cloth simulation system as well, albeit with a lot more stuggle and a lot less success, mainly because it is not clear to me how to properly translate the physics equation into nodes. One question, what integration model did you use (Euler, Verlet etc.)?
Absolutely awesome stuff, I i do hope that simulation algorithms are individual nodes at some point because while this is so cool and provides alot of control it seems somewhat impractical for alot of situations. But then again this can be grouped into node assets so idk. Anyways awesome stuff as always.
I agree with this so much. Group nodes can help quite a bit, and having built-in nodes optimized for specific types of simulation would be amazing. In an ideal world you'd be able to benefit from the convenience of built-ins while having the ability to pull everything apart for full control.
I'll be back in two years when you've simulated natural selection with geo nodes
Man, I just discovered your channel and it's illuminating. Thank you SO MUCH, you're helping me to understand a lot of little but fundamental details.
I thought I could handle building basic cloth sim solver but it turned out to be way too complex for me. Hopefully I'll get back to it some day (hopefully befor we get GN physics solvers build or packed with default Blender). I feel like I can do this by following this tutorial so thank you a million :)
Yaay! Ive been waititng for this tutorial to drop! This is so cool. Keep up the amazing work ❤ 🔥
Finally, I've been waiting for this tutorial.
2:30 take a shot every time he says neighbor .
i'd love to try using something like this to get a dynamic retopo system, where the mesh is simultaneously relaxing and shrink wrapping to the source model, so you could get an even polygon density
i would pay for a hair curves simulation version of this.
That's wonderful, I can clearly see all the potential for a tearing system 🤩
Changing epsilon to 0.001 in the equality of test_if_neighbor_exists can be simulated normally🤣🤣🤣
OMG YOU SAVE ME AHHAHA
I was going crazy lloking for what i diid wrong. it was giving me a teraing effect because i put epsilon to 0 ahahha MANY THANks
I've followed along. I'm getting a pretty cool result but not the simulation effect you have created. I'd say my result has the points acting like a high viscosity fluid that has a really loose distance constraint and those parts of the grid points in the initialization group that don't collide with sphere are not staying constrained, disconnecting and dropping to the ground. Also, I've used Blender 4.0's Repeat Zone inside the simulation zone for the 4 instances of the substep group. I'm sure I've missed something, but I've ran through it several times and am not sure why. Also for a different visualization I added a group before the Set Material and after the Simulation Zone, consisting of a Points to Volume node set to Size connected to a Volume to Mesh node set to Amount
Incredibly detailed and very useful, and a lot to dig into! One small comment from someone who's not the most knowledgeable about these topics, but wants to learn. I had to pause a lot and really often, due to how tightly packed your video is and how most thought sections flow together. Sometimes there is more space left at a comma than between sentences. This makes it challenging to take in the whole video in one continuous viewing, as I had to pause and decipher what was just said (due to complexity of the topic, not because of bad explanation) before moving on, since multiple sentences flowed into one extra long breath. Maybe due to editing, but something I wanted to point out and hope it helps. :)
I was hoping to get feedback on this, thank you! Definitely very helpful as I’ve been wondering if condensed overviews or longer form tutorials are the better choice.
@@seanterelle I'd say, just a bit more pause between sentences and important thought beats could help a lot with understanding the scope while still keeping it as a "short" overview, without stepping into 20-30 minute long form tutorials. It's just harder for someone on my level to understand the logic if I have to pause (or even go back) every other sentence to let settle what you just explained. And if you ever want to do longer form, explaining all the nitty gritty, I'll eat it up just the same! :D
perhaps the longer in depth cut on a patreon for those who need it to not only go slower, but get a better understanding on why things work the way they do. i'm always working on my fundamentals but i'm especially working on my fundamentals rn with simulation nodes ;) @@seanterelle
That's a good idea! @@fergadelics
Amazing work once again! I love the auto naming system for the neighbor & distance attributes, very clever. I'm also very curious to see how you set up constraints for the softbody style sims too... I've tried adding additional constraints on the Z axis in the same manner as the X and Y in this tutorial but it always makes the simulation twist out of control & explode immediately upon impact haha.
Thanks! You're on the right track with the z-axis constraints for soft bodies. They are a hassle to set up manually but the new repeat zones make it quite a bit easier.
@@seanterelle Do those softbody sims just require a lot more iterations? I’ve tried up to 16 but the behavior doesn’t seem to change. Still very explodey. Although it’s totally possible that I overlooked something in one of the many nodegroups!
@@joeyvfx_official I don't believe the explodiness is due to the constraint iteration count but it could be due to a larger delta time. On collision it's possible for a softbody to find the inverted solution to the distance constraints for some of the particles, causing a self intersection where ghost forces arise from distance and collision constraints constantly battling with each other. This becomes less likely with a smaller delta time. But those ghost forces tend to be pretty small. I'd say it was something in the constraint initialization but that doesn't match up with the issues only happening on collision. It could be in the distance constraint update as well. I'd try removing other factors like the collision constraint step and go over the distance constraint update to make sure all the correction vectors are getting calculated and averaged correctly.
@@seanterelle Looks like I did miss something in one of the node groups - forgot to wire in the Z axis in one of the auto attribute naming setups. It works great now! I don’t have diagonal constraints on the Z yet so it’s pretty wiggly but it is working :) thanks for the help!
Humbling
wow!!!!!!awesome!!!!!!
Hey Sean! Seeing that your simulation nodes explanation "series" stopped at this video for now, not touching (yet) on soft body or 3D constraints and interactions, would it be possible to get those demo files on your gumroad for dissection? Or some other method of moving forward with it, without putting the pressure on you to push out more videos. Much appreciated in advance!
4:53 so pretty. Fallopian tubes
I don't know why, I follow the nodes in the video, and the end effect is that when the fabric hits the object, the edge particles will bounce off, and there is no fabric pulling effect😂😂😂
How can i pin corner to several empty, pls ?
Well I tried and somehow my cloth feels too stretchy like it stretches alot
Amazing stuff! Thanks a lot! How would you go about turning it from points back into a mesh? I’d guess you need a plane with the same resolution and set the position through a geo-proximity node?
Thank you! You can take the original grid mesh or one with the same parameters and set the position to the point on the simulated points with the same index. So first you could add a new output to the 'initialize' node group that comes from the grid mesh primitive node before it is converted to points. Then use the sample index node with the simulated points as the geometry input, the position attribute node as the value input, and the index attribute node as the index input. Then set the position of the original grid mesh geometry using the output of the sample index node.
like in my version I only got three "get_neighbor_attribute_name" 2 times and not 3 like in the tutorial.
the first I see is at 2:41
the second I see is at 5:17
I cant seem to see the third one.
Great stuff! This is with no Self Collision though, right? And could performance be increased by sacrificing accuracy even more?
All the particles collide with each other so there are self collisions! And yes tuning the delta time, number of sub steps, and strength of the distance constraints can produce different mixes of speed/quality. The biggest factor for me is whether or not the tuning prevents the cloth from passing through itself.
@@seanterelle Oooh okay, neat. I guess I had a settings combination that wasn't handling it well in my tests. I hope you continue to develop this! I've wanted to work with cloth more, but the current clunkiness of Blender's cloth system makes it very tedious.
Are you a good coder? I ask because I could probably code this but my mind kind of boggles when it comes to doing this with nodes
Are we able to make softbody simulations in geonodes?
Wow! AMAZING !! Could this be done in hair curves? I've been looking for a way to do it for a long time but I can't, any help? thank you.
i am wondering the same thing
How does it compare to the native cloth sim though?
I love your exploration here, but can I use this geometry nodes setup on a t-shirt mesh for example?
I believe you could but the distance constraint initialization would have to use the existing mesh topology to create constraints between the mesh vertices
@@seanterelle and does that allow me to have a good result, cause I'm thinking to buy this product from your gumroad store, but want to make sure it'll give good results with my t-shirt mesh
@@amrtahtawi It would require a lot of customization, so I would try out Blender's built-in cloth simulation first. It has some nice features for stitching meshes together for clothing simulations so you might have better luck there.
@@seanterelle Thanks for your honestly and suggested, I was looking forward to purchase your product thinking I could save my laptop from the danger of the cloth sim lol, it can't handle the built in sim for some reason. Yet I will definitely love to study your amazing creation, so I will invest in it anyway soon in time.
You're undeniably cool, that's not up for debate.
This project could be a term paper at university or something like that.
Unfortunately, even the cloth stimulation engine built into the blender kernel is not capable of producing acceptable results in terms of speed and detail.
Until the Blender kernel is rewritten for highly polygonal tasks, until it is capable of processing polygonal scenes comparable to such packages as Zbrush, Houdini, Clarisse, we will not be able to increase the detail of projects.
There will be no responsive work with any environments in which detail is critical, and this is any simulation of anything, cloth, liquids, this is really uncompromising sculpting, this is the assembly of large-scale scenes....
Unfortunately there is no prospect of such a change happening with blender in the near future...
Until then, such themes can only be realized in low-detailed/low-polygonalized motion design mode...and it's downright infuriating... You can't throw in f***ing subdives as much as you need, it's infuriating that the whole blender architecture is so retarded arrrrg
Yep. I’m having to scale everything up for an fx shot that I’ll have to match later. It’s frustrating
3:34 why did you turn the epsilon to 0 or is it a really small one? as that was my whole problem plus I used the wrong sphere for collision....
It's just a really small one! I can see how that would be confusing. I'm going to put a note in the description. Thanks for pointing it out!
I am trying to implement a cloth simulation system as well, albeit with a lot more stuggle and a lot less success, mainly because it is not clear to me how to properly translate the physics equation into nodes. One question, what integration model did you use (Euler, Verlet etc.)?
it's clearly euler
Would it be possible to adapt this to arbitrary meshes, not just a grid?
I can't say 100% for sure, but I believe yes especially with the serial loops that are coming in 4.0
...what?