- Geometry
- Voro
Warp FX
Purpose
Section titled “Purpose”Warp FX generates and changes geometry with kernels written in Python using import warp as wp. Declare the ports, state, fields and spatial structures they use, then press Reload. Python compiles the source, and the resulting kernels run on the GPU.
Place Warp FX from the Geometry view of the Voro menu, under Voro. The docked DAT warp_source holds the source. The default generates an indexed wave grid on grid. Wire the output into a Geometry COMP in a Scene to see it. Turn Height to change the wave amplitude or Phase to move it across the grid.
The default source also writes a per-point attribute named crest. Find this line in its vertices kernel:
crest[i] = waveReplace it with the following line and Reload to map the wave’s -1 to 1 range into 0 to 1:
crest[i] = 0.5 + 0.5 * waveKeep the surrounding source. This changes the attribute values without changing the mesh. The authoring guide explains the point and triangle kernels.
Inputs and outputs
Section titled “Inputs and outputs”The source declares them. Geometry ports carry named per-point attributes, with P required; an output that deforms an input says which input owns its topology, and generated geometry declares its own bounded points and indices. Fields can publish as density, velocity, temperature or colour fields, or as dense tensor ports.
Controls
Section titled “Controls”- Reload compiles the source. Ports, counts, stages, fields and state change on Reload. A failed compile keeps the last valid declaration and artifact running.
- Reset runs the reset stages again.
- Numeric
PARAMSapply live. Turn them and the kernels see the new value.
Inputs
None
Outputs
-
gridmesh
Parameters
Section titled “Parameters”Warp FX
op('warp_fx').par.Scriptdat - Default:
"" (Empty String)
op('warp_fx').par.Reload - Default:
None
op('warp_fx').par.Reset - Default:
None