Skip to main content
Skip to content

Drive your PTZ cameras from one controller.

Headroom puts VISCA, Panasonic AW and NDI® PTZ cameras on an Xbox pad, with low-latency NDI video beside every move.

Available for Windows · free during early access. Sign in to download. Tested on BirdDog cameras.

Xbox controllerNDI · 3 cameras
1
CAM 1192.0.2.101  /  NDI · CAM 1
1920×1080 @ 29.97ONLINELOCKED
PAN / TILT—
ZOOM12%
FOCUSAUTO
EXPOSURE0
BANK1 · 1–4
Overlays
1
CONTROLLINGCAM 1192.0.2.101
Presets
Lens & exposure
Mouse control
TW
ZOOM
FN
FOCUS
Presets
Lens & exposure
Speed100%
IMAGE SETTINGS
Presets
Lens & exposure
Speed100%
IMAGE SETTINGS
Presets
Lens & exposure
Speed100%
IMAGE SETTINGS

A working recreation of the Focus layout. Unlock it, then recall a preset, drag the joystick or pick another camera. Stock pictures stand in for the camera feeds.

VISCA over IPCameras such as BirdDog and Sony
UDP 52381
VISCA UDP and TCPCameras such as PTZOptics and Marshall
UDP 1259 / TCP 5678
Panasonic AWPan, tilt, zoom, focus, presets and power
HTTP
NDI® PTZControl through the NDI connection
NDI

The pad you already own is the control surface.

Sticks and triggers drive pan, tilt, zoom and focus with a curve you tune. Face buttons recall presets. Plug a controller into this computer and press anything to see the map light up.

No controller detected

Move

LS
Pan and tilt, with smoothing and acceleration
RTLT
Zoom in and out, pressure sensitive
RS
Focus far and near; click for auto focus
L3
Precision mode for tight shots

Presets and cameras

ABXY
Recall presets 1 to 4 of the bank
View
Hold with a face button to save
LBRB
Previous or next camera; it buzzes once per camera number, up to four
←→
Preset bank, four banks of four

Exposure and safety

↑↓
Exposure up and down
Menu
Press to lock instantly; hold half a second to unlock
R3
Back to auto focus
Learn
Remap anything, or use any HID joystick

No controller here? Click the map and press ABXY, QE for the bumpers, ZC for the triggers or the arrow keys for the D-pad, or hold a row with the mouse.

One camera up close, or all of them at once.

Xbox controllerNDI · 3 cameras
1
CAM 1192.0.2.101  /  NDI · CAM 1
1920×1080 @ 29.97ONLINELOCKED
PAN / TILT—
ZOOM12%
FOCUSAUTO
EXPOSURE0
BANK1 · 1–4
Overlays
1
CONTROLLINGCAM 1192.0.2.101
Presets
Lens & exposure
Mouse control
TW
ZOOM
FN
FOCUS
Presets
Lens & exposure
Speed100%
IMAGE SETTINGS
Presets
Lens & exposure
Speed100%
IMAGE SETTINGS
Presets
Lens & exposure
Speed100%
IMAGE SETTINGS

Focus gives the camera you are driving the whole screen, with a heads-up bar for zoom, focus, exposure and bank. Ctrl+1.

Columns puts every camera side by side with its own presets and lens controls underneath. Ctrl+2.

1
CAM 1192.0.2.101  /  NDI · CAM 1
1920×1080 @ 29.97ONLINELOCKED
PAN / TILT—
ZOOM20%
FOCUSAUTO
EXPOSURE0
BANK1 · 1–4
Overlays

Frame it right before you cut to it.

Overlays live per camera, right under the picture. Zebra, false colour and peaking run on the video threads, so the live view stays smooth. Try them here.

Drag the mask and safe area on the picture to move and resize them. Each camera remembers its own.

Match three cameras without leaving the switcher.

Exposure, white balance, picture and colour matrix for BirdDog cameras, live, with exact steps on every slider. Other cameras keep their own web page.

  • Looks. Save a camera's colour under a name and apply it to any other camera.
  • Copy one value. Every setting carries numbered chips in each camera's colour. Click 2 to take that value from camera 2.
  • Presets keep up. Re-save the presets you pick with the current look. It warns you first: the camera moves.
The Image tab: looks, Match other cameras to this one, and exposure mode, shutter, iris and gain, each with copy-from-camera chips and step buttons.

Nothing moves while it's locked.

One switch blocks every move, preset and image change. Lock from the button, Ctrl+L or Start on the pad, or start Headroom with --safe so nothing moves until you say so.

Neutral firstSticks and triggers only drive after returning to centre: after unlocking, switching cameras or reconnecting.
Stops that stickStop commands repeat. Unplugging the controller or switching cameras stops everything.
Protect the live cameraWith tally connected, warn or block moves and presets on the camera that is on program.
No accidental nudgesSliders ignore the mouse wheel until you click them, so scrolling a panel never touches a camera.

Fits the rest of the rack.

Control API

JSON over HTTP plus a live event stream. Off by default and listening on this PC only; other computers need the API token. Drive it from scripts, Tally Studio, or Companion's generic HTTP module.

# recall preset 3 on camera 2
POST /api/cmd
{ "cmd": "recall", "camera": 2, "preset": 3 }

# hold a slow pan right, then stop
{ "cmd": "move", "pan": 0.3, "tilt": 0 }
{ "cmd": "stop" }

# everything, as one document
GET  /api/state

Tally from vMix or Tally Studio

vMix TCP tally on port 8099. Tiles, the big view and Columns show red for program and green for preview.

Build your own controller

An Arduino, ESP32 or Pi Pico works as a USB HID controller. Over the network, plain-text UDP to port 9100 does the rest, with a token for other computers.

ptz 0.4 0 0cam 2preset 3homestop

Ready for the next show.

Headroom 1.2.0 is available for Windows 11 (Windows 10 hasn't been tested yet), free during early access. Sign in with your Mantaglow account to download.

Requires
Windows 10 x64. VISCA, Panasonic AW or NDI PTZ cameras; an Xbox controller, joystick or mouse.
Download
Zip, 65.2 MB · version 1.2.0 · 2026-10-04
Windows warning
The app isn't code-signed yet, so Windows SmartScreen may stop it the first time. Choose More info, then Run anyway.
SHA-256
b042e96a3a94e956314b3658def67eadc3ae821ca84e509e10878b2b1de41614
Download for Windows