VEX

VEX is the common language for extending Natsura's growth: computing custom effector fields, authoring attributes and gates with wrangles, and exposing custom mappable parameters.

VEX is the common thread through Natsura's extension points. Whether you are computing a custom direction field, writing custom attributes and gates, or exposing a custom mappable parameter surface, you are working in VEX. This page collects the three.

Custom effectors

An effector is a per-point direction vector that growth reads through a response mode (attract, repel, flatten, align-up). The model, and the shipped effectors, are covered in Effectors. When none of those produce the field you want, the way in is the custom effector base: a node where you compute a direction per point in VEX from any attribute the growth carries. Once you have written a vector, growth applies it exactly like a built-in effector, through whatever response mode and Map-driven strength you set. So a custom effector is mostly a VEX problem: read the attributes you care about, decide on a direction, write it out.

Detailed walkthrough pending.

Custom wrangles

The Wrangle node drops a growth graph down to VEX. It is the general-purpose tool for anything the built-in verbs don't express directly: writing a custom attribute, gating growth on a condition, computing an exposure or age value, or shaping the data a downstream Map or Switch reads. The discipline is to be attribute-driven: a wrangle's job is usually to write an attribute, not to produce geometry. You read what the internodes already carry (u, age, generation, anything upstream wrote), compute the value you need, and write it back, then let mapping and switches consume it.

Detailed walkthrough pending.

Custom maps

The mapping framework turns any parameter into a value computed per internode from an attribute (see Mapping). To expose your own parameters to that framework, so a tool you build can be driven by Map chains like the shipped nodes, use the Mapping Template: it defines a set of mappable parameters on a target HDA. You use it when building a custom module or wrapper that needs its own promotable, map-driven parameter surface rather than borrowing one from an existing node.

Detailed walkthrough pending.

This pairs naturally with Make Your Own Tools, where the wrapped recipe gets its parameter surface.