OpenFollow Preview

Manual / Operating

On-Screen UI

The on-stage / kiosk display rendered over the live camera feed – distinct from the web configuration UI. Read this before Following a Performer.

Screenshot: full operator display with live video, grid, marker, and status overlay visible.

The basic layout

The screen shows the live camera image full-bleed, with everything else drawn on top as semi-transparent overlays. Nothing covers the picture entirely – you should always be able to see the stage through whatever overlay is active.

Three groups of overlays:

  • Persistent – the grid and the marker(s). Always visible during normal operation.
  • Toggleable – the help legend and the zone overlay. Turn on with a key/button when you need them, off when you don’t.
  • Status – small indicators for camera connection, current speed, current marker, and similar. Stay out of the way until something needs your attention.

A console or show-control system can also push operator messages – short text cards (typically the next cue) – onto the screen over OSC.

The marker

The operator drives the marker in 2D: the stick moves a ground position across the stage plane in X / Y. The ball and crosshair are drawn above that point, at a distance set with the Z control. Z holds whatever it is set to until it is changed.

The marker’s visual style is fully configurable in Markers & Zones → Marker Visuals; the parts visible by default are:

Ball

A semi-transparent sphere at the marker’s 3D position: the ground position, raised by Z. Sized in metres (default 0.15 m), so it scales with perspective like a real object on stage. The ball is what most operators visually track when following.

Crosshair

A small 2D cross pinned to the marker’s screen position, the same point as the ball. The crosshair is the precise pointer – useful for centering exactly on a target. It’s configurable in size, thickness, and colour.

Z Line

The line between the ground position and the ball. It draws the Z value you’ve set: longer as you raise the marker, absent at Z 0.

Ground circle

A circle on the stage plane at the ground position, the point you’re steering. The circle can be filled or outlined.

Z display

The current Z value shown numerically near the marker. Configurable to show either absolute Z (world coordinates) or Z relative to the stage plane – most operators prefer relative.

Multiple markers

If this station controls or views more than one marker, every marker is drawn at once in its catalog colour (see 3D Markers → Shared catalog). The marker the operator is currently driving (the active marker) is highlighted differently – typically a brighter ring or a label – so you can tell which one your stick movement applies to.

Viewer-only markers (shown but not controlled on this station) render at reduced alpha and the marker card omits the speed bar; speed text stays.

Switch active markers with the configured next/prev keys / buttons (see Gamepad, Keyboard & OSC). With two or more gamepads connected, D-Pad next/prev is suppressed – each pad is pinned to a single marker.

The grid

A faint rectangular grid drawn on the stage plane, matching the rectangle you defined during calibration. Two purposes:

  • Sanity check. The grid lines should sit visually flush with whatever is actually on the floor. If the grid drifts (the lines walk away from a known reference like a stage edge), calibration has shifted and you should recalibrate.
  • Spatial cue. Operators tracking position-driven effects (spatial audio panning, moving-light follow) often glance at the grid to feel where the marker is in stage coordinates without doing the math.

Grid spacing is configurable. The grid origin can show coordinate axes (X / Y / Z arrows) at the Reference Point – handy during commissioning, usually turned off for show.

The zone overlay

Toggle on/off with the Toggle Zones key (default Z on keyboard, B on the gamepad). When on, every defined zone is drawn as a coloured polygon on the stage plane with its name. Currently-occupied zones are highlighted brighter than empty ones.

Useful while programming or rehearsing zone-driven cues. Leave it off in show.

The help overlay

Toggle with the Toggle Help key (default H on keyboard, Y on the gamepad). Shows the active key / button bindings. Press again to dismiss.

Settings menu

The on-device recovery surface. Opens via the Settings menu key / button (default BACK on the gamepad, unbound on the keyboard until you assign one) or auto-opens with a banner when the app needs the operator's attention.

Screenshot: Settings menu open over the live video, showing the IP / Video Source info card, the red error box with a banner, and the menu items.

Auto-open triggers

  • Ambiguous network interface at startup. Fires only on a multi-homed host where the pinned PSN source interface can't be resolved unambiguously. A single-homed host auto-detects a working interface and keeps running.
  • Video receiver hasn't connected within 5 s of startup. Banner names the configured source type.
  • Video disconnects during a show. Edge-triggered on the connected → not connected transition. Banner names the source and the failure reason. Once dismissed, the menu won't re-steal focus until the next fresh disconnect.

The bottom-left IP / Video Source panel turns red while a banner is set, so operators spot the failure even with the menu closed.

Menu items

ItemAction
NetworkOpens the Pi Network screen – interface picker, IPv4 method (DHCP / DHCP with manual address / Static), address / subnet / router (optional) / DNS, Apply Changes, Renew Lease. The interface picker doubles as the OpenFollow listener-bind interface; confirming a new selection rebinds PSN to the new interface in place – no service restart.
Change Video SourceOpens the source-type picker list with all installed video plugins (NDI® 1 2 / RTSP / SRT / RTP / USB Camera / Pi Camera / Media Gallery / …). Confirming a type live-applies it. If the new plugin's primary field needs an operator value, the picker auto-chains into the URL editor (for a stream URL / host / NDI source name) or the field-choice picker (for a choice field like RTP's Encoding).
Open Web UIMounts the web UI fullscreen on the HDMI output via an embedded WebKit browser. Esc on a keyboard or B on the gamepad closes the overlay. Requires the WebKit2 typelib – see Installation. While the overlay is up, the operator login / index pages render a footer hint with the gamepad close binding (only on loopback requests, so remote operators don't see it).

Pi Network screen

Single screen covering the Pi's IPv4 stack and the OpenFollow listener-bind iface. Sectioned as Interface, IPv4, DNS Servers, Actions.

  • Interface – Selected. Opens a picker over every up, non-loopback interface the adapter reports. Confirming selects the iface for both the IPv4 fields below and the OpenFollow PSN binding.
  • IPv4 – Configure. Method picker: DHCP (read-only address/subnet/router/lease from the lease), DHCP with manual address (operator-set address; subnet and router come from the lease), Static (address and subnet editable; router optional).
  • IPv4 – Address fields. Editable rows depend on method. Subnet is entered as a prefix length (e.g. 24) and displayed alongside the dotted mask.
  • DNS Servers. Three slots. Editable under Static and DHCP with manual address; read-only under DHCP.
  • Actions – Apply Changes. Validates first (well-formed IPs, prefix in range; a router is optional but, when set, must sit inside the subnet) and writes via the active network method; the row label shows Working… while the apply runs. On failure a banner names the validation or network error and nothing is committed.
  • Actions – Renew Lease. Shown only for DHCP-based methods. Asks the system to re-request a lease for the selected iface.

Field rows route into a single-line text editor sub-screen (same keymap as the URL editor). The method row opens a small list picker. Esc/B from either sub-screen returns to the Pi Network screen.

The network method is auto-detected per host. On a host where neither supported method is writable, the screen still renders the current state but Apply Changes / Renew Lease surface a "backend not writable" banner instead of committing. See Networking → Pi network configuration for the config / env override.

Source-type picker

Lists every video plugin the registry advertises as available. Up/Down (or D-Pad) to highlight, Enter/A to confirm, Esc/B to cancel. Confirming the currently-active type skips the redundant swap cycle but still routes to the next step (URL editor if the plugin has a string field to edit) – this is the “I just want to edit my RTSP URL” / “pick a different NDI® source” flow.

On swap failure (e.g. RTSP picked with an empty URL), the prior type rolls back and the operator lands back on the Settings menu with a banner explaining what went wrong.

URL editor

On-device text editor for the active plugin's primary URL / host. Reached from Change Video Source when the new plugin's URL is empty, or directly via the auto-chain after a same-type confirm.

  • Type the URL on the connected keyboard – ASCII letters, digits, and common URL punctuation (:, /, ., -, _, @) are accepted. Backspace deletes one character. Enter applies, Esc cancels.
  • What you type is applied to the active source: the stream URL for RTSP and RTP, the host for SRT, and the NDI® source name for NDI®.
  • Apply takes effect live. On a still-broken URL the source type rolls back and the menu shows a banner naming the failure.
  • Cancel on the auto-chain path restores the prior source type so no partial state is left behind.

Field-choice picker

On-device dialog for option-list plugin settings – for example RTP's Encoding field (H264 / H265 / MP2T). Up/Down (or D-Pad) to highlight, Enter/A to confirm, Esc/B to cancel. Reached either directly from a plugin's settings or by auto-chain after a source-type confirm when the new plugin's primary field is a choice field. Apply takes effect live.

Esc / Back semantics

Inside any sub-screen (source-type picker, URL editor, field-choice picker, iface picker, Pi Network screen / method picker / field editor, embedded browser), Esc/B re-opens the parent (Pi Network sub-screens go back to Pi Network; everything else goes to the Settings menu). The Settings menu itself is the top of the stack – Esc there closes it and returns to the live overlay.

Status indicators

Persistent panels around the edge of the screen:

  • Top-right – system stats. CPU and RAM percent, plus temperature on the Pi.
  • Bottom-left – Station, IP, and Video Source. The station name (e.g. OpenFollow brave-otter), the Pi's IP address, and the configured video input.
  • Bottom-right – marker cards. One card per controlled / viewer marker. Each shows a green online dot (red when the marker is stale), the marker's catalog name (e.g. "House Left"), current X / Y / Z position, speed in m/s, and a horizontal speed bar. The card border is drawn in the marker's catalog colour. A top-left C0/C1 indicator mirrors the dot when a gamepad is bound to the marker (suffixed and muted on disconnect). The card the operator is currently driving has a thicker border.
  • Disconnect surface. When the video stream disconnects, the Settings menu auto-opens with a red error box naming the source and the failure reason, and the bottom-left panel turns red.

Connected pads with no marker route appear under Unbound controllers in the Settings menu's info card. Pad assignment is implicit – plug order against this station's controlled-marker list.

What the screen does NOT show

A few things deliberately stay off the operator display:

  • The web UI. Configuration stays in the browser, off the operator monitor.
  • OSC traffic / send counters. Diagnostics live in the web UI. The operator screen is for tracking, not telemetry.

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.