“`py
def wrap_in_network_box( nodes: list[hou.Node], name: str | None = None, comment: str | None = None, color: hou.Color | None = None, ) -> hou.NetworkBox | None: “””Wraps nodes in a network box sized to fit them. Args: nodes: Nodes to enclose. Must share the same parent. name: Optional box name. Auto-generated if omitted. comment: Optional comment shown in the box header. color: Optional box color. Returns: The created network box, or None if nodes is empty. Raises: ValueError: If nodes do not share a common parent. “”” if not nodes: return None parent = nodes[0].parent() if any(n.parent() != parent for n in nodes): raise ValueError(“All nodes must share the same parent.”) box = parent.createNetworkBox(name) for node in nodes: box.addNode(node) if comment: box.setComment(comment) if color: box.setColor(color) box.fitAroundContents() return box
# Wrap the current selection: wrap_in_network_box(hou.selectedNodes(), comment=”My group”)“`
Archived post by vanity_ibex
Oh wow ok, that sounds cool. Might have to look into that
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265106/23/26/COPs_Global_Illumination.hiplc
Archived post by remipierre
By the way, I will go back to the **quadrangulate **discussion we had a while, my geometry comes triangulated as it comes from a game engine and doesn’t keep quads.
In the end, I replaced the dissolve node by a wrangle in the node and it runs way faster, I basically recreate polygons myself. I will put it there if someone needs it
It might not work with all cases, works in mine, though
“` int ordered_poly[]; int shared_pts[]; int vtx_tmp[];
// Get the edge group from the first input int pts[] = expandedgegroup(0, “long_edge”);
// Loop through the point pairs making up the edges for (int i = 0; i < len(pts); i += 2) { // Get positions of the two points for the current edge int first_hedge = pointedge(0, pts[i], pts[i+1]); int first_prim = hedge_prim(0, first_hedge); int second_hedge = hedge_nextequiv(0, first_hedge); int second_prim = hedge_prim(0, second_hedge); int vtx1[] = primpoints(0, first_prim); int vtx2[] = primpoints(0, second_prim); shared_pts = array(pts[i], pts[i+1]); // get unique points int p_shared_a = shared_pts[0]; int p_shared_b = shared_pts[1]; vtx_tmp = vtx1; removevalue(vtx_tmp, shared_pts[0]); removevalue(vtx_tmp, shared_pts[1]); int p_unique_0 = vtx_tmp[0]; vtx_tmp = vtx2; removevalue(vtx_tmp, shared_pts[0]); removevalue(vtx_tmp, shared_pts[1]); int p_unique_1 = vtx_tmp[0]; // Find winding int idx_a = find(vtx1, p_shared_a); int idx_b = find(vtx1, p_shared_b); if((idx_a + 1) % 3 == idx_b){ ordered_poly = array(p_unique_0, p_shared_a, p_unique_1, p_shared_b); } else { ordered_poly = array(p_unique_0, p_shared_b, p_unique_1, p_shared_a); } // put prims to delete in a group setprimgroup(0, "__to_del", first_prim, 1); setprimgroup(0, "__to_del", second_prim, 1); // Create polygon int new_poly = addprim(0, "poly"); foreach(int p; ordered_poly){ addvertex(0, new_poly, p); } } “`
Archived post by pixel_bender
downloadable
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20260206/18/26/Fantasia_2000_1999_The_Firebird_Suite_Effect_Pencil_Tests_Videos-02.mp4
Archived post by blacknye
APEX Bike Chain idea. Someone on the sidefx forums was looking for a solution and this was a quick solution I came up with and shared it. Also, sharing it here. When I get more time, I’m going to rebuild a more practical setup and share it as well.
basically deconstructing/reconstructing a setup @mestela shared on the forums about 8 years ago
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20263006/12/26/apex_chain_concept_v001.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20263006/12/26/apex_chain_v002.hiplc
Archived post by ogvfx
I made a thing awhile ago wedging over Houdini’s white water solver and saved them all in Google drive if this helps anyone.
drive.google.com/drive/folders/1Rxe1eNgJ8kkPoJna0JBrRxDlRgxYEAgi
https://youtu.be/72G3Y2RwExo?si=rvd-43ygNuCCpli6
Archived post by lwwwwwws
I found if you sop import packed disk VDBs it happily does the right thing and you get instances referencing the original .vdb files, no extra caching required… so if you’ve got packed (non-disk) VDBs as .bgeo you should be able to turn that into a packed disk equivalent: – unpack 1 prim with Apply Transform disabled to get the original VDB – save it as a .vdb, load it back in as a packed disk with a File SOP – use Pack Inject to turn the packed VDB setup into packed disk VDBs – change or delete the path attrib, because packed disks have the file path in there and LOPs will use it to create a transform hierarchy from your on-disk folder structure which is just insanely confusing the first time you see it lmao
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264106/10/26/Screenshot_2026-06-10_at_11.41.14.png
Archived post by blacknye
I’m reading through this now, I’ll share some of my insights/experiences too in a bit. We’ll struggle together haha.
> plug the skeleton into the autobilder – says that left side does not match the right but doesn’t tell me what exactly is different * For this particular warning, you can probably ignore it. I agree with you though, it would be really nice to have more details. This warning even pops up when testing the autorig builder on Electra and Otto.
* Since you’re using a mixamo skeleton. I’d make sure to clean up some of the transforms and naming. On the fbx import nodes, make sure to check ‘Normalize Joint Scales’ and ‘Remove Namespaces from Joint Names’. I’d also do a string replace for names containing ‘Left’ and ‘Right’ and replace them with` ‘L_’ and ‘R_’`. Remove the fbx attribs. It probably has a bunch of ‘end’ joints too, I’d blast those or tag them so you can easily hide them later when configuring controls
> takes a couple of seconds to enter the rigbuilder state and then even the state feels a bit sluggish (wasn’t apex supposed to be fast?) * There could be several causes for this, some apex, some viewport, vulkan, opengel, etc. Hi-poly geo, viewport lighting, scene antialias samples. Resetting the viewport can help too.
> dropping components feels nice and powerful but the worldspace controls are finnicky // ie can’t toggle on a click, have to drag, and you eventually drag away from the toggle and the controls close…. * For the ik/fk toggles, you should be able to just left-click on it instead of click+drag, click+drag brings up the on/off switch but that action isn’t needed when switching between ik/fk.
> names of those controls are also not helping * You can rename the controls using a the post process tab in the configure controls sop. If your controls have long names with the mixamo: namespaces, I’d recommend cleaning those up before you even get to the apex stuff.
> and some random things here and there – ie I drop the foot component and the hole rig collapses…. * I’d have to see the skel/hierarchy in your file, I haven’t experienced that behavior.
Just wanted to show the affect polycount still has on viewport performance. I think it’s important to be mindful of this and still use good practices. Also, I find opengl to have better performance over vulkan in this particular case.
@nikolad8022 I’m posting a video below and a scene file that might help you so you can see once you do the setup and cleanup on the mixamo skel before diving into apex, it’s pretty stable:
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265605/31/26/apex_polycount_opengl.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265605/31/26/mixamo_prep_for_apex.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265605/31/26/mixamo_prep_for_apex_v001.hiplc
Archived post by mysterypancake
added some info about a method i posted earlier to make a coordinate system along curves: github.com/MysteryPancake/Houdini-Fun/tree/main#coordinate-system-along-curves
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265405/31/26/curve_frame_planes.png
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265405/31/26/noise_along_curve_volume.webp
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265405/31/26/pig_along_curve.webp
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265405/31/26/curve_unroll.webp
Archived post by vanity_ibex
I’m sure it can be optimized here and there
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264705/29/26/blobdetect_hac.hiplc