Your tutorials are fantastic - clear, concise, with great explanations about why you sought the solutions you found. I really appreciate your content - thank you!
Thank you! I've recently started learning Houdini when I realized it'd require the least effort to build a scifi city so your tutorials have been really helpful and relevant for that goal!
Awesome stuff here! Thank you for this tutorial! #houdini is the best dcc software in the entire world! Keep going and good luck! #ilovehoudini #ilovesidefx #iloveepicgames #iloveunrealengine #ilovequixel
Hello Simon! I might be a little late to the video here. Another cool way to do the wires without using rays is using the prims at the end of the poles and then using connect adjacent and using a distance threshold to link the poles! similar to the way that real life cables would connect to shorter paths more and longer paths less often!
This is the second tutorial from your channel I have the chance to do, and I think I'm becoming one of your biggest fan. Thank you Simon for sharing your knowledge with us !! can't wait for the next tuto lol ;p
btw ..you can SOLVE the wire group range problem , just adding -1 to numpt///// float a = ((float(@ptnum)/(@numpt-1)) *2 -1); cuz , ptnum starts from 0 and numpt from 1 , there is a point of difference between , that ecuation fixes it ^^ so nice tutorial mate, so nice
Thank you very much for this pipelines and concepts sharing with your subscribers! Your work literally helped me to learn basics of Houdini quickly and fully.
Hi i'm following your tutorial with the newest version of houdini (20.0.547) and as we know the copystamp has been deprecated to the copytopoints and the for each loop. I've been doing a lot of simulation but never used the for each loop, how can i use the index value to randomize the scale of the meshes for the building structure? Awesome tutorail btw!
Not sure if you still need an answer, but you can use the expression 'opunhide' in the textport to reveal deprecated/hidden nodes, and enable them from there. Super useful for older tutorials like this!
how do you make your connecting lines in the node editor go in like a curvature shape :)? nevermind, google helped me. Great tutorial, applying the principles for my personal project
Any chance of the source hip file please? There are a few things you have omitted that are preventing any progress. This looks amazing and I'd love to understand it. I got to about one minute and all i get is a long box with a smaller box boolean'd out of it. :(
@@khomatech0 Hey, wondering if you could help, I'm this point in the video, where would you enter the stamp attribute when using copy points + for each loop?
@@khomatech0 Thanks for getting back to me, 8:53 ish. Not having copy stamp is really messing things up. I've tried a for loop but it looks nothing like Simons now. Not able to use the Expression he uses in the transform as its linked to copy stamp. Been trying for hours to work around it 😩
@@lukepawelek799 If you just want to randomize scale, use an Attribute Randomize SOP on the points and set it to randomize pscale. You can set min and max values in there as well.
Thanks, Simon. This is a great start. I'm not quite understanding the copystamp, vex, and expressions though. Is adding @ptnum to rand(@ptnum) strictly necessary? It seems like the "index" attribute is functioning more as a random seed, and less like an index. Wouldn't @index = @ptnum be sufficient because you're randomizing inside the transform1 scale properties anyway? Is this just for extra randomness, or is there a stylistic reason like maybe being able to use "index" for something else, or is there an actual functional reason? I just can't wrap my head around this copystamp thing. Is the stamp() expression a fixture of the copystamp node? I.e., do the two always go together? Doesn't referencing something downstream run the danger of creating an infinite loop, or does that just never happen? And, btw, I don't really expect you to answer all of these questions, although I would certainly appreciate any input, and hope maybe others may have some insight, as well. Thanks again!
*I see that other people have asked about getting the rotation value to snap to 90º increments. I can make them all snap to the same random direction, but I'm having trouble getting them each to pick an individually random direction. I used (int( rand($F)*2))*90 which makes them go NNNN or WWWW or EEEE, etc, but I'd like them to go SNWE or WWNS, for example.
Well i have an issue. So, I've been using the global seed tip, but the issue is that it changes the toplogy : so the ptnum are not the same anymore, wich makes the top and bottom part not being the same primitive number all the time : which causes a lot of issues in the generation of the normals for the first and second boolean details added on top of the topology, but also on the rooftop part. I feel like this is kinda hard to finda a procedural way to tell the software "ok this is the top and this is the bottom" so that he doesnt change verything at each seed. do you have any advice ? Also, this is a very great tutorial
You can do this by controlling the output of the expression. So ran() gives value between 0 to 1 and you need int. What you can do is use int(rand(...)) and multiple the degrees you want.
@@adin7097 Not sure what it is but it should work. Looking at the Houdini docs will also help. With the copy stamp each point will return another result. You can not see results for each point. The better and newer way is doing a for loop instead of copy stamp.
Hey Simon! Great tutorial, but quick question. At timecode 1:06 you make a polyframe to get normals. For some reason my polyframe just gives me normals point up in Y, they don't follow the edge. I've tried all the options in the style dropdown, but the normals don't seem to change. Any ideas on this? Thanks again!
Thanks a lot. What values are of box3 and transform3 node to get the shape in 3:07. Because of many settings&nodes my shape of the building looks totally different.
Hi Simon, just a quick question regarding the Transform node used at 9:03. You discuss the expressions going into Scale XYZ, but I was wondering which expressions you used for Rotate Y and Translate Y? Thanks for letting me know.
It is similar like the scale expression but then tweaked to degrees. Playing around with these expressions can give cool results. Like int(rand(...)) * 45
@@simonhoudini5074 Hi Simon, thanks for clarifying. I'll try that out. I spent last evening tying your entire tutorial together into a HDA with a global seed and controls for a bunch of details. I was looking for ages for a way to generate a 'non-repeating' SciFi skyline and your suggestion really delivers amazing results. I'll try to amend it a bit, so I can generate hexagonal or round buildings as well, but your tutorial was invaluable to get there. Thanks so much :-)
And just in case you're interested, Julien Gauthier had a very interesting tutorial on how to achieve a lot of SciFi building variety by just using Octane shaders. www.artstation.com/artwork/30ZOB Inside Houdine though, I'm pretty sure this can also be achieved using Mantra or Redshift.
@@simonhoudini5074 Bruh, i cannot figure out what you did right there. When i try different settings i get an error "unable to evaluate expression sy, ry, and ty" :( can you tell me the expression so i can tweak it?
@@RUSOBPK If you have trouble using expressions look up the documentation about it and see how to use them. It is a good practice to try and error with expressions and combine them.
Thanks! At 9:24 the expression is shown and explained. Then you can use it where you want, in the video it is used in the scale and rotation y. I recommend playing around with values and tweak the math to get different results.
@@simonhoudini5074 Hey Simon - I know this really late but I got stuck at this point too - I think I was mostly confused about the expression in the Y rotation - starting with int. Pretty new so this is the main point I struggled with and using the fit expression has given me super wacky looking results so I'm at a bit of a loss on how to continue!
@@simonhoudini5074 Yeah I saw that thanks! But still Im using the same settings as in the video and still not seeing the normals point to the centre. Normal name off, Tangent on with a cap N in there. Still nothing :(
I use that often to place the handler in the middle of an object. There are other ways to do this. For me I created a preset for it so it is easy to access. Further this is not always needed, it is useful if the pivot needs to be replaced.
Hi, Great tutorial! I am running into an issue where everytime I use an 'axis align' node, everything just disappears. I don't get an error, everything is just gone. Not sure what is happening as I have my point set to 0,0,0. I'm using Houdini 18.5 btw
Ch("../seed") is a channel in my hda. You can ignore it when building the setup. If you create your own hda you can also create these parameters and channels.
@@simonhoudini5074 okay thank you. I'll try again then, I thought I was missing some dependencies, and that's why I couldn't achieve it, turns out I'm just too bad.
Thanks for the support! I guess that the Box_detailer HDA is not installed or loaded correctly. (To install hda go to Assets at the top of Houdini, the install asset library and install box detailer). If there are any errors when loading file let me know.
hello help me Load warnings for D:/Works/Houdini/Houdini_Sci-fi_Buildings_(Tutorial_File)/Houdini_Sci-fi_Houses_Tutorial_file.hip Warning: "/obj/Buildings/Box_detailer3" using incomplete asset definition (full definition not found). "/obj/Buildings/Box_detailer2" using incomplete asset definition (full definition not found). "/obj/Buildings/Box_detailer1" using incomplete asset definition (full definition not found). The following node types are using incomplete asset definitions: Sop/Box_detailer
amazing breakdown, i'm very new to houdini and this is awesome I only have one problem as I input the ch("../seed") comand in the make new digital asset from selection it doesn't allow me change it's value. I can move the slider but then it returns to 0 everytime... can anyone help me :)
Ch(“../seed”) is a link or reference to a parameter. What you could do for example is fill in $F and still will use the frame number. Or just remove all references and you can use the slider
@@simonhoudini5074 thank you, in the end i used the raw seed... i have one last question/curiosity, is there a way to get the height from the original cube to control the height of all the other grebles? so that i have the ability of having different sizes with the right details no matter what :)
i really wish this was a "from scratch" Video. would be so much more clear to us beginners
Love how you show final result of each major step and then go in to more detail about that step. Thank you for creating/sharing this workflow.
it's all simple techniques but the way you utilize them is so inspiring, wish I had seen this video earlier. great tutorial man
Your tutorials are fantastic - clear, concise, with great explanations about why you sought the solutions you found. I really appreciate your content - thank you!
Thank you! I've recently started learning Houdini when I realized it'd require the least effort to build a scifi city so your tutorials have been really helpful and relevant for that goal!
Still a beginner with Houdini, this is inspiring and well explained, many thanks Simon
Awesome stuff here! Thank you for this tutorial! #houdini is the best dcc software in the entire world! Keep going and good luck! #ilovehoudini #ilovesidefx #iloveepicgames #iloveunrealengine #ilovequixel
Hello Simon! I might be a little late to the video here. Another cool way to do the wires without using rays is using the prims at the end of the poles and then using connect adjacent and using a distance threshold to link the poles! similar to the way that real life cables would connect to shorter paths more and longer paths less often!
Thanks! That is a great trick for it :)
thank you! amazing technique. thank you for sharing your detailed workflow, cheers
The node Convertline splits a primitive into multiple ones depending on the points in between if you don't want to use carve with breakpoints.
This is the second tutorial from your channel I have the chance to do, and I think I'm becoming one of your biggest fan. Thank you Simon for sharing your knowledge with us !! can't wait for the next tuto lol ;p
awesome Simon.......... loving it.
Thank you, it looks really good
This is amazing! Thanks Simon.
Hi Simon, is there a full tutorial with explanation of creating the sci building and most importantly the nodes from scratch?
Thanks friend, sharing your knowledge 👍
Very nicely done and explained.. 👍
the rope thing is just GODDISH...
Stunnin!
btw ..you can SOLVE the wire group range problem , just adding -1 to numpt///// float a = ((float(@ptnum)/(@numpt-1)) *2 -1); cuz , ptnum starts from 0 and numpt from 1 , there is a point of difference between , that ecuation fixes it
^^
so nice tutorial mate, so nice
Thank you very much for this pipelines and concepts sharing with your subscribers! Your work literally helped me to learn basics of Houdini quickly and fully.
Hi i'm following your tutorial with the newest version of houdini (20.0.547) and as we know the copystamp has been deprecated to the copytopoints and the for each loop.
I've been doing a lot of simulation but never used the for each loop, how can i use the index value to randomize the scale of the meshes for the building structure?
Awesome tutorail btw!
Not sure if you still need an answer, but you can use the expression 'opunhide' in the textport to reveal deprecated/hidden nodes, and enable them from there. Super useful for older tutorials like this!
how do you make your connecting lines in the node editor go in like a curvature shape :)?
nevermind, google helped me.
Great tutorial, applying the principles for my personal project
Any chance of the source hip file please? There are a few things you have omitted that are preventing any progress. This looks amazing and I'd love to understand it. I got to about one minute and all i get is a long box with a smaller box boolean'd out of it. :(
Amazing!
Awesome tutorial. Hi how can I do this without the Copy and Stamp node in 19.5?
copy to points + for-each loops
@@khomatech0 Hey, wondering if you could help, I'm this point in the video, where would you enter the stamp attribute when using copy points + for each loop?
@@lukepawelek799 Do you have a timestamp?
@@khomatech0 Thanks for getting back to me, 8:53 ish. Not having copy stamp is really messing things up. I've tried a for loop but it looks nothing like Simons now. Not able to use the Expression he uses in the transform as its linked to copy stamp. Been trying for hours to work around it 😩
@@lukepawelek799 If you just want to randomize scale, use an Attribute Randomize SOP on the points and set it to randomize pscale. You can set min and max values in there as well.
Thanks, Simon. This is a great start. I'm not quite understanding the copystamp, vex, and expressions though. Is adding @ptnum to rand(@ptnum) strictly necessary? It seems like the "index" attribute is functioning more as a random seed, and less like an index. Wouldn't @index = @ptnum be sufficient because you're randomizing inside the transform1 scale properties anyway? Is this just for extra randomness, or is there a stylistic reason like maybe being able to use "index" for something else, or is there an actual functional reason? I just can't wrap my head around this copystamp thing. Is the stamp() expression a fixture of the copystamp node? I.e., do the two always go together? Doesn't referencing something downstream run the danger of creating an infinite loop, or does that just never happen? And, btw, I don't really expect you to answer all of these questions, although I would certainly appreciate any input, and hope maybe others may have some insight, as well. Thanks again!
*I see that other people have asked about getting the rotation value to snap to 90º increments. I can make them all snap to the same random direction, but I'm having trouble getting them each to pick an individually random direction. I used (int( rand($F)*2))*90 which makes them go NNNN or WWWW or EEEE, etc, but I'd like them to go SNWE or WWNS, for example.
what node have u used at 0:18 ? there is no 'box detailer node'.....i am very new to this software...plz someone clear my doubt
He started off by modelling with the cube, then at minute 6:50 he explained how to make the digital asset.
@@mohamaditani9530 Thanks! I was getting confused too lol
Well i have an issue. So, I've been using the global seed tip, but the issue is that it changes the toplogy : so the ptnum are not the same anymore, wich makes the top and bottom part not being the same primitive number all the time : which causes a lot of issues in the generation of the normals for the first and second boolean details added on top of the topology, but also on the rooftop part. I feel like this is kinda hard to finda a procedural way to tell the software "ok this is the top and this is the bottom" so that he doesnt change verything at each seed. do you have any advice ? Also, this is a very great tutorial
Ooookk i just figured out how you actually selected the top and the bottom. Very good tutorial anyways, and thanks for it :)
great tutorial.. any reason why using the copy stamp instead of a for loop?
Thanks Luca, there is no reason why I use the copy stamp. I guess am used to using it.
@@simonhoudini5074 thanks for the reply...
This is really awesome, but can I ask one question? How did you make that random rotation in 10:25 in those 90 degree increments? :)
You can do this by controlling the output of the expression. So ran() gives value between 0 to 1 and you need int. What you can do is use int(rand(...)) and multiple the degrees you want.
@@simonhoudini5074 using int(rand()) doesn't seem to be working for me, the number doesnt change from 0. am I missing something?
@@adin7097 Not sure what it is but it should work. Looking at the Houdini docs will also help.
With the copy stamp each point will return another result. You can not see results for each point.
The better and newer way is doing a for loop instead of copy stamp.
Hey Simon! Great tutorial, but quick question. At timecode 1:06 you make a polyframe to get normals. For some reason my polyframe just gives me normals point up in Y, they don't follow the edge. I've tried all the options in the style dropdown, but the normals don't seem to change. Any ideas on this? Thanks again!
Would check if you use the N in tangent name and disable the other ones.
@@simonhoudini5074 thanks I did have the N in the wrong spot:)
Thanks a lot. What values are of box3 and transform3 node to get the shape in 3:07. Because of many settings&nodes my shape of the building looks totally different.
if I want to scatter a custom mesh to the side of the building is there a way I can make sure its pointing in the right orientation?
Hey plzz make a begginers video for houdini
the sop color adjustment and measure curvature tools still exists? can't find it in the SideFx Labs toolset...
it's just called measure now.
Hi Simon, just a quick question regarding the Transform node used at 9:03. You discuss the expressions going into Scale XYZ, but I was wondering which expressions you used for Rotate Y and Translate Y? Thanks for letting me know.
It is similar like the scale expression but then tweaked to degrees.
Playing around with these expressions can give cool results.
Like int(rand(...)) * 45
@@simonhoudini5074 Hi Simon, thanks for clarifying. I'll try that out. I spent last evening tying your entire tutorial together into a HDA with a global seed and controls for a bunch of details. I was looking for ages for a way to generate a 'non-repeating' SciFi skyline and your suggestion really delivers amazing results. I'll try to amend it a bit, so I can generate hexagonal or round buildings as well, but your tutorial was invaluable to get there. Thanks so much :-)
And just in case you're interested, Julien Gauthier had a very interesting tutorial on how to achieve a lot of SciFi building variety by just using Octane shaders.
www.artstation.com/artwork/30ZOB
Inside Houdine though, I'm pretty sure this can also be achieved using Mantra or Redshift.
@@simonhoudini5074 Bruh, i cannot figure out what you did right there. When i try different settings i get an error "unable to evaluate expression sy, ry, and ty" :( can you tell me the expression so i can tweak it?
@@RUSOBPK If you have trouble using expressions look up the documentation about it and see how to use them.
It is a good practice to try and error with expressions and combine them.
The PolyExtrude node on my rooftop pieces is introducing unwanted rotation on my entire model. Can anyone tell me why?
Hi, great tutorial so far! Could you please let me know what the expressions you put in the transform at 09:00 are?
Thanks! At 9:24 the expression is shown and explained. Then you can use it where you want, in the video it is used in the scale and rotation y.
I recommend playing around with values and tweak the math to get different results.
@@simonhoudini5074 Awesome, thanks! I thought you'd moved on but I shoulda just waited a tiny bit longer!
@@simonhoudini5074 Hey Simon - I know this really late but I got stuck at this point too - I think I was mostly confused about the expression in the Y rotation - starting with int. Pretty new so this is the main point I struggled with and using the fit expression has given me super wacky looking results so I'm at a bit of a loss on how to continue!
5.50 how your select top and botton group?
No normal node like he has in 19.5.493. What do we use now?
if you mean the node at 0:52 , that is a polyframe node which can be used to set Normal vector on points
@@simonhoudini5074 Yeah I saw that thanks! But still Im using the same settings as in the video and still not seeing the normals point to the centre. Normal name off, Tangent on with a cap N in there. Still nothing :(
@@ryanjstever use the polyframe node like Simon said :)
Do you always use $CEX/Y/Z for your transforms after the base shape? Is this something one should always do in houdini?
thank you!
I use that often to place the handler in the middle of an object. There are other ways to do this. For me I created a preset for it so it is easy to access. Further this is not always needed, it is useful if the pivot needs to be replaced.
1:24 Can't find this node sop_axis_align1 (GameDev Axis Align)
enable labs
How is hardware i need to use houdini??tell me,pls
Hi, Great tutorial! I am running into an issue where everytime I use an 'axis align' node, everything just disappears. I don't get an error, everything is just gone. Not sure what is happening as I have my point set to 0,0,0. I'm using Houdini 18.5 btw
The axis align node got replaced/removed because the match size node does the same thing and more, so recommend using that one
Thank you man! Do you have Patreon? :) would love to support!
Thanks Bartosz. I have been thinking about creating a Patreon for sometime and might look into it soon.
@@simonhoudini5074 That's cool! You just got a first supporter then!^^
I'm stuck at 1:11 :(
what relative channel is the sort node referencing?
Ch("../seed") is a channel in my hda.
You can ignore it when building the setup.
If you create your own hda you can also create these parameters and channels.
@@simonhoudini5074 okay thank you. I'll try again then, I thought I was missing some dependencies, and that's why I couldn't achieve it, turns out I'm just too bad.
Recently bought your setup, and he refuses to work adequately. As a result, I see just boxes instead of ready-made sky fi geometry
Thanks for the support!
I guess that the Box_detailer HDA is not installed or loaded correctly. (To install hda go to Assets at the top of Houdini, the install asset library and install box detailer). If there are any errors when loading file let me know.
@@simonhoudini5074 Hello! How can I buy a ready-made setup?
btw this does not work one to one in the Apprentice version. :/
hello help me
Load warnings for D:/Works/Houdini/Houdini_Sci-fi_Buildings_(Tutorial_File)/Houdini_Sci-fi_Houses_Tutorial_file.hip
Warning: "/obj/Buildings/Box_detailer3" using incomplete asset definition (full definition not found).
"/obj/Buildings/Box_detailer2" using incomplete asset definition (full definition not found).
"/obj/Buildings/Box_detailer1" using incomplete asset definition (full definition not found).
The following node types are using incomplete asset definitions:
Sop/Box_detailer
amazing breakdown, i'm very new to houdini and this is awesome
I only have one problem as I input the ch("../seed") comand in the make new digital asset from selection it doesn't allow me change it's value. I can move the slider but then it returns to 0 everytime... can anyone help me :)
Ch(“../seed”) is a link or reference to a parameter.
What you could do for example is fill in $F and still will use the frame number.
Or just remove all references and you can use the slider
@@simonhoudini5074 thank you, in the end i used the raw seed...
i have one last question/curiosity, is there a way to get the height from the original cube to control the height of all the other grebles? so that i have the ability of having different sizes with the right details no matter what :)
@@Thebluebananas100 yes look for a function called bbox (bounding box) . Probably look at the documentation about to understand it
@@simonhoudini5074 thank you a lot for the help!
amazing tutorial!!
i've been searching for something like this as i'm working on a sci fi scene ;)
Для новичков и полных нулей очень сложно без пошагового создания.
Thanks for your help! I also had a problem with copytopoints node, but found the answer here. ua-cam.com/video/F87-7bAQgOU/v-deo.html
Great stuff Simon.Your work is brilliant and inspiring