Skip to content
Voro
  1. Geometry
  2. Voro

Warp FX

Authoring guide Warp FX

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] = wave

Replace 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 * wave

Keep the surrounding source. This changes the attribute values without changing the mesh. The authoring guide explains the point and triangle kernels.

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.

  • 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 PARAMS apply live. Turn them and the kernels see the new value.

Inputs

None

Outputs

  • grid mesh

Warp FX

Warp Source (Scriptdat) Str op('warp_fx').par.Scriptdat
Default:
"" (Empty String)
Reload (Reload) Pulse op('warp_fx').par.Reload
Default:
None
Reset (Reset) Pulse op('warp_fx').par.Reset
Default:
None