Releases: openfollowapp/openfollow
Release list
OpenFollow 0.4.0
With this release, we introduce three major features and a set of improvements to OpenFollow. This includes 3D mouse control, a Media Gallery for the built-in video source, and shareable configuration templates. OpenFollow now also keeps its clock and software current on its own, ships packaged for x86_64 Linux alongside the Raspberry Pi, and tracks performers more reliably.
Features
3D mouse (6DOF) control.
OpenFollow now supports 3Dconnexion SpaceMouse / SpaceNavigator devices as a first-class input. All six axes of the puck are available and each one maps independently to a target, moving the selected marker along X, Y, or Z, nudging its speed, or driving a fader, each with its own sensitivity, dead-zone, and invert. The device buttons bind to marker actions such as next/previous marker or reset, and multiple 3D mice are enumerated like gamepads so several operators can each drive their own marker. It is off by default, applied live with no restart.
To use it, plug in the device, open the Controls settings, enable the 3D mouse, and assign its axes and buttons.
Media Gallery video source.
The default video source is now a Media Gallery instead of a plain test pattern. You can play a still image, a looping video clip, or one of the bundled backgrounds (a stage layout or a neutral grey as in previous versions). Upload your own images and clips from any browser, or capture a still frame straight from a live camera feed into the gallery. The selected media is device-local: it stays on the machine you set it on and never travels with a config export or import, so a shared config can't overwrite what a station is showing.
To use it, open the Video Source settings, pick or upload media in the gallery, and select it.
Shareable configuration templates.
Any saved template, whether OSC bindings, a camera-and-grid calibration, or a set of trigger zones, can now be exported to a single .oftemplate file and imported on another station, so you can build a setup once and copy it across a rig. Export is a per-row action in the template chooser and Import sits in the same dialog; every kind of template moves through the same file, so the flow is identical whether you are sharing an OSC cue or a whole zone layout. Each file records the build that authored it, and an import from a newer OpenFollow is checked for compatibility and rejected with a clear explanation if this build can't read it, rather than failing with a cryptic error.
To use it, open a template chooser, use Export on a row to download the file, and Import to bring one in.
Enhancements
x86_64 (amd64) builds.
Release builds now also ship an x86_64 (amd64) .deb and signed update bundle alongside the Raspberry Pi arm64 ones, so OpenFollow installs and self-updates the same way on a standard Intel or AMD Linux machine as it does on a Pi.
Automatic clock and update sync.
Because a Raspberry Pi has no battery-backed clock, OpenFollow now sets its time from a network time server on startup and whenever its IP changes, and checks the project's releases for a newer build at the same time, surfacing an update banner when one is available. Both are on by default, can be turned off in config, and fail silently on a show network with no internet, so neither blocks startup or the render path.
Person detection is more robust and ships ready to run.
Person tracking now holds a performer's identity more reliably through brief occlusions and lighting changes. The detection backend is also bundled in the Raspberry Pi .deb, so tracking works out of the box on an offline show network with no extra install; only the optional model-export tooling, which needs an internet connection, stays opt-in.
Bug fixes
- Fixed the "No Signal" banner lingering on the overlay after a video source had reconnected.
- Fixed per-marker move speeds being reset when saving an unrelated section in the web UI.
- Improved the installer's error reporting so clock-skew and stale package-index failures name their actual cause.
Full Changelog: v0.3.1...v0.4.0
Contributors: @Pahegi @michelhonold
OpenFollow 0.3.1
With this release, we introduce new features and make improvements to OpenFollow. This includes reusable OSC connection profiles and multi-marker OSC transmitters. Mouse control is now out of experimental.
Features
Shared OSC destinations.
You can now define a named OSC destination once (name, host, port, protocol, and framing) and reference it from any number of transmitters and trigger zones instead of re-typing the connection on every row. Change a destination's host and every reference follows immediately, with no restart, so repointing a whole show at a different console or a changed network is a single edit.
To use it, create your destinations in the Output settings, then pick one by name on each OSC transmitter and trigger zone. A blank or dangling reference safely sends nothing. Destinations travel with config export/import.
Multi-marker OSC transmitters.
A single OSC transmitter can now reference more than one marker. The "Default markers" field takes a comma-separated list where each entry is a marker id (1, 2, …), a controller alias (c1, c2, …), or all, and the row sends its message once per resolved marker, each against its own position. Use all to follow every marker this station controls (re-evaluated live as that set changes), or c2 to follow whatever marker controller 2 currently drives.
Mouse input is now a standard feature.
Mouse marker control has left experimental. Left-click a marker's ground circle to take control, move the pointer to steer, right-click to release, and double right-click to reset the marker to its default position.
Enhancements
Setup Wizard: vertical field of view in the Camera Position step.
The Camera Position illustration now draws the camera's full ground footprint, the view frustum intersected with the stage floor, as a shaded quad rather than only a horizontal width line, and the readout shows both axes (FOV NN°H · NN°V).
Station list tracks IP changes live.
When a station's IP changes at runtime, for example switching an interface from static to DHCP, the "Server Network" self-row now follows the new address within a few seconds instead of showing the stale boot-time IP until a restart.
Bug fixes
- Fixed an issue where marker renames and colour edits were reverted by another station whose clock was ahead.
- Fixed wrong and misleading labels in the Setup Wizard.
- Fixed some Raspberry Pi 5 units dropping to an initramfs rescue shell on the appliance image; root and boot are now referenced by filesystem UUID.
- Fixed an issue where an IP address change could cause the web UI to become unreachable.
Experimental
Behind the experimental-features toggle.
Bow the overlay to match a fisheye or wide-angle lens.
Wide-angle and fisheye lenses bow straight lines, but the HUD draws straight, so the overlay grid and the video drift apart at the edges. Two sliders (k1, k2) on the camera form now bow the rendered overlay to match the lens, while the video itself is not re-warped (so it stays light on a Pi) and mouse and AI placement stay aligned. Enable experimental features, then adjust k1/k2 until the grid matches the lens; both default to 0.
Detection: default bounding-box colour is now grey.
The default person-detection box colour is now neutral grey instead of green, so it no longer reads as an "active/good" status or clashes with marker colours.
Full Changelog: v0.3.0...v0.3.1
Contributors: @Pahegi @michelhonold
OpenFollow 0.3.1 RC3
Prerelease of 0.3.1 for testing.
Headline change since RC2: Enhanced mouse input (#10)
- Grab-by-ground-circle control – left-click a marker's ground circle to take control, right-click to release; double right-click resets the marker to its default position.
- macOS support – mouse input now works on macOS via per-frame GDK pointer polling (previously dead there).
- Steering refinements – pixel hysteresis deadband, smoothing (per-frame EMA glide), an upstage Y+ cap, and configurable scroll-wheel height control.
- Lens-distortion aware – clicks are undistorted before unprojection and the grab hit-test follows the bowed ground circle, so the clickable region matches what is drawn.
Review fixes folded in
- Scroll wheel keeps working on discrete-only devices (no smooth-scroll deltas) without double-counting notches.
- The double-right-click reset can no longer fire across two separate grab/release cycles.
- The per-frame mouse-glide and pointer-poll error logs are rate-limited.
The installable .deb / .ofupdate bundle and the Pi 5 / CM5 OS images are attached automatically once the release build finishes.
OpenFollow 0.3.0
First public release of OpenFollow.
Turns a live video feed into PSN / OTP / OSC / RTTrPM show-control data: drive PosiStageNet markers from a gamepad, or use on-device AI person detection to follow performers and fire zone-based OSC. Configured from a browser; runs on a Raspberry Pi.
Install
- Flash an appliance image:
openfollow-pi5_0.3.0.img.xz(Pi 5) oropenfollow-cm5_0.3.0.img.xz(CM5). - Or install
openfollow_0.3.0_arm64.debon Raspberry Pi OS (Trixie, arm64).
See the README for setup. Assets attach automatically once the build completes.