Platform

A Unified Operational Layer for Broadcast Production.

OnAirRender Studio is being developed to connect studio infrastructure, operational logic and production workflows within one extensible environment.

Available

Operational View

The Operational View is a node graph of the production's logical objects: sources, destinations and virtual devices. Ports carry meaning (video, audio, control), and every connection is a directed statement of intent. OnAirRender decides how each connection is fulfilled with the hardware assigned to the workstation.

  • Virtual devices: switcher, video mixer, multiviewer, monoscope, browser, graphics, players, recorders, relay bank, timer, data source and control panel
  • Directed video, audio and control connections between ports
  • Device control from node bodies: switching, transport, recording
  • Script binding: a Lua I/O alias is bound to a specific port, and declaration and script skeletons can be generated from the graph
Operational View canvas: sources such as a monoscope, an OnAirGraph graphics node, players, a VTR and a network feed connected to a production switcher, a multiviewer, a vectorscope, a virtual monitor and a video recorder. Some connections carry a red NO PATH marker. Open full-size image
An Operational View graph from the current development build. A red NO PATH marker shows a connection that the hardware assigned to this workstation cannot deliver yet; the destination node explains what is missing.
Operational View nodes: a virtual switcher with picture and sound sources and audio-follow-video, a virtual monitor showing the programme output, and a video recorder recording colour bars. Open full-size image
Node renders from the current development build: virtual switcher, virtual monitor and video recorder.
Available

Physical View

The Physical View documents what is installed and how it is connected: devices, their connectors, the rooms they are in and the signal paths between them.

Physical View: devices grouped by room and function, including a NAS, a control room with video mixing, audio mixing, playout and controllers, an IT section with network switches and a PLC group, joined by colour-coded cable, IP video, LAN and USB connections. Open full-size image
Physical View of a test installation from the current development build. Rooms come from the facility floor plan, and each connection type has its own colour.

Assisted discovery

Devices are detected on the network and on the workstation's PCIe and USB buses. New devices are listed for the operator to confirm before they join the map.

Connections and inference

Network links are inferred from switch data and shown as inferred. Video and audio cabling is documented by the user; it is not detected automatically.

Facility layout

A simple floor plan of rooms and labels. Devices refer to rooms, so the map stays organised as the installation grows.

In Development

Resources

Hardware capabilities become shared, reusable resources that operational objects can use.

Hardware configuration
Each workstation maps logical aliases to physical connectors: a DeckLink port or a desktop display. Available
Resource catalogue
Capabilities of discovered hardware feed the creation of operational objects. Available
Automatic allocation
Assigning a free input and a router crosspoint to an external source has just been implemented and is being validated. In Development

Automation and scripting

Repeatable Behaviour, Defined Once.

OnAirRender embeds a Lua 5.4 runtime with a namespaced API that reaches every function of the platform, so any production task can be solved in script. A project declares the inputs and outputs it needs; each workstation fulfils the declaration from its own hardware configuration.

main.luaIO.declare: reference example
IO.declare {
    version = 1,
    inputs = {
        { alias = "Camera 1", kind = "video", audio = { "C1-L", "C1-R" } },
    },
    outputs = {
        { alias = "PGM", kind = "video", mode = "4k25" },
    },
}
Streams and layersreference examples
STREAM.route("Program", "PGM")
STREAM.route("Preview", "PGM")
LAYER.text("PGM", "clock", "12:34:56", 1600, 80, 64, "#ffffff", 1.0)

Examples are taken unchanged from the application's built-in Lua API reference.

Lua API Available

Functions grouped by domain, including IO, STREAM, LAYER, TIMER, DATA and NODE, with an interactive console for the running script. The Build menu checks every Lua file of the project with the Lua compiler and lists the errors.

Event-driven control Available

Timers, sensor thresholds and control-surface actions trigger behaviour in the running project.

Show control without scripting In Development

Running a complete programme from the Operational View alone, using actions, timers and panels instead of code.

Operator interface

Design the Screen the Operator Works With.

Every project can carry its own operator interface. It is drawn in the built-in UI designer, saved with the project as main.ui, and comes to life when the project runs.

The operator UI designer of OnAirRender Studio: a live control layout with a four-source multiview, preview and program monitors, a rundown list, playout transport and live switching buttons on the canvas, the control toolbox on the left, alignment tools above, the project tree and the Properties panel of the selected camera monitor on the right. Open full-size image
A live control screen in the operator UI designer of the current development build. The selected camera monitor's appearance and events are set in the Properties panel.

Visual designer Available

Buttons, labels, checkboxes, switches, dropdowns, lists, inputs, tabs, groups, images, lines and rectangles, placed with snapping and alignment tools and set up in a properties panel.

Live monitors Available

Screen controls show live video: any render stream of the project can be routed to them, so preview, program and source monitors sit right next to the buttons that drive them.

Driven by Lua Available

Control events call the project's Lua handlers, and the script can change any control at run time: labels, items, visibility, position or style.

Displayed texts can carry live values such as the time, the date, system load or a script variable, refreshed while the project runs.

Rendering and video workflows

Video, Graphics and Outputs in One Engine.

The real-time engine composes render streams from layers and routes them to physical and preview outputs. Device I/O runs in separate worker processes.

Video I/O Available

SDI capture and playout through DeckLink cards and NDI reception, with held outputs that show an idle slate.

Switching Available

A virtual switcher with cut, mix, T-bar, downstream key and audio-follow-video. Wipe and DVE transitions are not part of it.

Output management Available

Streams routed to SDI outputs, desktop displays and preview monitors, with a multiviewer and test patterns.

Production graphics Available

Text, image, video and OnAirGraph layers composed with transparency over video. Graphics are designed in OnAirGraph.

Recording and playback Available

Software recorders and HyperDeck control coordinated with the rest of the production.

GPU compositing In Development

An optional GPU compositing path that hands frames to the output workers as shared textures.

Device windows

Device setup where the device lives.

Connected devices open their own windows from the model. For an audio console, the routing window shows which inputs each channel listens to, what the card mode carries, and which changes are pending before they are applied.

Writing routing changes to a physical console is still being validated; the image shows simulated console data.

Audio routing window for a Behringer X32 console: USB card mode, input blocks and the input assignment of 32 fader strips, with two pending changes. Open full-size image
Audio routing window for an X32 console, rendered from the current build with simulated console data.

Technical foundation

Engineered as Native Desktop Software.

Language
C++20
Framework
Qt 6
Platform
Windows (Direct3D 11)
Architecture
Main application with supervised worker processes for device I/O, connected by shared-memory frame buffers
Hardware access
Native vendor SDKs and documented device protocols
Scripting
Embedded Lua 5.4
Updates
Signed update manifest with per-file integrity checks; installation is always the user's decision
Status
Active development

See How Your Equipment Fits In.

Check the verified status of each device family, or talk to us about a specific installation.