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 benandersen

I made some hair tools. I’m curious to see what the community thinks of them and whether they’d be worth trying to sell. It’s a project I’ve been working on, on and off, since 2017/2018 for christopher robin.
We had this problem where framestore had delivered a final groom without any guides and expected us to deform it, so I started building up these tools to avoid rebuilding the groom from scratch and hoping it matched. I found the default houdini guide deform tools a bit lacking.
These tools can select good representative guides and deform a dense groom, while doing a reasonable job of retaining the shape. It has some tools for post processing/resolving collisions and a husk procedural with the same capture/deformer logic.
If you have any time or inclination to try it out, this zip file has the hdas and a scene that demonstrates some workflows and examples.

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264105/04/26/iso.hair.1.12.apprentice.zip

Archived post by flakypastries

@.goldfarb. @spectralsoda I pushed an update to the NodeShape Designer: tcrowson.github.io/houdini_nodeshape_designer/
– Added angle snapping on ports (shift-drag) – Updated Mirror/Align Icons – Updated Import/Export Icons – Added support for Copy/Paste of points. You’ll get a warning if pasting into a non-empty layer, but it will still paste. – Added Reference Image support (ctrl-MMB on labels to reset params)

I call this one `lets_cook` 😄

it’s super easy for me to add existing stock shapes to the presets list, I just need approval from SideFX since I think that might count as redistribution of content and would be iffy.

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264404/30/26/image.png

Archived post by jim.meston

Vellum hair constraint setup is very antisocial so if you plug things in line with it, there’s a good chance it doesn’t do what you expect, either silently or otherwise. Run constraint construction in parallels and then fuse judiciously. In this case there is no branching so it is simple.
This way you can drastically improve compression and stretching and also if you get fancy you can make hybrid torque, stiffness constraints. This is what I do for my Vellum Branch Constraint sop which allows you do setup foliage rigs without collapse or bouncy sim settling.
Here I am getting results with 2 substeps.

Increasing the neighbour distance increase stretch/compression resistance. Same for if set this up with bendtwist hybrid struts.

[edit] Might as well add this here also. We can use decreasing density along the curve to increase stiffness as the per point variable mass changes resistance to acceleration. This appears as increased stiffness. It works but rather than linear density decay, it should likely be pow(width,2) or something with some care not to have infinite or zero values.
But we can also set up extra fancy bendwist stiffness struts like this. (+ Bad habit setting stiffness to max as it can’t resolve but that’s another subject).

This works very well for situations without high accelerations and high impact collisions, but can cause artifacts. This can be addressed with carefull stiffness / substeps balance. Or you can bodge the rig with a delta mush which almost always works.

Probably a lot more rough and ready than that fancy paper.

For copy paste ease. Note the inputs.
“`js #include “pbd_constraints.h”
s@type = ‘bendtwist’;
int pts[] = primpoints(0, @primnum); p@restvector = computeBendTwistRestVector(1, pts[0], pts[1]);
@stiffness = 1e12; @dampingratio = 0.001; “`

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265404/27/26/image.png

Archived post by mysterypancake

it kind of sounds like an audio compressor, it gave me a similar idea to toadstorm you could take the min and max of several neighbours, then blur it, then normalize to that range

like a moving average with a rectangle window except min/max instead (en.wikipedia.org/wiki/Moving_average)

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20261604/11/26/2026-04-11_14-03-42.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20261604/11/26/normalize_windowed.hiplc