Manual / Setup
Web Interface
OpenFollow is configured through its built-in web interface. The UI tries the configured port (default :80) first and falls back to :8080 or :2010 if that bind fails – at most one fallback runs alongside the primary.
Settings apply live; ones that need a restart prompt for it. Every form submits with its Save button.
Header and top bar
The header at the top of the page carries the OpenFollow logo on the left and a station name label on the right (the station name, set on the General tab). On first boot the station name auto-derives to something like OpenFollow brave-otter so a fleet of devices stays distinguishable.
The top bar above the tab bar carries the Logout button when a Web PIN is configured. The Restart action lives in the Diagnostics section of the Overview tab – see Diagnostics.
Tabs
The UI is organised into six top-level tabs – seven when experimental features are enabled, which adds the Person Detection tab.
Overview
The default landing page. Shows:
- Server Network – every OpenFollow peer discovered on the LAN, plus this station. Its own row follows the station's IP address within a few seconds if it changes while running (for example switching an interface from static to DHCP), rather than holding the boot-time address until a restart. Multi-instance setups (two cameras tracking the same stage) appear here.
- Live Statistics – frame rates, packet counters, marker positions, send/skip counts for each transmitter. Updates every second.
- Diagnostics – live web-server, beacon-sender, beacon-receiver, and log-source health, plus one-click Download diagnostics bundle, Test peer connectivity, and Show recent log tail actions. Refreshes every 5 seconds. Full reference in Diagnostics.
General
- Station Settings – the device's identity and access in one box: Station name (the PSN system name other tools see), Display units (Unit system: Metric – m, m/s – or Imperial – ft / in, ft/s; default metric), and the Web access PIN that protects every non-asset route. Changes apply without an app restart.
- Show experimental features – off by default. Reveals early, still-rough features, each carrying an Experimental indicator: Person Detection (its own tab), RTTrPM Output (Output tab), and lens-distortion overlay correction (Camera form). Turning it off also stops person detection so a hidden feature can't keep running unseen; turning it back on doesn't re-enable it – switch it on again in its own section. Applies live, no restart.
- Network – IPv4 panel: interface picker, method (DHCP / DHCP with manual address / Static), address, subnet prefix, router (optional), three DNS servers. The form opens in View mode with the fields locked against accidental changes; Switch to edit view unlocks them (Edit mode), which then shows Apply, Renew Lease, and Cancel. Also shows lease remaining. On a host whose network adapter is read-only the panel shows a Read only indicator instead – configure from the on-device Settings → Network menu. Same network settings as the on-device Pi Network screen.
- Software Update – shows the installed version, with Check & Install Latest (download the newest release over the internet) and an Offline install for uploading a release package over the LAN. The service restarts onto the new version. See Updating.
- Configuration Transfer – back up or clone a station. Export writes the whole configuration to a
.openfollowsettingsfile; Import reads one back and replaces every setting except the device's network IP. The file is validated before anything is applied, and if an imported setting needs a restart you're offered Restart Now, Apply Without Restart, or Cancel.
Display units change only what the web UI and on-screen overlay show and parse – lengths and speeds across Camera, Grid, Markers, Movement, Trigger Zones, and the Wizard. Stored config and every wire protocol – OSC, PSN, RTTrPM, OTP – stay metric regardless.
This station's controlled and viewer marker selection lives on the Markers & Zones tab under Marker Control & Visibility, alongside the shared catalog editor.
The page also carries a Save & Restart App action button.
Camera & Grid
Where you set up tracking. The big Open Setup Wizard button is the primary entry point – see Camera & Grid Calibration.
Three forms below the wizard launcher for direct edits:
- Video Source – input type and per-protocol fields (RTSP URL, NDI® 1 2 source name, USB camera device + render resolution, etc.).
- Camera – direct edit of position (X/Y/Z), orientation (pitch/yaw/roll), and lens (FOV, sensor, focal length).
- Grid – width, depth, spacing, X/Y/Z offsets, and origin display.
Markers & Zones
- Marker Control & Visibility – shared catalog (ID, name, colour per marker) plus this station's controlled and viewer marker selection. Catalog edits sync to every other OpenFollow on the LAN by multicast. See 3D Markers → Shared catalog.
- Marker Visuals – what the on-screen marker looks like: ball, crosshair, Z Line, ground circle, transparency, Z display. Each marker uses its catalog colour.
- Marker Movement – minimum / maximum / default speed in m/s, and the default position used when you reset a marker.
- Trigger Zones – global zone settings: enabled, eval rate (FPS), debounce, hysteresis, default OSC destination for zone messages.
- Zone Editor – graphical canvas to draw, drag, and configure zone polygons. Click to place vertices, click the first vertex to close, click a zone to select it. See Zone Occupancy Detection.
Input
- Gamepad – global enable, deadzone, Y inversion, response curve, button mapping, and the Button Detection Map wizard. The detected controller name is shown. See Controls → Button detection wizard.
- Keyboard – enable, layout (WASD/IJKL/Numpad), and per-action key assignments (reset, toggle help, toggle zones, speed up/down, settings, next/prev marker).
- Mouse – pointer-driven marker positioning on the live overlay, on the Raspberry Pi and macOS. Off by default; enable here. Left-click a marker's ground circle to take control, right-click to release.
- OSC Input – receive marker writes from external OSC sources (full triple
/marker/<id> x y zor per-axis/marker/<id>/x//y//z). UDP port and IP allowlist live here. - MIDI – assign connected USB MIDI devices to numbered patches (referenced by OSC triggers), configure the eight-fader virtual fader bus (each fader MIDI-driven or unmapped, driving the OSC Output Fader on change trigger and the
[fader]/[fader:N]placeholders), and watch the read-only marker faders. Full reference in Hardware Inputs.
Output
- PSN Output – multicast IP (default
236.10.10.10) and the network interface to bind on multi-NIC hosts (Autoby default; dropdown of detected interfaces). The PSN system name is read-only here – set it under General → Station Settings. - OTP Output – enabled state, port, system number, priority. Multicast group is derived from system number per ANSI E1.59.
- RTTrPM Output – host, port, FPS, context. Experimental; hidden unless Show experimental features is on – confirm your receiver's compatibility before relying on it live.
- OSC Output – list of independent OSC transmitters with per-transmitter destinations, message templates, and triggers (Stream, Hotkey, Controller button, MIDI message, Fader on change). Full reference in OSC Transmitters.
Person Detection Experimental
Optional AI-based person detection that drives zone events without a marker. Model selection (default yolov8n.onnx), engine, inference resolution, confidence threshold, smoothing, and overlay visibility. Behaviour, accuracy, and model defaults may change between releases – don’t rely on it for show-critical paths. The tab is hidden unless Show experimental features is enabled under General → Station Settings. Full guide in Person Detection.
Inline editing patterns
Built-in help
Every section has a built-in help drawer – open it for a plain-language explanation of that section's fields without leaving the page. It works offline, so the help is there on an isolated show network with no internet.
Live preview / live save
Some forms – most prominently Camera & Grid in the wizard – apply changes live as you type. You still need to press Save to make them durable; otherwise leaving the page (or restarting) reverts to the last saved values.
Apply to all stations
The Apply to all stations button broadcasts the current section's settings to every OpenFollow station discovered on the LAN. It appears only on the sections whose state is genuinely fleet-shared – Camera and Grid under Camera & Grid. PSN, Marker, Gamepad, Trigger Zones, Detection, OSC Input, Keyboard, and Mouse intentionally don't carry it: those sections mix per-operator fields with shared ones, and broadcasting them whole would overwrite per-station identity (controller calibration, station name, marker-visual prefs). Device-local fields are stripped before they reach a peer, so an older peer or a template import still lands safely.
Save as template / Load template
Several sections – Camera & Grid, the Zone Editor, and OSC Output transmitters – save their current state as a reusable template with Save as template… and recall it with Load template…. System templates ship with the install; your own sit alongside them.
The template chooser also Exports any template as a single .oftemplate file to copy to another station, and Imports one back in. A template authored by a newer OpenFollow than this build can read is rejected with an explanation, never applied half-way.
Restart vs reload
- Most settings – apply on Save, no restart needed.
- Network port changes (web port, PSN port, OSC port) – the UI prompts for a restart.
- Software Update – installs a newer release and restarts the service onto it.
1. NDI® is a registered trademark of Vizrt NDI AB.
2. OpenFollow does not contain any NDI® code by itself. NDI® requires closed source NDI® Tools / NDI® SDK on the host system that need to be installed separately.