Houdini Retime FLIP Sim custom Reseeding -- Long Version

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey everyone just a quick plug up front if you're finding these tutorials useful please help me out and subscribe to this channel if you'd like to help out even more pass this along to some other artists who you think would also find it helpful and ask them to subscribe as well thanks so much hello everyone I'm back again talking about to where I left off with the with my last video with how to create this paint splash sim using all the just stock houdini dock nodes no custom surface tension but in this example I'm using some pretty extreme reseeding which prevented me from being able to slow this down and I'll show you the render it prevented me from being able to to retime the splash inside Houdini after the sim and that was something I was actually really interested in doing so like as I said briefly in my last video that led me down a path of searching around for for a little while to see if there was a way to get any kind of results where I could uh what I wanted to do is be able to retime my eye splash after the sim so that led me to looking a lot looking around online looking at some forums and I was able to get there and I'm gonna explain that today I'm gonna explain sort of how I use some tools that a couple other Houdini users have posted and I'll breakdown I'm not gonna break down what all is happening inside of those tools but I am gonna break down how I use them to achieve this result as well as I'll show you the what the result looks like when I applied it to so this is this is the sim that was great that I created in my last tutorial and then going through the process of using a couple other the tools that I found and modifying those I was able to create this still using the stock surface tension but now using a hole filling method that I'm going to show you I'm able to time this really really aggressively and I'll show you a render of that as well so what so let's dive in first just diving into where I found some of these resources so I've been following the work of this fantastic Houdini artist named I'm gonna butcher his name probably about Alejandro Esther Barry and he to me is just sort of the king of these small scale and medium scale flip Sims so I ran I ran across this video years years ago and it always comes but actually pops back up in my Vimeo feed all the time because I think people find it useful and he says really clearly hey guys this is a template but you can see the potential of this and he was really kind enough to post his hip file so you know when I started getting back into trying to figure out how I could slow this down that hip file was one of the first ones that I grabbed I grabbed it because I remembered reading somewhere along the way that he did not use reseeding this is it here you should all have a link to that video in the description by all means grab this and see what he's got going on just his default and so what he he doesn't have much going on in his sim he's just sourcing some points in and then he's calculating surface tension a hundred percent on his own using this soft solver I'll try to I'll try to walk through it there's some of it that I don't understand that I don't understand some of the details of it but I get the big picture and if you check them if you just play back what he got without changing anything in his in his file it's a really really nice looking a crown splash at how it calculates fast it's got these really nice you see this nice curvy build-up around the edges and I think I think that's really really great one of the things that I wanted to do to sort of extend on this was I didn't want my fluid to break up so much and he's got controls to to lessen the the scale of this so the tension isn't so high but I wanted to proverbs some some of this sheeting that's going on eventually this these sheets sort of tear and the water gets pulled towards the edge or I say the water the the fluid gets gets pulled toward the edge of the of the surface and that's that's exactly what he's got going on in here I mean that's it's built to do that but for me like some of these areas down here I wanted to see if I could keep those keep those more solid but before I get into that I will just open up the stop solver and you should download this file and start checking it out and see what you can do in essence what he's doing is he's grabbing his dock geometry which is these points and he's also grabbing I don't know if you can see it yeah so this this field is something that is available in docks by default all this is doing is it's saying pull in the surface which is one of the fields that that the flip solver creates and then what he's doing is he's converting that into an SDF and where he's visualizing it as an isosurface so you can see and this is the shape of your sin this is what this is what the flip solver is doing but he's he's using this in a really interesting way he's converting it to a B DB and he's smoothing it out he's gotten these the number of smoothing iterations he's got tied to a control outside on the on the top solver and I just lost my lost my preview of it when I jumped out let me just get that preview back so he's smoothing the surface down and then in all these vex wrangles these attribute wrangles he's pushing the particles that he's pulling in from the dotnet every every time step he's pushing those to snap to the surface of this of this field right and then he's also snapping them to a smooth version of that computing the difference so he's subtracting one from the other and then using that to create his surface tension force as well as what he calls a free surface mask if you read some of what he's talking if you read some of his breakdowns of this process both on odd force and there's a heat there's a really great write-up on grid markets that I'll post a link to as well it's really interesting stuff be honest a lot of it is over my head I can follow some of this vex and see the logic and what he's doing but there's also some gaps in it for me like I don't quite get it which is fine I think at some point I you know I'm gonna keep digging this and I hope to understand what he's doing I hope to understand more of what's going on in these complicated setups that right now I don't get but even though I don't get all of it right now I get the big picture and it I can I can use this to keep going in a direction that I think is gonna give me where I want to be so that this was the first half of it so I took I took his his method of creating surface tension and I applied that to yeah did this this is this is the Ranger that showed earlier the little it almost looks like a flower that's like a just a crown splash that's being twisted around and so this is the result that that I got from using just his custom surface tension and I was really I was pretty happy with it but it still had yeah you start to see him back here it still had some holes in it that I I still wanted to see if there was a way to preserve all of this so that led me again searching some more let me pull it link pulled my browser back up I can't remember somewhere in these somewhere in his comments here he posts a link to this odd force forum I believe and if not if I'm mistaken about that I just I came across this a different way but I'm pretty sure I came about this odd force link which alejandro is pretty active on at least in some of these threads and as I was searching through this sort of there was a really long post by this this user ray man and he talks about fulfilling and and using whole feeling as a as an alternate method to reseeding basically just says that by looking at neighboring points if there's if there's a gap that there's a gap in those points that it exceeds a certain threshold then you can use vex or you can do it in bops as well to insert points into those holes and he has a file here that I was actually unable to get to work he's written some custom vex that I wasn't able to get to load I don't know if it's a version mismatch or just me not doing something right but somewhere along the way after poking through this this forum for a while I mean let me get back to it this this user Karl Richter who posted this video on Vimeo says the he was able to basically take that same idea that that Rayman was talking about the the custom whole feeling and he he wrote it all in bops which is way easier to understand so I grabbed his file and let me show you that file this one just as a note this file is straight from the from the odd force forum when I downloaded the the file off of Vimeo it had been updated and it behaved slightly differently for me but now this is getting really really close to what I want and the interesting thing here is he's using just standard surface tension he's not he's not doing anything to calculate surface tension and a soft solver what he's using the soft solver for is for this whole filling algorithm and this is great this is probably 90% of what I wanted but the thing that I don't like about this is these droplets by nature of the way that he's built this those are never gonna break off they just they always stay connected I think they always they connected is from what I can tell they always do and the reason being is he's got a threshold for when particles get too far apart new ones are birthed right in between them and he's got controls some kind of minimal controls for to adjust those Thresh those thresholds so again just inside of a stop solver here he's got a attribute Bob and with these controls are promoted that says hey if the if your if your gap is greater than this value insert a point there this is the radius free to search for gaps and this is the number of points so search for gaps at a time now as you know similar to the Alejandro's VEX setup i understand some of this and some of it is over my head I'm still trying to you know search through Houdini help and a couple other things to to make sure I get a little bit better understanding of this it didn't stop me from using it but there are things in here that I don't quite understand there's a lot that that you're able to follow he's he's pulling in all these points using a point cloud opened to say hey look at this point cloud these these radius and the max points those are the promoted attributes that says for the in this point cloud' at every position at this radius and this number of max points go through the point cloud and do this stuff for all of them and what this stuff is doing is finding those gaps and adding a point in the gap and also setting its attribute to match the velocity of the the points that are around it so that's that's my probably butchered explanation of this this set up is really really useful and again like I said it's it gets me really close to where I wanted to be like 90% there it just has they just never break up the droplets never break off and you also get a massive amount of volume gain if you look at the original bit of fluid that's emitted and then look at what you're left with in the end it's just a massive amount of gain again this is the file that I that I was starting to play with that has Alejandro's custom his custom surface tension and this is the custom hole filling this one the the author of that tool Carl Richter he had his hip file set up to for the stop solver stop solver to run on the sourcing tab so that's where I started and this is what you know start to see where this is going to work now you'll see in here that there are some there's some brighter points that are going to start popping up those are the new points that are being inserted there's some down in that corner there's a couple over here so again these brighter points are the ones that are being inserted by the the hole filling vaak Network this is what I wasn't thrilled with with his default setup is as these droplets as they break off obviously they're getting new points inserted in there because that's what the whole filler does it says if if points are too far apart I'm gonna I'm gonna add a new points in there but that's not that's that's really not what I want so I started thinking like when I saw this sort of thinking wouldn't it be nice if I could limit his whole filling algorithm to just the parts of the of the sim that are kind of dense and that got me thinking you know what and Alejandro set up he's pulling in this surface he was looking at it like this and at some point he's smoothing it and look at that if you've done much meshing of of particles with the BTB setup you know that when you start to smooth those you lose all the all the thin detail and in this case this is this is exactly what I wanted so let me show you what I how I modified these so I'm just gonna I have my modified version here I'm gonna disconnect my whole filler because what I did was i I've moved it out of out of this sourcing tab and i actually incorporated it directly into Alejandro's setup let me go through real fast just to get again I need to I need to get a few frames in so I can explain what's going on and have a visual representation of that so inside Alejandro's top solver has tension his surface tension top solver that I'm messing with I was really interested in this side over here where he pulls in pulls in the surface converts it and then starts smoothing it out now what I wanted to do was for the incoming points I want to make a group from these smooth points and you can do that easy enough just with a with a groups up my groups top is set to keep within bounding regions and I said that's a volume because that's what's that's what's happening over here and then on this is pretty much the unmodified version of the of the whole filler I just set this to only operate on the group which is again being defined by this okay and then for for this example I just went ahead and kept using Alejandro's surface tension method and what you're gonna see if you remember a minute ago when I just had this whole filler as it as it was that never allowed any of those droplets to break off but well you'll see here there we go we have droplets and not only do you have droplets we have good point disbursement all the way along that sheet and because we modified the whole filler those droplets are breaking off is what you'll see inside here when we come into that smooth surface at some point they break off and since we're only running our hole filler on these groups it's we're again we're grouping based on this volume so the only points that are being evaluated by this whole filler are the ones in Group one so these ones aren't getting killed are these ones in between here in that fin section they're not getting there they're excluded from the whole fillers calculations and that that's how we're getting droplets and that's how that's how I got the render that I got I don't have it cashed out I'll let me let me let it run at all and I'll explain a little bit more all right so cashed out enough of this so that we can see it playback real-time and I was actually really really happy with with the look of that I had to do I had to do a little bit of work here I'll explain that and in a different file but I had to do a little bit of work to get you'll see like this ramp attribute that I'm using to color then I'm using to color my my sin now if I if I plug this color and before the work that I do you'll see like these new points it's actually kind of hard to see but these new points that are getting birthed by the whole filler they they're not getting that ramp attribute they're just that's just being set to zero so you know my orange points are being populated anywhere there's an anywhere there's a new point this that's put in it's getting that that zero color ramp attribute which is this orange color that's not what I want so I had to do some work up here there's not complicated I had to do some work to you that to interpolate those right and I'll explain that but now you can see I'm able to read time this perfect and you can you can be really aggressive with three times and they's from what I can tell they are still holding up I think that's great that's this is exactly this is exactly what I had hoped to do when I first set out to make this paint splash but I just wasn't able to get there but I was able to keep pushing and and find a lot of help from some really amazing Houdini artists online let me hop back over to my this is the file that that I did upload on on Gumroad this is the file that if you follow the last tutorial you're eight you're able to make something really similar to this again this is uh this is what it looked like not able to retime it again used use some reseeding let me show you what it would look like if I tried to retime points just go everywhere and that's because the IDS that the the points are given inside the solver inside the flip solver they're just all over the map because when the reason when the receding takes takes effect it basically just but it I you know it's not it doesn't operate as a whole filler does it doesn't say oh here's a gap let me reseed a point there it reads recedes every point in the entire sim and at least that's that's my understanding of it so some of these points seem like they're they're being read signed in a ok way but you can never you can never use this for anything and I don't know I haven't found a way to be able to to retime a assume that is using reseeding there may there may be ways to do it but I haven't found a way to do that and this is my cache soon with a custom hope filling and you can see how these all these brightly colored points those are the the points that got receded and after I able to to retime them I mean it just it just looks great seeing this stuff slowed down to this degree is to me is so much fun so quickly I did want to talk about the actual nuts and bolts of the retime and why it works with this hole filler versus not working with the standard reseed we already already showed why those are I already showed that the standard grease seed breaks up when you try to retime it and again that that reason is because your the point count is inconsistent from from frame to frame just by nature of the way that the flip solvers reseeding by way of how that works but how this hole filler is working is because it is in return money stimulation back off because it's in this stop solver this is gonna happen every frame so inside here when the hole filler sees that it when it finds a gap that meets the criteria that we set and puts a point in that point because it's berthing whatever number of points per frame those new points are gonna have a point number maybe it's easier to explain this outside of here this is my cache sin again so right now you know feeding into feeding into the sin we have a hundred and sixty seven thousand points so one hundred and sixty eight to forty one points so when this whole filler kicks in it sees obviously the the solver has that many points going on in the simulation and when it you know when this whole filler starts to meet its criteria to create points it's just gonna start at whatever the highest point number was and then give you know these new points that are birth they're gonna have a higher point value than the ones that are already there and again because it's in a stop solver these these points never die there there's no criteria and here by which these points will die so when those points are birthed into the scene to fill those holes they're going to carry their point number throughout the duration of the sim so so that's that's why it works the nuts and bolts of kind of how I went about retaining this I didn't do anything fancy I sorted using this this game dev free time if you just type in retime actually this is the other this is the alternative every time but the this game to every time is really nice it gives you this ramp to control your the you know how the how your friends are playing back over a time this is your this is the start of your timeline and this is the end of your timeline and so you can kind of think of this this right now this linear ramp as your amount of frames over time and so I've just ramped mine really hard so it goes kind of quick at the beginning and then flattens out and goes really slow and then really ramps up at the end inside this this gamedev every time you see that it's it's sort of how this is how I used to structure my three-times before the actual real-time mode that came out and I guess 17 or 17 5 but back when I was using earlier versions of Houdini always drops down a time blend node to smooth between different you can use point velocities to smooth between positions and then a time shift and I'll you know set to float frames rather than integer frames so this is you know when I when I found the note and hopped in Hopkins site and saw what was going on this is immediately familiar because this is sort of the old way of doing it or the old way that I juice are doing it I have used this retime node that is also relatively new and you can adjust this by speed or frame or fit range I've used this on several projects and it works great as well but for these paint these paint bursts I've been doing I really liked the game dev will set just to have a little more control over how this speed ramps in and out this ramp is really really a fun way to control that that's how the real time is is structured you you know this whole filler will give you consistent points and then you know after that you can just kind of return it anyway without problems because you you're there's no again there's no criteria by which these points are gonna die and I and my and thinking through it I think that's why the the standard reseeding I think that's why it breaks because when you when this is on you have these birth and death thresholds so there may be a way in here I'm just something actually gonna play around with if you maybe if you turn this death threshold either super high so that that criteria never gets met then you may get more consistent time map time remaps with standard receded sims but i haven't tested it out yet i'm gonna have to try that another time and the other thing that was kind of striking you know again I was happy with how my the sim from the last tutorial looked but if you see like these droplets are enormous especially compared to these ones for my new sim and I have a feeling that that is due to some volume gained from though how much I over cranked the reseeding to get some smoother results in the end these bottom parts of the mesh again it's not bad I'm still pretty happy with how that worked but this new method I think is it's actually a lot nicer and it gets it gets to the point what I wanted to do the whole time was to to slow it down so I'm gonna hop in here and show you what I did just really quickly again this so if I didn't have this node setup this would be the almost the exact flip setup from the from the previous tutorial the only thing I changed on the solver was I disabled reseating and I turned this particle separation I ticked that on and what that's gonna do is it's gonna try to force the particles [Music] a certain distance apart from one another at every time step it says this isn't on by default and it does make your symptoms go up especially if especially using all the default values I changed this from I think this defaults to almost 1.1 I just changed that to 1 and I turned the separation rate if you hover over that it's gonna say that it can be reduced to get the effect of a fractional iteration I just pulled this down a little bit as a test and it worked a lot better it's you know by default if this is all this by default this is set to 1 and at 1 you don't get a lot of separation with droplets or you don't get a lot of this this these nice holes that start to these large holes that start to appear you don't really get those so that's that's really all I changed what the solver was disabling receding turning on particle separation and then I added this and I I still have it called as the surface tension that's actually not what I'm doing with it all I'm doing is grabbing the graph of the surface converting it smoothing it and limiting the limit I'm using that group to limit the hole filling algorithm all right so that that was really all I did and the you know that's all I did to change the sim settings from my last my last version and I went ahead and cached this out again I was really happy with it I really loved the sections like were these small holes that were they start to spread out and turn into the emerge into the strands I think that's pretty natural looking from from some of the reference video that I've been looking at I feel like that's pretty natural and so again able to retain it but at this point you know all of these particles are they're not inheriting any of the attributes that they need to and if I try to I just tried to render this it's gonna look it might not look the way it doesn't look the way I intended I don't know if it will look bad or not but it doesn't look how I intended it to so the way that I fixed that just really quickly I'll show that is use the split node or a split saw and if you look up here so I've got this limited just to my ramp attribute which the ramp attribute is what I created to pump through the sim it gives me that grayscale value I know that that that rampant value never hits a full zero not well so I know that that ramp attribute going into the sim never hits a full it never is a flat zero it's always a fraction but these new points that get birthed into the scene they are value zero so I was able to use that as a way to split these into two different groups now the way the way split works is I just typed ramp equals zero and said this two points so what's that what that's gonna do is on the left side of that split you're gonna get the points where this this is set to be you're supposed to pick a group from this but you can also just use attributes and set groups kind of on the fly so it says any point where it's ramp attribute equals zero that's the group and that's what is being pushed out over this left side of the split saw and on the right side it's all the points that don't meet that criteria so this is basically all of our original points and in our set up these are our points that were created by that whole filling algorithm and all I did was transferred all the attributes from the points that the point let me get my note back all I'm doing is transferring my ramp attribute from the points that that are carrying that through the sim I'm transferring those over to the points that are being created by the hole filler and then emerging it back together so that's pretty straightforward and I hope I hope that's clear and so that's it that's how I was able to start with with the sim that I was relatively happy with but with the help of some with the help of some forums with the help of a couple people who were willing to share some of the things that they're they're creating I was able to push it a bit further I hope that you found it helpful I hope that you know by all means go go and download these files from the from the guys who posted them and try to apply them to to the Sims that you're making and I'm pretty sure you'll find them useful again that that technique of grabbing the the surface volume smoothing it out and then limiting the whole filling to just that has made a huge difference in the is it made a huge difference in the way that I'm going to approach these kind of small-scale Sims it's just a really viable alternative to the heavy-handed reseeding that I've tended to use in the past and reseeding is is one of those things where if you want to do any kind of work post Sim recently thrown a wrench into that so I end up wanting to do a lot of work posts him so this was this is kind of a lifesaver for me so thanks so much alejandro thanks so much to carl rector read three through this forum there's there's so many people this forum is it's years old and it's seven pages long of really smart people contributing to solving these problems thanks so much for watching sorry if this was a bit of a rambling tutorial it's not really so much of tutorial as it is just a an explanation of how to get from point A to point B by looking for a lot of help online so thanks again for being with me thanks for watching you can check out more tutorials more tips at what I found net you'll find links to follow me on all the social media websites there please subscribe on YouTube if if you find this stuff from useful and thanks again for watching
Info
Channel: What I Found
Views: 5,877
Rating: 5 out of 5
Keywords: houdini, tutorial, cg, 3d, sim, simulation, sidefx, vfx, FLIP, FLIP sim, motion graphics, mograph, design, motion design, cgi
Id: KNXHqEN11zE
Channel Id: undefined
Length: 35min 53sec (2153 seconds)
Published: Thu Jun 18 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.