Settle HDA
Settle is a Houdini HDA that computes physically accurate resting orientations for any geometry, based on the position of its center of mass. No physics simulation required.
It implements the equilibrium classification algorithm from “Putting Rigid Bodies to Rest” by Baktash et al. (SIGGRAPH 2025), and outputs orient and probability attributes ready for Copy to Points.
Available on Gumroad — non-commercial version free, commercial license €25.
Putting Rigid Bodies to Rest
By far the coolest paper I found last year was “Putting Rigid Bodies to Rest” by Baktash et al. The paper deals with dice. Specifically, how to calculate the probability of which face a rigid body will land on after being dropped from a random orientation.
The great thing is, no physics simulation required. It is entirely geometric. Given the convex hull of an object and its center of mass, you can analytically determine which faces are stable resting surfaces and how likely the object is to end up on each one. Exactly what a scatter workflow needs?!
Algorithm
The algorithm is surprisingly simple. We take the convex hull of the object and its center of mass, then classify every face and edge of the hull based on one question: if this element were touching the ground, which way would the object roll next?
For faces, we project the center of mass onto the face plane and check where it lands. If it falls inside the triangle the face is stable and rolling stops. If it falls outside, the face tells us exactly which edge or vertex to roll toward next.
For edges, we check where the center of mass projects along the edge direction. If the projection falls within the edge segment the object rotates like a hinge onto one of the incident faces. If it falls outside, the object cartwheels onto the nearest endpoint vertex.
After classification every element knows exactly where it hands off to next, forming a complete map of the hull.

Tracing
With the classification in hand, computing resting probabilities is just a matter of following the map. Starting from any face, we follow the chain of handoffs until we reach a stable face. Run this for every face on the hull, count how many traces end up at each stable face, normalize and you have physically accurate resting probabilities.
Scatter Workflow
The probabilities feed directly into a scatter workflow. Each stable face becomes an instancing variant with a precomputed orientation that aligns that face to the ground plane. No more need to simulate how the shopping trolley tips over, just calculate the probabilities and scatter away.
