Houdini Algorithmic Live #070 - Shrink Wrapping

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
okay hello hello is it on live yeah i think it is okay okay so this is 10 p.m in japan time let me get started so this is a weekly tutorial live for houdini which is called as houdini algorithmic life which i'm doing weekly and this is the 70th episode for this weekly houdini tutorial and today's topic this week's topic is to create a kind of a custom simulations to do the shrink wrapping like you see in the display like this and using sub solver and a little bit of bex without using any like physics related solvers so we're just going to use a simple a mathematical functions or geometrical functions in order to achieve this kind of shrink wrapping like simulations which could work for any kind of input geometry if you change this to things like this currently the resolution is a bit too high so the simulation is a bit too slow but you could create a simulation like these for any kind of input geometry and it could also work for a isolated geometry like these which will create a kind of interesting result wait for it okay the simulations might be a bit slow because of the resolution but if you wait i like seeing this kind of metal like shapes and at some point you'll see this kind of a line like shape yeah so this is what i'm going to create today from scratch and i use any houdini together with the soap solver and vex okay so let me get started by explaining the basic algorithm behind it so that anybody who have some knowledge about the solver of x can just do it by themselves by understanding what i'm gonna do right now okay so let's say you have a input geometry like this any kind of geometry like a concave shape like geometry and first thing i would like to do is to wrap this whole geometry up with the convex hull like a shape which looks like this kind of shape which is going to be the starting point the starting geometry to wrap the whole geometry up uh is this on live i'm not sure if you could hear my voice let me know if you're not if not um let's see how we could fix that okay yeah i think we are live okay so let me continue so after i have created this concave shape what i'm going to do next is to pull the geometry toward the center like this and the way to pull this geometry to the center is to use a smoothing function in this case a laplacian smoothing in in houdini you could do that using a attribute blur note okay so slowly smooth the shape until some of the point on the convex shell will touch its geometry so at some point it touches the sum of the vertex on the the original geometry like these and as soon as it touches what i'm gonna do is to fix the the weight or the lower the weight for the smoothing where it touches where the edge of the this convex shell convex hull shape touches to closer to zero so that it it's not going to smoothen out anymore so by doing it you could keep smoothing the whole shape until it touches the [Music] this concave shape like this and until it touches somewhere and as a result what you get is kind of a concave shape which looks like wrapping up this whole geometry and that's about it so the algorithm algorithm itself is pretty easy to understand and pretty easy to implement it actually if you understand what i'm doing here so now let's try to do this using a sub solver so to get started what i'm going to do is to first have some initial geometry to test out let me just save this somewhere okay i'm gonna test with the the one that has a lot of concave shape so let's use the this squab geometry which have this nice concave shape around here around uh around here and so on yeah so this is and it also has this pointy shape which is a good things to test with okay so let's try with these and first thing i would like to do is to create a convex hull shape which wraps around this shape which is easy to create because there is already a node for that so i'm going to use this convex hull node to wrap up the geometry like this now i do want to have a little bit of margins between the geometry and this concave uh con convex hull shape so let's give a merging using this value here shrink amount to negative i know point minus 0.2 or something so it goes a little bit off you have a little bit of margin between the geometry and this wrapping geometry right looks good i think it doesn't have to be that big maybe minus 0.15 hello everybody good to have you all okay now the geometry looks a bit messy now this convex hull shape a bit looks bit messy so let's uh clean this up by first converting into vdb not this one vdb from polygon and it doesn't really matter about the resolutions let's try with the voxel size point one if the original shape is big then maybe you want to increase this voxel size as well but for now point one looks fine i think so let's go with these setup and let's convert it back to a polygon so that you have a nice closed polygon geometry like this okay that looks good good enough and let me also create a null node which i am going to have all the global parameters to control the uh control the i don't know the the global parameter for let's say the the resolutions of the whole geometry and so on the first parameter i could have is this voxel size maybe so let's have that so let's go into the [Music] parameter interface and add one float value it's not really a necessary parameter but just in case you want to change it let's have the value between 0 to 1 and have this as 0.1 copy this parameter and paste it right here all right now now that i have this initialized geometry the convex hull geometry next thing i like to do is to [Music] set some initial group to these primitives which i am going to name it as remesh so let's create a group node group node and let's call this remesh this group is going to be used to determine which faces i want to remesh using a remesh node okay for for initial state every uh face is going to be used as a candidate to be used as a for remesh but as soon as it touches some of the original geometry underneath like this one then you want to stop remeshing that faces same as the smoothing because if you do re if you do the remeshing then you do have some kind of a smoothing effect as well while it remeshes so you want to stop the remesh as well as along with the smoothing attribute blur smoothing so i have the remesh have the group node then you are ready to go with the sub solver let's give the solver node have this into the first input and for the second input you want to have this original geometry as a guide so let's connect this one let's also connect this to no node let's name this geo and connect this geo to the second input of oops solver as a guide for reference okay and i am ready to go inside self solver to actually do some simulation setup so go inside and first thing i like to do is to do the remeshing to create a clear or clean mesh triangle meshes and you want to do it every frame every frame it shrunk to make this make the geometry cleaned up for every frame so because of this if you make the resolution high then the simulation is going to be a bit slow so um you gotta remember that part so currently the resolution is the edge size is 0.2 so which is a bit too rough for original geometry which is this one so this might and not give you a like the precise detailed wrap geometry shape so you want you might want to decrease this edge size a little bit like 0.1 or 0.05 and so on but as you can imagine if you're going to make this value smaller then the calculation is going to be a bit slower as well so there's a balance you want to find between the detail you want or the performance for the simulations i'm gonna start with the point one and this value you might want to have it as a global parameter as well so let's going to let's have this as a parameter going into the control going back to the the top node top network i'm going to open up the edit parameter interface let's uncheck for a bit linking then drag and drop this target size and let's have this named as let's see remesh edge thanks okay which is going to be i don't know maybe the range is fine with the zero to one okay hello everybody all right now going back inside the solver and after i do the remesh i also want to filter this remesh to only remesh the one that has a remesh group the primitive group so i'm gonna activate this filter for the group all right now after um when only some of the part has the remesh group then sometimes if you do the remeshing you might have you might going to have some and some uh unclean points or some corrupted points where you where the face is not triangle or sometimes it becomes quads sometimes it becomes a primitive which only have two points so to make those to clean those geometries you could there's two ways to clean these up one way is to use the polydoctor which is a bit too slow so i'm going to use instead i'm going to use this clean node which cleans up the geometry and then sometimes you are you still have the quad faces so in order to have the the triangle shapes as a final result i'm going to also have this device node okay and there's also a possibility that sometimes when doing the remesh let's say you it looks like you have a triangle mesh but there's additional points some around here which is not which is only connected to these point but not connected to this point so you have this quad on this side but triangle on this side which will create a hole the triangle the small triangle holes on this edge which which is going to be a problematic when doing the smoothing so you want to delete those points which is not connected to the both side of the edge so let's create a small vex code to remove that point and if you think about the situations that situations only happens when the neighbor count of that point is equal to two in this case the neighbor point for this point is going to be this point and this point so when the enable point is equal to two then uh only the point which is on top of this edge will will be uh the candidate every other point which is on top of which is at the corner like here you have at least three neighbors so only if the name of count is equal to two then you want to delete that point so let's have that conditions if never count at pt num is equal to two and you want to remove that point let's have this in between the clean and divide and that's probably it to clean these geometry up after the remeshing this is to this is to clean up the rematch geometry so let's group this up so that i know that these are related latex this whole this whole setup could be used for many other purposes so maybe you might want to remember that okay now after i have do the remesh what i want to do next is to [Music] after doing the remesh you want to keep its vertice vertex position close to the original shape which is this one so to do that i am going to use the the ray node to project with the minimum distance i mean this might this process might not be really necessary unless just in case the vertex position just changes dramatically you might want to reduce that so just in case i'm going to do the ray node for the projection okay now so that this could after this one you are ready to do the you are ready to go with the the actual shrink wrapping simulations part now to do that i'm going to use the vex as always in this case i'm going i'm going to do the actually not um not yet in order to do the shrinking i what i want to do next is to calculate the distance between each of the vertex on top of this convex hull shape to the original shape using maybe the closest distance if this is the point you are looking at you want to calculate distance to the closest point on the original surface so the distance might be in between this one to this one this point to this point if it's right here maybe this point to this point or somewhere around here if it's this point then the distance you want to calculate is these shortest distance so you want to do that for every point on a convex hull to the original shape to do that i am going to use the point wrangle point triangle node first connect the connect this convex whole shape to the first input of this point wrangle and the original geometry shape to the second input like this and i'm going to name it calculate distance okay now um the distance i'm going to calculate is going to be applied to the attributes so i'm going to create a float attribute for each point and i'm just going to use the shortest distance function which is called as x y z test look referring to the second input and using the original point position from the convex half shape as a starting point and as a result oops forgot the semicolon and as a result you'll be able to calculate you'll be able to get the shortest distance from the vertex point position on top of convex travel shape to the original geometry shape let's check that out okay so if you look at the jumpsuit spreadsheet this is the distance attribute that i've just created which is in between 0.1 to 0.8 all right now what i'm gonna use what i'm gonna do with this distance is to convert this distance convert this distance into a weight value okay for the smoothing so less weight you have i mean less distance you have you want to have less weight for the smoothing meaning you don't want to smoothen out if the distance is small enough okay meaning you want to stop the shrinking simulations for those points which that where the distance is close to zero if the distance is high enough then you want to keep shrink you want to keep shrinking those points or move the points so you want to raise up the weight if the distance is high enough okay so keep that in mind i'm going to get the highest value of this distance using the maximum value of this whole distance values among all the points by using the attribute promote okay so let's get the maximum distance looking at the point and let's have the maximum distance value to the detail get the maximum change the name to max distance and you also want to keep the original distance attribute and actually i have to write distance attribute okay so as a result you'll be able to get the detail attribute called max distance like this which is 8.85 which is the maximum value among all the distance value on point angle my point attribute right okay now i am ready to actually calculate the weight value for the smoothing so let's calculate the weight for the smoothing using another point wrangle let's name this calculate weight and let's go inside the code and let's write up some code and the code itself is going to be pretty easy i mean pretty simple okay so first thing you want to do is to get the maximum distance value from the detail attribute so let's get that max distance is equal to a detail zero max distance which you have just promoted using rgb promote and and what you want to do next is to define the the margin between the shrink wrapped surface or membrane to the original surface meaning if i go back to the sketch okay let me drill okay wait for a moment okay so what i'm what i want to do let's say this is the shape the original shape and this is the wrapping membrane and one what i want to define is the shortest distance between the membrane which is this part and the original a geometry surface okay so you want to define this margin between those membrane and surface and which is the value where you def you determine if the membrane has touched the original surface or not okay more less value you define for this a value for this offset value then more membrane is going to be really going to stick close to the original surface so you by changing this value you could control how how much it fit with the original geometry but if you make it too small then there might be a possibility that just penetrate the original surface like these so you do need to have a little a little bit of offset okay keep that in mind let's try to define this value and going back so i'm going to name that as a surf offset like this and let's say 0.05 and this parameter could also be a global parameter which could be controlled from this new controller in the top network so let's have that as well i'm going to uncheck for a bit blinking go back inside the sub solver drag and drop this value let's rename this to surf offset surf offset which could be between zero to one maybe that's too big zero to point two or three all right so now that i have this offset value let's do the comparison between the the current shortest distance which is f at dist and serve offset if the distance is smaller than smaller or maybe equal to the surface offset then which means you have reached the threshold for the for the surface meaning you have the membrane surface has got close enough uh to the original shape so that's where you want to uh stop remeshing the whole geometry okay i mean the the corresponding faces so what i what i would like to do is to change the group uh that's the primitive group which is a remesh group which attaches which it which is chris which which is attached to this point on the the whole primitive which connects with this point i want to uh set the primitive group remesh the primitive remesh group to zero meaning you want to you want to exclude those faces from the remesh group so to do that first you want to have all the primitive which is connected to this point using point rims okay and loop through all the primitives using for loop and get the pulley numbers and for each of the primitive you want to set the primitive group remesh to zero as a result when a membrane or the shrink wrapping face touches the original geometry using this conditions then the rematch those faces are not going to be rematched anymore using this one which only works for the remesh group okay which will stop the the shrinking but you do need to have additional information in order to stop shrinking addition to this remesh grouping which is the weight value for the smoothing so let's have that as well and to do that you are going to use the same parameter that you have defined which is a surf offset and you what you want to do is to convert the distance value together with this surf offset as an information as a weight value for the smoothing so let's do that if at i'm going to create a attribute called weight and first of all i am going to [Music] clamp the current distance value with the surf offset using a max value so f at distance and surf offset as a result all you get is the max the larger value for distance and surf offset so if the surf offset is 0.05 then this value is going to be the minimum value okay so you get either 0.05 or the value larger than that 0.05 and then you want to use the fit value so you know that you now know that the minimum value for these uh clamped value is 0.05 so when you use the fifth value the fit function the first source parameter could be the uh surf offset okay and the the maximum value the maximum distance is this value that you have retrieved from the detail so you could use this and as a target uh less distance you have you want to have less weight so let's say zero and more distance you have you won't have more weight for the smoothing so let's say one and that's probably it for the weight and that's probably it for the necessary information that you want you need in order to do the shrink simulations okay so i am i think i'm ready to go let's actually do the shrinking using the attribute blur right and for this attribute blur i am going to use this weight value that i've created so let's have the white attribute name applied to this weight attribute right here and yeah that's probably it and i think i am already ready to go to actually calculate the simulations but uh one thing you could have as an additional parameter is this one blurring iterations currently it's equal to one but more value you have you could have more faster blurring iterations smoothing iterations you'll be able to get a fast result so let's let's be able to control this value as well from this controller so going back i'm going to have a shrink speed from one to i know two hundred one thing you might want to remember that if you make this too high then this is cpu dependent so it you're going to suffer a little bit of performance so let's give 100 for initial value let's see how it does does that work okay there's another way to control the speed which is to control this weight value as i said more weight value you have you the faster you get i mean more smoothing effect you get so and currently this is a linear value which corresponds to the distance but if you do a if you use the power like functions to it uh together with maybe a 0.5 less than 1 you get more faster smoothing value so as an additional parameter maybe you could have an additional like speed value but if as same as the blurring iterations if you make it too small the speed becomes too fast and then sometimes it penetrates the original surface you might want to keep that in mind so how do i name this power speed power or weight ratio weight power okay i think i can just go with the one for it to test it out which doesn't really which is kept as a linear function but if you make it smaller and smaller the as you can see the smoothing iterations becomes stronger and stronger okay now let's keep with one for now and going back let's have that value as well let's name this shrink power from zero to one keep this as one this is kind of an additional parameter which is not really necessary but as for your reference okay so i think i am ready to go for the simulations let's go back in top of the network to the top of network and let's play and see what happens and let's also check how this remesh group is being used while the simulation so i'm going to use the color node to check which face are being applied as a remesh and and at which timing when this remesh group changes so i'm going to color based on the remesh with the constant color maybe red so as a primitive okay i don't see okay currently all the faces are being applied as a remesh group so everything is red and if i play it as soon as the face as soon as the some of the face touches will close get close enough to the original face you see it becomes white meaning it's no longer no longer inside the remesh group and stop stop shrinking okay so with the resolutions of 0.1 for the remesh maybe this is the final result a bit too i don't know a bit too like low res as you can see but it's interesting how it changes see that it once it touches the original shape it becomes white and if you look at the original shape as a ghost view looks like these okay yeah you could already see this geometry being shrink wrapped like these all right nice and as you can as i said you could see a little bit of penetration like here because the original mesh is a bit too low res so let's um try to make the resolutions a bit too a little bit higher make to make the remesh edge length 2.05 okay let's try with these going back to the color node play now you start to see a bit more high res result taking a little bit more time looks good slowly slowly you start to have this equilibrium shape all right now i think everything has stopped so let's check that out with the original shape so yeah does look like it's wrapping okay looks good isn't it okay so enough with these colors i am going to merge the wrapped geometry the wrap membrane and the original shape so to do that i'm going to set the alpha value the opacity to this membrane so that it can be transparent or translucent i'm going to set alpha 2.2 so that you can see through the underneath geometry then i'm going to merge this one with the original shape okay let's hide out the edges and see the simulation nice nicely working yeah that's pretty much it a really simple setup and could work for a lot of other geometries if if it could work for this kind of sharpie edges or this concave shape it literally could anyway it could work for any kind of shape so let's try that out switch let's test out with several geometries like pig head or some human bodies let's try with tommy or what else do we have i don't know maybe let's chest out with the pig head okay if i play it it laps nicely yeah nicely wrapped if i try with this tommy yeah it goes really fast like this and let's go back to the squab and try to change some parameters that i have set first parameter i could try to change is this um surf offsets right here so as i said if i make this small enough the distance between the membrane and the original surface is going to be close so let's try with 0.01 or something and see what happens if i play it now it looks like it's really touching the surface like these now you do see a little bit of of penetration again so in that case you might also want to decrease this remesh edge length as well but it's wrapping really clean if you have a lot of space like here the wrapping just stops just like the original like the in the physical world doesn't go all through like these it's the behavior of this string wrapping really mimics the the physics the real physics simulation so looks correct i think all right nice maybe that that that was too close so i'm gonna keep with 0.03 or something yeah this is nice enough okay yep nicely done now one thing i want to try out i mean these shapes these three shapes are all every geometry is being are connected as a one piece right but there is a situations that you want to wrap the geometry which are isolated just like you see in the first samples so let's try to create that kind of situations and see what happens with those set up what i mean is to let's say let's have some platonic shapes tonic and let's have tons of ecosyhedron or maybe a bunch of platonic shapes because a hydron tetrahedron cube maybe let's have those three merged at the different positions let's have this a switch to the fourth input okay let's move this up a little bit so that all the geometry is being isolated as a position like these and i want to check what would going to happen in this kind of situations when you do the wrapping okay so let's try these going back to the merge let's check if the resolution is good enough let's check the edges now this might be too high-res i'm going to reduce the edge length to 0.1 maybe 0.08 yeah somewhere around here surf offset 2.05 and one thing i might want to control is the the original like offset for the concave convex hull shape which is defined right here maybe i want to control this parameter as well so that you have you can control the enough margins for initial shape initial setup so let's have that come back offset or yeah you can just change the parameter name i don't i don't i can't really name it clearly okay let's make this 0.3 as initial offset paste it right here what's this value okay so i have enough offset let's try with these and we'll see what happens hide out the edges play it everything seems to work at as you can see if it's isolated you are going to have this edges right here like these which is pretty much the same as the original i like the physic situations because you're trying to calculate the the minimum distance the minimum surface when you do the wrapping because you're using the laplacian blurring so which is pretty interesting to see you see that this kind of situations yeah like it now one thing i could see is that the geometry here has been deleted maybe i don't want that to happen but i don't want to keep this geometry as a line or have some kind of a thickness for these lines so that you can also render these as well same as these part i mean as a behavior this is correct but maybe you don't want to completely delete the line but keep a little bit of thickness for the rendering so to do that you need to have uh additional setup for these okay and let's also check if the this tetrahedron or ecosystem is close enough to the it is still isolated but if it's close enough to the tetrahedron like these let's see what happens and now the wrapping stops at some point like these nice nice nice nice okay so that's okay that's cool but what i want to do is to keep these edges when the thickness of this connections become too thin i really think okay so let's try these okay so going back to the solver you could write up the functions inside the same pointer angle but it's going to be a bit messy so let's do that in the other wrangle okay i'm going to use the another point wrangle and i'm going to see let's name this keep thing thickness right i think that's i think that's fine as a name right so uh let me think do i need anything else let me think let me think nope i don't think so i don't think so [Music] before i get it into the code actual code let me check the color for these thing uh geometry let's turn this color on again and see what happens oops it's not playing okay okay this looks a bit weird as soon as it reaches to frame 23 everything becomes white meaning everything touches uh the original shape which is not i think which is not really correct let me check that out let's fix that part so apparently wait a minute okay i still see remesh group at some but somehow the color node it's not working anymore for some reasons why is that do i have any defected faces that could be worry it's just a wrenching issue that's weird it says some of the faces are called red but i don't see it funny okay let me do the reset and try this again let me reopen it as well play it okay now it seems to be correct okay so the shape becomes red it seems like it is keep remeshing or like these so what you want to do is to as soon as it reaches to some thickness like these then you want to stop remeshing those part if the thickness is thin enough so that you don't get you don't do the remeshing anymore it can stop being too thin or breaks up and you also might want to control the weight for the smoothing as well okay so let's have that in mind let's do that going back to the solver [Music] okay going back to the solver let's do this let's do the coding it's not going to be uh really hard to do you just need to determine which position which point is determined as a place where the thickness is really thin so a little bit of intersection calculation is necessary so let's go back to the sketch and see consider the situations okay let me draw up some sketch every time i go back to the sketch i have to turn on some controller all right so let's consider oops i want to use the black let's consider having this kind of shape and what you want to do is to stop these part for the to be remeshed or set these to weight equal to zero now to do that you want to call estimate this distance or thickness okay to do that um what i could think of is to first of all calculate the normal direction of the surface meaning these direction perpendicular to the surface and using those information at this point you could flip the normal direction [Music] like these and do the intersection from this point to this direction and you'll be able to get the intersected point like this one right here and as a result you can calculate the the distance between the original point position to the intersected point and which is called as d and if d is small enough maybe at some threshold value let's call this beta then that's when the when you can determine that it is thing enough to stop remeshing all right so let's try that okay open up let's show up the edges again okay now you might want to calculate or get the normal direction before calculating the thickness so apply the normal node as a point then let's try it i'm writing up some code right here okay so i'm going to use the function called intersect to do to use this you need two output parameters one is the intersected point position and one is the uv as an output now you can call you can use this intersect function invex intersect so and you want to calculate you want to throw array from the current point positions and you might want to offset a little bit toward the negative normal directions so that the original point position is not not going to be touched with this ray so minus normal direction multiplied by some small value small enough value 0.001 and the intersection direction intersection direction is negative at n and you also might want to multiply this with a the threshold distance for the intersection so let's have that value to determine how thin it could be so float [Music] maximum thickness or minimum thickness minimum thickness multiply it here and as an output you'll be able to get the intersected point position and uv okay so if you get this result as a positive value meaning more than zero or equal to zero then which means you have found out the intersected point meaning the thickness is within this minimum or less than this minimum thickness so that's when you want to stop remeshing or stop the smoothing right so as a condition you want to check if the inter section this is the primitive number where the point has been intersected so if the inter is more or equal to zero then you want to stop right and the first let's set the weight to zero so it stopped smoothing maybe we could keep this later but first let's stop remeshing so in order to stop remeshing you do need to do the same thing you did in the car quite get all the primitives from the current points and set the primitive group so i'm just going to copy that get the polygon primitive numbers from the corresponding point and use the loop to set remesh to group to zero okay so without setting the white to zero let's try let's see what would happen with these setup okay if i play it okay i think i gotta delete the cache okay seems like it's not working because i haven't really set any parameters for minimum thickness forgot to do that all right so let's let's set this to 0.05 or something as a minimum thickness and see what happens okay it becomes white but maybe the thickness a bit too thin let's make this 0.2 okay now the rematch has stopped you have successfully preserved the geometry like these but the smoothing is kept going so you still you still see a really thin line like these so if you also want to stop thinning these line like shape you also want to control this weight so if you apply the weight equal to zero then you'll be able to get this kind of uh thick line shape as a result now this may be a bit too i don't know too blocky so in order to still smoothen out but not too much maybe you want to apply another smooth note in this case using this node for certain points so [Music] as soon as you get uh set these weight to zero you also want to set the point group for a secondary smoothing let's name this thing smooth and then finally have another smooth node with those things so let's group okay and let's see what happens okay i'm seeing these caches again okay let's play now you have nice smoothing out line like these nice all right now maybe the smoothing strings might be too high in this case maybe you might also want to control this part as well so let's have that as a parameter the final parameter and let's set the range from 0 to 10 i'm gonna try with three copy and paste it right here let's test it out nice slowly it's smoothing out okay just like that i think i have shown everything i wanted to show and let me check out the comment and if anybody has some suggestions or questions let me check okay so um is there a way to do wrinkles falls on the membrane with this setup i'd like to know as their white wrinkle falls up to the membrane i don't know honestly i don't know maybe for the wrinkles you might want to you might need to set up you might need to add additional like setup for those um for easy wrinkle setup you could just just use the vellum i think other than that if you want to do procedurally like these not sure this one only relies to the original mesh original input geometry so it doesn't really relate it to doesn't really create any additional like original wrinkles or anything so maybe i'm not sure how i can do that okay sorry for that um i think uh last time i tried blender shrink wrap i was frustrated by the result we'll end up using a closed sim instead of this termination this looks more like actual plastic thanks thanks for your time and only okay what's cool to see okay thank you for all the comments yeah i think the setup is from for me it's good enough to do the strength wrapping it mimics the the original behaviors i think okay one thing i think i'm seeing is that okay i i kind kind of see these faces are still smoothing out maybe it's because of this one i think i have set this only to those things smooth group it seems like these points are also being affected let me check that why is that happening okay i'm going to check the scene to move group [Music] okay okay so only those part has been applied with this thing smooth that's good it seems like these edges are being smoothed out for some reason is it because of this one or is it because of this one not sure if i disable this let me check okay so this is fixed so somehow this smooth nose is affecting other point as well which i don't like that at all okay let's fix that maybe i can use this constrain points where i don't want to um smooth it out so instead of using this one i am going to create a initial group for a point for a point thing uh smooths so that every point have this things moves and this actually is going to be used as a constraint point group for this moves right here so that it doesn't move but as soon as it becomes thing enough i'm i'm going to apply this as a zero so that it's no longer be constrained points anymore so hopefully this works going back why am i seeing this kind of ah okay i know i i know why because as as soon as i did this remeshing the new point has been created so now you're you are seeing these maybe you me you might need to reconstraint recreate these groups if i do this right here does this still work let's check yeah seems to work fine okay so this should be the final setup all right nice now everything is wrapped clean and you could also smoothen out these thin points as well thing places as well okay nice all right look seems to work just fine okay thanks for all the comments so many ways to use this thank you yeah i think so too i think this process can be used for many purposes i think could be really generalized for many things so hopefully you you enjoyed what i showed here as a final parameter i am going to apply some switch value so that i can change the shape with this parameter let's just call this shape from 0 to 4 paste it right here okay good enough good enough yep like it okay in this kind of shape i might need to make this uh wait a minute one parameter i forgot to promote which is this one main thickness so let's have this as well [Music] right now i'm just cleaning up all the parameters that i've created in these kind of cases where you have shapes with thing pointy geometries like these you might want to increase this mint thickness value because if you make this too small then these point is going to be used as a smoothing or maybe you could make this to zero yep just like that okay yep i think it has been generalized pretty well it could be used for pretty much any kind of surfaces i think and that's pretty much it okay thank you all for watching and hopefully you enjoyed what i have shown you here today and i'm going to upload the file as always to the github and you can download the file from the link in the video description page from the same youtube video page so that you can download it and refer it later i'm going to upload it i'll right after i finish this live stream okay so and i am also doing the patreon page so if you are interested in supporting me i'll be appreciated as well which you can also go from the video description page okay i think that's about it if you have any questions let me know if not i would like to end this right here and hopefully you'll be you will create some interesting project using this setup if you did i would love to know what you have used it for but it's not really necessary okay so uh what keyboard do you use [Music] i'm using this keyboard called real force i think it's made in japan the same maker which makes the happy hacking keyboard you know like this keyboard okay that's about it so thank you very much and see you next week i hope you could join next week as well i haven't came up with things to do for next week but hopefully i'll be able to find some interesting topic again all right um okay another questions how do you come up with ideas for your live stream um sometimes i look at a pinterest for interesting images or sometimes while doing a some works using houdini when i find out some interesting process that i made during those works now i'm just cutting out those process and sharing it with you guys yeah so sometimes it comes from like random work random job in order to achieve some other some different purpose um i'm making this kind of process and if i found that process interesting enough i'm using as a topic for a live stream if i don't have that kind of topic within the week then i'm most of the time i'm looking to the pinterest for interesting image or sometimes looking into a wikipedia for interesting algorithms to implement like that i guess or looking into some geomet geometry related books like this one which is a japanese book which is an encyclopedia of shapes or like these books like the book of tiling patterns i have a bunch of those books which is related to geometry shape this is a book spot polygons like mutual magic for new materials interesting i have hundreds of books like these so there are many inspirations i could look at so depends on the feeling i call it your stream late i'm going to replay the stream but do you cover how you assign the transparent material to the shrink wrap mesh uh you mean this i haven't really thought i haven't really showed how you can apply the the material for like the renderers but if you if you meant with this opengl preview then yeah i did show which is this one just applying the alpha attribute for a point you'll be able to get this transparency look on a preview but i didn't make any rendering materials during the process but maybe for those you could just look at any other like render related tutorials around there okay um are you open for request yeah of course i am open for any kind of request how come you don't have the english version of your book on amazon well good question i do love to have an english english version of books for sure but it's really related it's really depend on the publishers if publishers says yes i i i i'm already i'm ready to go for english version but unfortunately the publishing is not um that looking forward to those stuff maybe there are they don't have much experience on publishing foreign languages because they're japanese publishers that's unfortunate okay but hopefully the next book i am going to publish it's there is going to be a english version as well okay okay so i guess that's about it thank you for all the comments and all the questions for the re for the request um you could do the comment on patreon maybe there that's where i could i'm seeing all the comments i think and you can sell it as an e-book yeah yeah i could still uh sell it as an ebook for english version for sure yeah so hopefully i'll be able to create the english version for the current book as well but i haven't really moved toward to it yet i'll be hopefully i'll be able to do that okay anything else and yeah thing is that there's not much english there's not much editors in japan who can like uh use english unfortunately because we are living in an isolated island not much people speak the foreign language for some reason okay so thank you very much for watching let i think that's about it for all the comments how did you become the good english well i don't think my english is good but i have uh i had a chance thanks to my parents i had a chance to go to go over study for u.s for postgraduates that's where i have learned english i guess probably okay thank you all and i think i'm gonna go to bed now it's around 11 30 p.m and it is actually holiday tomorrow until day after tomorrow in japan but i do have i still need to do a job so good night and hope to have you all next week as well okay thank you and good night you
Info
Channel: Junichiro Horikawa
Views: 3,120
Rating: 4.9791665 out of 5
Keywords: houdini, sidefx, live, tutorial, procedural, procedural modeling, parametric modeling, parametric design, parametric, fabrication, digital design, computational design, 3d, design, isosurface, lattice, structure, 3d modeling, modeling, computational, generative, line drawing, drawing, illustration, fractal, reaction diffusion, celullar automata, simulation, trail, particle, vfx, mitosis, magnetic field, field, volume, rendering, computer graphics, visualization, algorithm, motion graphics, graphics, remesh, quad
Id: Ci4Wg3bm8Pk
Channel Id: undefined
Length: 95min 48sec (5748 seconds)
Published: Wed Jul 21 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.