# Movement Node — Pan/Tilt Patterns

Movement generates a moving-head path with separate Pan and Tilt outputs. Add it from the graph's input nodes and connect those outputs to the corresponding position inputs on a Device node. The live preview shows the path and fixture points as you change settings.

<img src="https://unilighter.cc/info/user/pages/02.docs/14.node-graphs/movement/movement_b57d8d98.png" alt="Movement in Sequence mode connected to a four-fixture tag through separate Pan and Tilt wires" width="525" height="1114" style="width: 525px; max-width: 100%; height: auto;" />

## Start with one moving head

1. Select Single Value, choose Circle, and connect Pan and Tilt to one fixture.
2. Set the home position with Pan and Tilt (both default to `0.5`). Pan Size and Tilt Size default to `0.15`: each is the amplitude on either side of home, not the total width.
3. Start slowly: Frequency defaults to `0.25 Hz`. Enable Sync to BPM to use the project tempo and choose a BPM Fraction.
4. Set Pan Min/Max and Tilt Min/Max to constrain the output. Values are normalized `0–1`; confirm the physical fixture's travel before using a pattern on a rig.

## Shapes and timing

| Family | Shapes |
| --- | --- |
| Curves | Circle, Figure 8, Infinity, Ballyhoo, Swing, Flower, Spiral, Lissajous |
| Lines and polygons | Square, Diamond, Triangle, Star, Cross +, Cross ×, Diagonal, Snake, Zig Zag |
| Single-axis patterns | Pan/Tilt Wave, Line, Saw, Step, Bounce |
| Jumps and random motion | Corners, Random |

Lissajous offers Pan:Tilt ratios `1:3`, `3:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, and `5:4`. Reverse runs the path backwards. Rotation turns the shape clockwise (`0–1` corresponds to `0–360°`). Phase offsets the cycle.

Blend scales motion around the home position: `0` holds home including Fan, `1` applies full size. Width is the fraction of the cycle during which the path runs; outside that interval the fixture holds the path's start point. Combining a short Width with Spread creates a ripple. Saw, Step and Corners include jumps; the physical fixture's motor speed determines how they look.

## Movement across a fixture tag

Select Sequence and connect the outputs to Device in tag mode. There is one Pan and one Tilt value per fixture. Count `0` means Auto: it follows connected tag-based Device nodes, including through Reroute nodes, and uses the largest connected tag. Without a connected tag it uses the longest sequence input, or one fixture. Membership updates may take up to half a second.

| Control | Result |
| --- | --- |
| Spread | Distributes a fraction of one cycle across phase slots; `0` moves in unison |
| Phase Order | Linear, Reverse, Center Out, Edges In, Odd / Even, or Random |
| Mirror / Mirror Axis | Mirror the second half, odd/even fixtures, or alternate wings on Pan, Tilt, or both |
| Alternate direction | Odd fixtures traverse the shape backwards |
| Pan Fan / Tilt Fan | Offset home positions from negative Fan at the first fixture to positive Fan at the last |
| Blocks | Consecutive fixtures sharing a phase slot; default `1` |
| Groups | Repeat phase slots in groups when greater than `1` |
| Wings | Split slots into wings and reverse the phase order in every second wing when greater than `1` |

Phase, home positions, sizes, Blend and travel limits accept numbers or sequences. A scalar applies to every fixture; a shorter sequence repeats cyclically.

## Give each head its own home

Use [Sequence → Pack XY](https://unilighter.cc/info/for-ai/docs/node-graphs/sequence.md) to collect the X/Y outputs of several [XY Pad nodes](https://unilighter.cc/info/for-ai/docs/node-graphs/xy-pad.md). Connect the packed X output to Movement Pan and Y to Tilt, then route Movement to the fixture tag. Each XY pad now sets that head's home while the shared pattern runs around it. Use Pack for separate per-head limits or sizes.

## Pan/Tilt speed and release

Movement does not control the fixture's Pan/Tilt speed channel. If the fixture requires a tracking/fast setting, connect a Value node to that misc input on Device and set the value according to the fixture manual. Disable the graph to release its control; an active manual control can still override the graph according to [control priorities](https://unilighter.cc/info/for-ai/docs/priorities.md).

