SideFX Houdini customization package
git clone https://git.lucas.co/hou-control.git
developer_attribute_initialize 1.1: one attribute per node
The Attributes list of 1.0 becomes the node's own parameters, every
template kept as it was but for the '#' in names and conditionals; the
two wrangles lose their loop over the tabs, attr_changed() its
multiparm index, and the node is labelled by attr. Enable goes with the
list, since the bypass flag does that job for a single attribute. 1.0
stays for hips that hold several attributes in one node.
Verified headlessly: constant float with an age counter and range,
cross product of two parameter vectors with variation, integer with an
integer range, and the dot product of P with a parameter all cook
identically to a single tab of 1.0; renaming the attribute still follows
it into a downstream Developer Analysis.
Co-Authored-By: Claude Opus 5 <[email protected]>
otls-audit.md | 2 ++
...p_lsgalante.developer_attribute_initialize.1.1.hdalc | Bin 0 -> 15938 bytes
2 files changed, 2 insertions(+)
diff --git a/otls-audit.md b/otls-audit.md
index df7022c..dc36961 100644
--- a/otls-audit.md
+++ b/otls-audit.md
@@ -19,6 +19,8 @@ Audit of every HDA in `otls/`, run 2026-09-14 against Houdini 22.0.429 (Indie) w
>
> `developer_visualize` (2026-09-17) does the drawing for a solver's Vis tabs wherever it sits in the chain; a new `developer_solver` has one before OUT and no longer composites at its own output.
>
+> `developer_attribute_initialize 1.1` (2026-09-18) makes one attribute per node -- the Attributes list of 1.0 became the node's own parameters, and Enable went with it since the bypass flag does that job. 1.0 stays for hips that hold several attributes in one node.
+>
> `developer_panel` is removed (2026-09-17): its tabs live on `developer_solver`'s Visualize folder, where Color tabs are composited into `Cd` by a wrangle after the simulation (several at once, with blend and opacity) and Marker tabs keep a Houdini marker visualizer on the solver node.
>
> `developer_surface_detangle`'s Shapeshifter algorithm is built: a point repulsion over Iterations passes with Thickness in edge lengths and a Neighbour Rings exclusion, replacing the Not Implemented error. Section 4 now lists only the empty shells.
diff --git a/otls/sop_lsgalante.developer_attribute_initialize.1.1.hdalc b/otls/sop_lsgalante.developer_attribute_initialize.1.1.hdalc
new file mode 100644
index 0000000..2411bd7
Binary files /dev/null and b/otls/sop_lsgalante.developer_attribute_initialize.1.1.hdalc differ