SideFX Houdini customization package
git clone https://git.lucas.co/hou-control.git
developer_vitality 1.1: age attributes match Attribute Initialize
Vitality 1.0 counts into <attr>_age1, _age2 and _age3 while Attribute
Initialize's Age toggles create _age0, _age1 and _age2, so only two
lined up and the accumulator never had an attribute to write to. 1.1
renames the counters in order: the one that resets on sign change is
_age0, the one that never resets _age1, the accumulator _age2. The
internal nodes are named for what they count. Verified on a saturated
frame, a sign flip, and an input without age attributes.
1.0 stays for hips that read the old names, with help pointing at 1.1.
developer.md and the audit list both versions.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
developer.md | 2 +-
otls-audit.md | 3 +++
otls/sop_lsgalante.developer_vitality.1.0.hdalc | Bin 7517 -> 7540 bytes
otls/sop_lsgalante.developer_vitality.1.1.hdalc | Bin 0 -> 7599 bytes
4 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/developer.md b/developer.md
index eef5818..2cffa87 100644
--- a/developer.md
+++ b/developer.md
@@ -95,7 +95,7 @@ Names are the tab-menu labels without the "Developer" prefix; the file in `otls/
- Select
- Solver
- Submute Begin / Submute End
-- Vitality
+- Vitality 1.0 and 1.1: age counters for an attribute; 1.1 writes `_age0..2` to match Attribute Initialize, 1.0 wrote `_age1..3`.
- Weight (Scalar Weight, Vector Weight)
### Developer/Attribute
diff --git a/otls-audit.md b/otls-audit.md
index 3f7c705..6a60737 100644
--- a/otls-audit.md
+++ b/otls-audit.md
@@ -17,6 +17,8 @@ Audit of every HDA in `otls/`, run 2026-09-14 against Houdini 22.0.429 (Indie) w
> | `developer_vector_from_scalar` | `developer_gradient 1.0` | `95abc44` |
> | `developer_vector_rotate` | `developer_rotate 1.0` | `95abc44` |
>
+> `developer_vitality 1.1` counts into `_age0..2` to match `developer_attribute_initialize`; 1.0 stays for hips that read `_age1..3`.
+>
> Alongside: `developer_attribute_composite` gained vector and further scalar operations (`ffd6c75`), `developer_analysis` writes its statistics into the `<attr>_info` dictionary that `developer_attribute_initialize` creates, whose range is one vector2 key (`8e87ec2`, `43ba011`). No hip in the repo used any removed type; hips elsewhere that did will load those nodes as empty placeholders.
| | count |
@@ -323,6 +325,7 @@ The operator list in `developer.md` uses **Scalar** names (`Scalar Diffuse`, `Sc
| `developer_time_ramp` | 1.0 | Sop | Developer/Time | 0-0 | 3 | 0 | 0 | 0 | ok |
| `developer_time_switch` | 1.0 | Sop | Developer/Time | 1-2 | 4 | 0 | 0 | 0 | ok |
| `developer_vitality` | 1.0 | Sop | Developer | 1-2 | 1 | 0 | 0 | 0 | ok |
+| `developer_vitality` | 1.1 | Sop | Developer | 1-2 | 1 | 0 | 0 | 0 | ok |
| `developer_volume_miasma` | 1.0 | Sop | Developer/Volume | 0-1 | 0 | 0 | 0 | 1 | ok |
| `developer_weight` | 1.0 | Sop | Developer | 0-1 | 2 | 2 | 0 | 0 | ok |
| `gem_border` | 1.0 | Cop | GEM | 0-1 | 0 | 0 | 0 | 0 | - |
diff --git a/otls/sop_lsgalante.developer_vitality.1.0.hdalc b/otls/sop_lsgalante.developer_vitality.1.0.hdalc
index 6d9c2e6..87e3159 100755
Binary files a/otls/sop_lsgalante.developer_vitality.1.0.hdalc and b/otls/sop_lsgalante.developer_vitality.1.0.hdalc differ
diff --git a/otls/sop_lsgalante.developer_vitality.1.1.hdalc b/otls/sop_lsgalante.developer_vitality.1.1.hdalc
new file mode 100644
index 0000000..db00966
Binary files /dev/null and b/otls/sop_lsgalante.developer_vitality.1.1.hdalc differ