The camera moves along a circle of radius Radius and height Height centered on the target position, and outputs camera values that always face the target. There are two ways the angle is determined: when Phase is connected, its value is used directly as the amount of rotation (0→1 is one full turn), and when it is not connected, the camera runs on its own at Speed (degrees per second). Plugging an LFO with a Saw waveform into Phase gives you camera work you can talk about in beats, such as one turn per bar.
- TargetX / TargetY / TargetZ — The center of the orbit (default 0)
- Radius (default 30, minimum 0.01)
- Height — Height offset from the target (default 8)
- Speed — Rotation speed when Phase is not connected, in degrees per second (default 20)
- Phase — Only active when connected. 0→1 is one full turn
- FOV — Clamped to 1-179 degrees (default 60)
Speed is ignored the moment you connect Phase.
This node always outputs perspective camera values (it cannot be made orthographic). Near 0.1 / far 1000 are fixed as well.
Input ports
| Port ID | Type |
TargetX | float |
TargetY | float |
TargetZ | float |
Radius | float |
Height | float |
Speed | float |
Phase | float |
FOV | float |
Output ports
| Port ID | Type |
Camera | CameraDataOutput |
Scriptable members
| Path | Type |
targetXInput | float |
targetYInput | float |
targetZInput | float |
radiusInput | float |
heightInput | float |
speedInput | float |
phaseInput | float |
fovInput | float |
Synapse Apps (scripting)
await synapse.modules.create({ type: "OrbitCamera" })