Antoine Lecaille

alecaille

About Me

Connect

LOCATION
ウェブサイト

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Invoke graph a Subnetwork with a Parallel for Compile Block 2026年11月11日5:16

tamte
npetit
To pass the dict attribute to the node and ensure it is used to drive the node parms, you need a spare input parm pointing to the node with the "parms" dict attribute and a parameter override parm "spare_parminputindex" int attrib for the spare input index. Both of these can be created using the Parameter Edit Menu > Add Spare Input and then Parameter Edit Menu > Add Parameter Override.
also since you were wondering about restrictions, it's worth to keep in mind that this only works for verbified SOPs, so many low level nodes like Clip SOP are fine, but none of the HDAs

Yes I figured that some SOPs are not compatible with this;
Is there a way to generate a reverse list, i.e a list of non verbified SOP that I can keep in mind ?
For example, Point Jitter
Or display this information somehow ? I wrote a Python Panel that displays this information, so that I can find alternatives when possible, but it's taking a bit of room in the UI. I understand this is a different notion from compilability.

Procedural House 2026年11月9日9:51

Matwowowowo
Hello everyone!

I'm Mathis, a French 3D student with a strong interest in Houdini.

For a personal project, I'm trying to create a procedural house-generation system in Houdini. To get started, I followed Simon Houdini's tutorial on recreating house from Overwatch 2 (link to the video: https://youtu.be/uIe97023sDk?si=kcOB4o1TUgZ7P-jD).

But I want to go further by making each generated house unique, with differents arrangements for its components (windows, doors, etc.).

However, i'm stuck at this part and don't really know how i can handle it (for this system).

If you have any hints or tips it will be a pleasure.
Thanks for reading this post

#1 Create a seed parameter on the asset.

#2 In scatter_assets/ chain / seed:
set the parameter value to:

detail(-1,"iteration",0)+ch("../../seed")

seed being a parameter on the Top Level Asset

# 2
Then scatter the assets in a for loop, driving 'seed' like this (see screen capture)
point(-1,0,seed,0)

That seed being, this time, the randomized attribute on the grid on which you scatter the assets.
That way, you can pass down data that are on the grid to individual nodes in the asset, at which point there shouldn't be any limit to what you can do.

Say you want to randomize the sizes of the buildings:

The first floor X dimension is driven by:
ch(strcat("../x_",detail(-1, "iteration",0)+1))

Then you can adjust this to pick up for example, an attribute on the grid:

You could also drop the MultiParms for the Floors, and generate all the data from just a few attributes, because as of now, this is really not parametric at all:
floorCount
FirstFloorDims
Height
Decay Style (how to compute the other floor dimensions from the First Floor dimensions)
Decay style example: polyexpand(inside) + jitter in XZ plane; this gives a slightly chaotic growth effect

and so on, and compute what you need in the asset.
It's better to have few parameters at the top level, and complex procedures inside between which you can switch independently.

This way, it stays procedural, even if you only need 3 floors of the same size.

Invoke graph a Subnetwork with a Parallel for Compile Block 2026年11月9日6:33

Would you mind showing a Clip SOP inside a compiled, multi threaded loop, which Origin or Distance would be driven by the iteration detail from the Metadata of the loop, which itself is transformed into a Compiled Graph with Attribute From Parameters SOP ?
I still don´t really understand what the restrictions are for the operators inside the subnet. Thanks