RFutils
In developmentA browser-based RF suite for radio mics: WWB/WSM/PMSE file exchange, live Shure and Sennheiser monitoring with headphone cueing, IM-aware coordination, and device programming.
Software
77 open-source projects, grouped by the part of the job they belong to. Every one of these has a public repo you can read, build and fork. Narrow them by what will run on the machine in front of you, what they load into, and what gear they talk to — then download a build straight from the card, watch the ones that have a video without leaving the page, or try the ones with a live demo in your browser.
A browser-based RF suite for radio mics: WWB/WSM/PMSE file exchange, live Shure and Sennheiser monitoring with headphone cueing, IM-aware coordination, and device programming.
Moves frequency-coordination data between Shure Wireless Workbench and Sennheiser Wireless Systems Manager. Reads and writes both native formats, reverse-engineered from real exports, plus a generic CSV column mapper.
Turns an Ofcom PMSE licence schedule PDF into Shure Wireless Workbench import files — a documented frequency list, a CSV reference sheet, and an experimental native .shw show file.
Discovers and monitors Shure and Sennheiser wireless receivers on the network: AES67 metering, battery and RF status, local headphone cue, and optional Companion-driven Dante routing.
A platform-independent audio cue player for theatre and live events — cues, fades, links, loops and vamps, with a per-cue output routing matrix. Driven by OSC, MIDI, MSC, MMC, Art-Net or sACN.
Measures how loud the room actually is — from a calibrated measurement microphone or an SPL meter's live output — and applies the ISO 226:2003 equal-loudness correction needed to hold the tonal balance the system was tuned for as the show level moves.
Zero-added-latency parametric EQ, dynamic EQ with external sidechain, band-isolated harmonic generation and a compressor, with ballistics-accurate metering and a full preset system.
The software half of a partyline intercom rig: a server that mixes, and endpoints with up to ten keys each. Every key is its own AES67 stream carrying either a partyline bus — minus that endpoint's own voice — or a direct point-to-point path.
A cross-vendor Dante control bridge: preamp gain and phantom control across Behringer/Midas, Allen & Heath and Yamaha, plus radio-mic telemetry from Shure and Sennheiser.
A broadcast-router-style crosspoint for SRT: any number of inputs and outputs, each output live-switchable to one source, added and removed at runtime from a web UI. Pure relay, no transcode. NDI transport included.
One web UI for a fleet of BirdDog Play NDI/SRT decoders: LAN discovery, tag-based grouping, full BirdUI-parity settings per device, and batch edits across a whole group.
One web UI for a fleet of WebLinked instances: tag them into groups, fan any WebLinked command out to a group or the whole fleet over OSC, and watch each instance's real state come back over HTTP. A lighting desk or cue stack can drive the same groups with one OSC message, reusing WebLinked's own verbs so an existing button is retargeted by editing the front of the address.
Renders any web page offscreen through Chromium at a broadcast raster and rate, then sends it to DeckLink and AJA over SDI, to the network as NDI and OMT, and fullscreen to a GPU-attached display — every output taking the same frame. It can run several such pipelines at once, each with its own browser, clock and raster, so a page that hangs on one feed cannot touch the others. The engine clocks the browser one frame at a time rather than letting it paint on its own timer, so 50 ticks a second really is 50 paints. Settings, live diagnostics and an interactive preview are all in the browser, so a rack machine needs nothing but an HTTP port.
Takes a single video input — typically a locked-off wide of a stage — lets you draw any number of regions of interest on it, and sends each region back out of a Blackmagic DeckLink, cropped and scaled to the output raster.
Video scopes arranged around a live ATEM multiview. Waveform, vectorscope, histogram, false colour, zebras and focus peaking on any multiview window — program and preview included — with sources named live from the switcher's own multiviewer config. Desktop app and browser build.
A browser dashboard to monitor and control a fleet of Blackmagic ATEM switchers, styled after the BMD multiviewer. Ships as a desktop tray app too.
Provision a whole fleet of ATEM switchers at once. Model-aware config forms export loadable XML plus a media folder, or apply live over the network — instead of one unit at a time on a flight case at 02:00.
Control for ATEM Mini Pro/Extreme ISO with something the hardware doesn't give you: a software-composited SuperSource/DVE preview, built by capturing the switcher's own multiview over UVC. Touchscreen operator UI plus a Companion module.
A live-events media server built on CasparCG — screens on a canvas, frame-accurate cues, a media library, GDD template forms and a trigger grid, all in a browser. Verified against a real CasparCG 2.5.0.
A luminance keyer for Resolume Arena and Avenue as FFGL, for Resolve, Vegas, Nuke and Natron as OpenFX, and for After Effects and Premiere Pro. macOS universal and Windows x64.
Runs OpenFX plugins — the format DaVinci Resolve uses — inside Resolume Arena and Avenue. Point the app at your OFX folder, choose where the results go, press Start: it writes one FFGL plugin per OFX plugin, each carrying that plugin's real parameters into Resolume's own UI. No compiler needed.
Scaffolds an entire DaVinci Resolve project — theatre and day bins, per-session timelines, imported media and smart-bin recipes — from the same session CSV that drives the file-drop workflow.
Master control for a presentation room: a real-time NDI video matrix router, layered scene compositor, presenter-notes hub, and a Control Surface with a JSON-RPC automation API.
The presentation-laptop half: a bespoke PDF/Keynote/Google Slides engine with dual NDI outputs — Program and Next Slide — driven remotely from the Server.
A minimal PDF-only presenter: Now/Next view with clickable slide thumbnails and a fullscreen output on the second display. Nothing else.
Converts Keynote, PowerPoint, Google Slides and ODP to PDF with a presenter-notes sidecar, so notes survive the conversion. GUI, CLI, server and a Nextcloud app from one codebase.
Drop in a .pptx and find out which fonts it actually uses, which of those are installed on the machine looking at it, and what to do about the rest. The hard part is that a plain search of the file is wrong: every Office theme carries a script-fallback table naming around thirty CJK and Indic fonts whether or not the deck contains a single such character, so three real presentations report 39, 36 and 9 typefaces where the true answers are 2, 4 and 6. Decks also name faces rather than families — "Helvetica Neue Medium", "Poppins Regular", "Times Roman" — which a naive check calls missing when the font is sitting right there. It resolves both before it says anything. Missing fonts that Google Fonts publishes can be fetched, and anything left over goes into a sidecar .zip with per-platform installers. A desktop build installs them outright.
A Nextcloud app for production teams: build a show from a CSV, the browser or a live Google Sheet, and it creates a folder and upload-only drop link per session, emails each presenter, and can create per-theatre accounts scoped to their own folder.
Bitfocus Companion module: route outputs, recall scenes, blackout, send stage notes and drive next/previous slide from a Stream Deck.
Bitfocus Companion module for OSC control of the Presentation Commander client.
Bitfocus Companion module for OSC control of PDF Presenter.
Injects out-of-tree kernel modules into a SquashFS initrd and writes it to bootable removable media. You supply the image and the modules — useful when an installer doesn't know about your NIC or RAID card.
A menu-bar tray launcher shell for the local web-server apps in this fleet. Pick a network interface and port, start and stop the server, open the web UI — without each app building its own.
Dockerfiles, compose files and Unraid Community Applications templates for the self-hostable apps in this fleet — all generated from two JSON files rather than written by hand.
Snapshots every repo an account owns into per-repo JSON committed to git, and renders a password-gated dashboard from it — because GitHub keeps traffic for 14 days and reports stars and downloads only as a running total.
A projector edge-blend calculator that runs entirely in the browser. Flat or cylindrical canvas, any array, and the solver closes the array on the screen exactly — then reports the system resolution, the doubled and quad-covered overlap you pay for twice, the lens needed per position, a PDF report and a Resolume Arena advanced-output file.
A browser tool for designing LED video walls: lay out cabinets, add NovaStar or Brompton processors, wire the ports, and see each port's load and headroom. The capacity model accounts for the power-of-two packing controllers actually use, so it reproduces the manufacturers' published per-port figures rather than overstating them.
An aspect ratio, pixel pitch and display geometry calculator that runs entirely in the browser. Resolution × pixel pitch = physical size, so any two of the three give the third — and it names the ratio the way the trade does, telling you that 3440×1440 is 21:9 rather than 43:18, and that 1366×768 is 0.049% off 16:9 rather than pretending it is exact. It sizes PowerPoint slides on the same arithmetic, working around the 56-inch slide limit and pointing out when the better answer is to leave the deck alone and raise the export DPI.
A real-time audio analyser that runs entirely in a browser tab: an RTA from 1/3 to 1/48 octave, a spectrograph sharing its frequency axis, and a full-height meter with peak, RMS, peak hold and broadband Z/A/C. The transform chain is pinned by tests at every size and window, and the built-in pink noise source is the check that it reads level before you trust it about a room.
A desktop sound level meter and dual-channel analyser: fractional-octave RTA, spectrograph, time-weighted SPL and as many LEQs as you care to define, plus level history charts, CSV logging, a signal generator and transfer function measurement with phase, coherence and delay finding — on a grid of tiles you lay out yourself.
Generates test patterns for every physical output in a show, from the file that already describes the outputs. Import a Resolume advanced output, a Pixel Peeker wall or a Blend Calc array and get one PNG per output at that output's exact raster — or a single composition-sized image with every output's region labelled, which proves the output map is what you think it is.
Builds the labelled source thumbnails an Eventmaster or an RCS2 shows on its multiviewer, for a whole rig at once. Type or paste the source list, give each one an icon, a size and a colour, and download a ZIP with one image per source named after it — plus a manifest matching file to source. Runs entirely in the browser.
An FFGL effect that models the route a picture took to reach a television, rather than the look of one. Universal macOS bundle and Windows DLL.
A variable fisheye and defish warp as an FFGL effect. It re-photographs the picture through a different lens rather than drawing a bulge on top of it, so the Projection control is which lens — and defish exactly undoes fish.
An ASCII art FFGL effect that matches each character cell on how much ink it wants and on where that ink sits, so edges pick up characters that lean the right way instead of being flattened into a brightness ramp.
Waveform, vectorscope, histogram and picture assist as one FFGL effect. Drop it on a layer and it measures what is arriving there — either replacing the picture or sitting over it in a corner.
An FFGL effect that finds the outlines in a clip and lights them like a string of LEDs, running the patterns an LED controller runs — chases, comets, twinkles, fire — over twenty patterns and sixteen palettes.
Retro console video hardware as an FFGL effect: a real machine's raster, palette and attribute cells, plus scroll-register distortion and glitches that corrupt the indices — so nothing a failing machine shows is ever outside its palette.
A libretro frontend that runs inside Resolume as an FFGL generator: point it at a core and a game and the console becomes a layer, with the joypad MIDI-mapped onto whatever controller is already on the desk. Ships as two builds — in-process, and an out-of-process helper that keeps the show up when a core crashes. No cores, BIOS images or games are included.
Three test programs — a moving test card, a controller mapping tester and an overscan display — built from source for as many consoles as have a toolchain in Homebrew. For people who care about the video path rather than emulation accuracy.
Falling columns of characters, as an FFGL source and a matching effect. Reads its own generated code, four public domain books, or any text file you point it at, in any installed font.
Neon synthwave strokes as one FFGL effect with two engines: trace the clip's outlines as glowing tubes that can break away from the real geometry, or generate synthwave paths outright — the perspective grid with the striped sun, tunnels, circuits, skylines, and the routed audio as an oscilloscope.
Eleven Windows 95 and 98 screensavers — Mystify, 3D Pipes, 3D Maze and eight more — rebuilt as an FFGL source and a matching mask effect. Every saver is a pure function of time and a seed, so nothing drifts with the frame rate and the whole thing can be scrubbed and beat-locked.
Primitive shapes moving on deterministic paths, as an FFGL source and a matching mask effect. Eight shapes, five paths, and a phase that can be locked to the host's bar — for quick animated masks and for chroma chases driving a pixel map.
A page of stills, cut into a grid and played as an animation — as an FFGL source and a matching effect for Resolume, and an OpenFX plugin for Resolve. Up to sixty-four copies with a stagger, so one animation travels through the field rather than sixty-four doing the same thing at once.
Snake, Bricks, Marchers, Rally, Drift, Stacker, Chase, Girders, Swarm, Trails, Reflex, Rafters, Duel and Flapper, as an FFGL source and a matching effect for Resolume. Play them from a MIDI pad or an OSC fader, or leave the autopilot to play and lose on its own — and in the effect, the brick field is built out of the clip, so breaking a brick punches a hole through to the layer below.
Turns a venue drawing into a d&b ArrayCalc venue file. An ArrayCalc venue is a few dozen parametric planes; a CAD export of the same theatre is tens of thousands of triangles, so the work is the reduction — weld, merge coplanar regions, recover each outline, and write it back as the quads and triangles ArrayCalc actually accepts. It also reads the drawing on the way in: layers named as dimensions, rigging or services are left out, plane types come off the names, banks of separately modelled seats become the audience plane they stand for, and meshed surfaces are re-cut from their own outlines — a seat-by-seat theatre plan lands as 17 objects instead of 3,710, all of it visible and one click from being put back. Imports DXF, glTF, IFC and the usual mesh formats, and there is a Vectorworks plug-in that skips the intermediate file entirely. No 3D model? Drop a PDF or an image of the plan instead: set the scale, click inside a room to detect its outline, and type a height at each corner — level, raked, raised or sunk. It also writes L-Acoustics Soundvision 3D room data, where a surface is a free polygon so an awkward outline goes across whole. The .dbacv format is undocumented; this reproduces a real export byte for byte and has been round-tripped through ArrayCalc itself until every object came back untouched.
An interface for Waves SuperRack Performer: run the Dugan Automixer across a console's channel direct outs and return the automixed result summed to a single stereo pair, into a group's external input — leaving every insert slot free.
Models a stage and a lighting rig and works out the illuminance on the deck before anyone gets to the venue. Build the rig from truss, bars and stands, focus each fixture at a point on the stage and let it resolve the pan and tilt, then read the levels off a heatmap with the beam cones drawn over it. The part worth having is a single toggle between a horizontal plane and a vertical one: a rig can be perfectly even on the floor and flat and shadowless on faces, because overhead light arrives nearly edge-on to a vertical surface, and flipping between the two inverts the ranking of your fixtures. Every fixture carries a badge saying whether its numbers were measured from an imported IES or EULUMDAT file, transcribed from a named datasheet, or synthesised from an archetype — because a lux figure computed from a guess is worth nothing unless you can tell which is which.
A lightweight lighting visualiser. Drop in an MVR and it reads the rig straight out of it — fixture positions, patch, and the GDTF definitions embedded alongside, so it knows which channel is pan, how wide the beam opens and whether the colour mixes additively or subtractively. Then feed it Art-Net, sACN or DMX off a USB interface and watch the programming in volumetric haze, from anywhere you care to put the camera. Pixel-mapped fixtures work properly: a wall that declares four template channels across a hundred references is resolved to the three hundred it actually occupies, one DMX slot per pixel. The desktop build takes the live input; the hosted build imports and flies the same rig in a browser tab with a built-in demo look, because Art-Net and sACN are UDP and a browser cannot receive it.
Reads the Resolume Advanced Output slice map that drives the real wall, receives Resolume's outputs over NDI, and composites them onto a virtual reconstruction of the rig. Drive that to connected monitors as a stand-in wall, or view it as 3D previz of the set.
Bitfocus Companion module for OSC control of SimpleCue.
Bitfocus Companion module for the srt-router crosspoint.
Bitfocus Companion module for caspar-AV shows.
Bitfocus Companion module for WebLinked.
Bitfocus Companion module for Atem Overseer fleets.
Bitfocus Companion module for flock decoder fleets.
Bitfocus Companion module for Kestrel — drive region-to-output routing from a Stream Deck.
Bitfocus Companion module for RFutils monitoring.
Bitfocus Companion module for animATEM.
Bitfocus Companion module for Analog Way LiveCore and Midra video processors.
A modern control surface for Analog Way Midra and LiveCore series video processors. Its Workspace puts sources, every screen and memories on one window-filling page — build in program, preview or both at once — backed by a graphical layer editor, memories, takes, a multiviewer/confidence-output designer, EDID writer and a full variable inspector.
A reference for the TCP control protocol of Analog Way Midra and LiveCore series video processors — the wire format, the variable model, and the complete variable tables. Documentation only.
A standalone FFGL host with NDI, OMT, Syphon and DeckLink I/O: route a source out of your mixer, through a chain of FFGL plugins on the GPU, and back in.
An OBS Studio plugin that loads any FFGL 2.x bundle and renders it in OBS's own OpenGL context — no network round trip, no second render.
An NDI, OMT, SRT and ST 2110 endpoint in both directions, with screen capture in and SDI, Syphon and shared-surface out — all wired through one crosspoint.
A BirdDog PLAY is an NDI decoder with no way in from outside the room it is sitting in. This builds an installable firmware package that adds one: an SSH key, Tailscale, and an NDI KVM endpoint that turns the keyboard and mouse on the PLAY's USB port into control of whatever machine it is displaying. The surprise is that it needs nothing from you but a public key — the stock updater runs a script from the uploaded archive as root with no signature check, so a valid package is an ordinary gzip'd tar and there is nothing to decrypt. That means no upload, no vendor keys, and the whole thing assembles in the browser: tar, gzip and SHA-256 are native APIs now. The installer is readable bash that refuses to run on the wrong hardware, stays off the recovery path, and cannot reach the kernel or bootloader. Confirmed on a real unit — Tailscale carries 195 Mbps over userspace networking, and the KVM agent drove a Windows machine using only the free NDI SDK.
Nothing matches those filters. and try again.
Discipline is the part of the job a project belongs to, and a project can sit in more than one. Runs on is counted from the release builds that actually exist, so a project claims Linux only where a Linux artefact was cut — anything that lives inside another application has no platform of its own and appears under Plugs into instead. Talks to is the gear and the wire protocols at the far end. Chips within a row are or-ed together and rows are and-ed, so macOS or Windows, and Blackmagic is one question you can ask. Hide is the one that subtracts: there is a Companion module for most of the apps here, and turning it on takes all 13 of them out so what is left is the applications themselves.
Effects, generators and plugins that run inside somebody else's host.
DMX, Art-Net and sACN distribution.
Radio mic coordination, monitoring and licensing.
OSC, MIDI, MSC and Companion integration.