b3LAB – PortalOFX+

OFX plugin suite that speaks Syphon, NDI, and OMT — receive on IN-plugins, send on OUT-plugins, parallel across all three transports. Route live signals in and out of DaVinci Resolve, Fusion Studio, and Assimilate Scratch / LiveFX. macOS + Windows.

▸ More about PortalOFX+

Three separate .ofx.bundle packages with distinct plugin IDs — they all coexist in the same OFX-host. Pro: 4 plugins (Syphon/Spout IN/OUT, NDI IN/OUT). OMT-Bundle (separate): 2 plugins (OMT IN/OUT, beta). Lite (free): 2 receive-only plugins, distinct IDs — installable alongside Pro without conflict. Any number of plugin instances run in parallel (InstanceSafe + SingleInstance=0). Pipe results to TouchDesigner, MadMapper, OBS, VDMX, b3WebCam+ (system-wide virtual camera for Zoom / Teams), or any NDI/Spout/OMT receiver. License: 3-level waterfall (cert-pinned VPS → Gumroad → HMAC-cache), 72h offline grace, HWID-bound, 1 active install at a time. One license activates on macOS or Windows.

macOS + Windows Syphon · NDI in/out (Pro) OMT in/out (beta · separate bundle) DaVinci Resolve · Fusion · Scratch Lip-Sync (NDI/OMT, opt-in 0–15 frames) Lite tier · free

What PortalOFX+ does

Six plugins, one license — Syphon/Spout IN/OUT, NDI IN/OUT, OMT IN/OUT (beta), plus NDI Audio Out.

SYPHON IN + OUT

Native shared texture pipeline

Two plugins — SYPHON IN and SYPHON OUT (macOS) · SPOUT IN and SPOUT OUT (Windows). Receive Syphon/Spout frames from any compatible server (TouchDesigner, Resolume, MadMapper, VDMX, custom apps), and send Resolve or Scratch clip output back out as a Syphon/Spout server. Embedded Metal-backed Syphon (macOS) and DirectX-backed Spout 2 (Windows), minimal latency, no frame export.

▸ Show all features
  • Explicit Start Syphon OUT / Stop / Apply Name & Restart Stream buttons — no auto-start on plugin drop
  • Live source discovery with Refresh Sources button + per-source UUID-stable reconnect
  • Reconnect Input button + Fallback Mode (Freeze · Black · Testcard) when source disappears
  • Auto-name format b3LAB PortalOFX+ — <Host> — <ShortID> or fully manual stream names
  • Only Publish When Clients Attached toggle — saves GPU/CPU when no client is listening
  • Syphon and NDI active in parallel within the same session
  • Custom Watermark (Pro) — CoreGraphics-rendered overlay, applied to all OUT plugins (Syphon/NDI/OMT)
  • Use Alpha — opaque-force on Syphon · BGRA/BGRX on NDI/OMT (BGRX strips alpha, ~25% less bandwidth via SIMD/vImage)
NDI IN + OUT NDI® compatible

Network-based bidirectional NDI

Two plugins — NDI IN and NDI OUT. Receive NDI streams from any source on your local network and publish DaVinci Resolve or Resolve Studio or Assimilate Scratch clips as NDI sources. NDI 5/6 SDK, lazy-loaded — the host runs even if the runtime is missing.

▸ Show all features
  • Source discovery with Refresh + Auto-Connect on Load (preferred source reconnects on plugin instantiation)
  • Embed Resolve Timecode in NDI frames — frame-accurate timeline TC instead of wall-clock synthesize (default on)
  • Colorspace TagAuto · Rec.709 · Rec.2020 · Display P3 · Linear — embedded as per-frame NDI metadata
  • Async-safe ping-pong send buffer — no torn frames on slow networks
  • Custom stream names per output, identical lifecycle as Syphon (Start / Stop / Apply Restart)
  • Scratch-compatible BGRX FourCC — no white-image alpha bug in Assimilate Scratch
  • NDI Audio Out (since v1.1.0, macOS) — Resolve audio merged into the same NDI stream; CoreAudio source picker, stereo 2-channel
  • Built-in Lip-Sync — Output-Delay 0–15 frames (frame-quantised via FrameDelayBuffer) + A/V-Offset ±500 ms (sub-frame, ms-accurate). Default OFF. Solves the classic NDI audio-drift problem without a sidecar app or external hardware.
  • NDI® technology by Vizrt — ndi.video
OMT IN + OUT beta

Open Media Transport — royalty-free streaming

Two plugins — OMT IN and OMT OUT (macOS + Windows, beta). Open Media Transport is an open-source NDI-alternative protocol with a similar low-latency wire format and zero licensing cost. Same workflow as NDI: source picker, lifecycle buttons, broadcast-grade tagging. Use OMT when you want a royalty-free NDI-equivalent path, or when your receiver/sender already supports OMT.

▸ Show all features
  • Same explicit lifecycle as NDI — Start Output / Stop / Apply Name & Restart Stream
  • Source discovery on the local network, parallel to Syphon/Spout/NDI in the same session
  • Identical broadcast-tagging path (timecode + colorspace metadata)
  • OMT-OUT Lip-Sync (since v2026-06-13) + Audio via CoreAudio-Tap (since v1.7.4) — full A/V parity with NDI-OUT
  • Encode-Quality Choice (Default/Low/Medium/High) — runtime-switchable, restarts sender on change
  • OMT-IN Suggested Quality — runtime hint via omt_receive_setsuggestedquality
  • Note: OMT Colorspace-Tag is UI-only (param exists, not wired to render path). OMT Timecode intentionally not implemented.
  • Receivers: vMix, Vizrt + b3LAB ecosystem
BROADCAST & PRO

Broadcast-grade timing, telemetry & lightweight license

Frame-accurate sync, live health telemetry, broadcast metadata, and an enterprise-grade license that unlocks all six plugins. Built for production: signed + notarized on macOS · signed installer on Windows. One license activates on macOS or Windows — and keeps working on planes, in studios with no internet, on isolated production networks.

▸ Show all features
  • Output SyncFrame Delay 0–200 frames + Fine Delay 0–1000 ms for sub-frame AV-sync with external sources
  • Health Metrics — live Frames Sent, Frames Dropped, Bandwidth (Mbit/s rolling), Clients Attached per output, updated every 30 frames
  • Broadcast Tagging — Resolve-Timeline timecode embedded in NDI · colorspace metadata (Rec.709 / Rec.2020 / P3 / Linear)
  • Lifecycle State Machine — explicit Off / Ready / Starting / Running (with or without clients) / Restart Required / Receiving / Error states surfaced in the UI
  • Stream Name Draft vs Active — rename never live-mutates a running server; an explicit Apply Name & Restart Stream tears down and rebuilds cleanly
  • Publish Changed Frames Only — hash-gated publishing skips identical frames (saves bandwidth on static slates)
  • Source-Loss Fallback — Freeze / Black / Testcard for IN plugins when the upstream source disappears
  • Lightweight license: 3-level verification (cert-pinned VPS · Gumroad API · HMAC-signed local cache) · 72h offline grace · HWID-bound (sha256 of platform serial + UUID) · 1 active install at a time (device-switch on demand) · anti-tamper + anti-debug hardened
  • One license key unlocks all 6 plugins · per-plugin custom stream names · macOS: Universal Binary (Apple Silicon + Intel) · Windows: x64 (PortalOFX-WIN.zip)
  • Pairs with b3WebCam+ (LiveStack): color-graded Resolve output → NDI → b3WebCam+ system-wide virtual camera in Zoom / Teams / FaceTime / Safari / OBS — no Decklink, no second machine

Supported Hosts

Host A

DaVinci Resolve / Resolve Studio

Studio version required. OFX plugins do not render in the free version.

Host B

Fusion Studio

Standalone Fusion node-based compositor. Full Syphon/Spout/NDI/OMT support.

Host C

Assimilate Scratch / LiveFX

Full Syphon and NDI ingest in live and finishing workflows.

Host D · Mac EA

Nuke Studio 17

Tested in early access on macOS. Windows compatibility not yet validated.

Host E · Mac EA

Autodesk Flame

Tested in early access on macOS. Windows compatibility not yet validated.

Requires DaVinci Resolve 19+ (free) or Resolve Studio, Fusion Studio, or Assimilate Scratch 9.x+. PortalOFX+ loads in both the free and paid Resolve editions. Always verify your Resolve and OS version against compatibility notes before purchase. Currently supported: macOS 15 (Sequoia 15.7.4) · Windows 10 / 11 x64. Nuke Studio 17 and Flame: Mac early-access only. One license activates on macOS or Windows. Specific Resolve version matrix in documentation.

Get PortalOFX+

All licenses include the plugin binary, setup documentation, and email support within the defined scope. Purchases delivered via Gumroad.

Lite

€0

Receive-only OFX edition — pull Syphon and NDI into Resolve as a regular clip

What's included

  • Syphon-IN [Lite] — any local Syphon server (Resolume, MadMapper, TouchDesigner, OBS, Notch, Modul8, …) · Mac GPU-direct
  • NDI-IN [Lite] — any source on the local network (video only, automatic discovery)
  • Resolve Color page → Effects Library → OpenFX → b3LAB
  • macOS 12.4+ · Universal Binary (Intel + Apple Silicon)
  • No license, no activation, no telemetry · runs fully offline

Not included in Lite

  • Syphon-OUT · NDI-OUT (sending is Pro)
  • OMT in / out (both directions)
  • NDI Audio receive · Lip-Sync (A/V offset compensation)
  • Use-Alpha (BGRA/BGRX) · H/V-Flip · Embed-Timecode · Color-Space tagging
  • Windows / Spout build
  • Notarized + Hardened Runtime · priority support

Free / pay-what-you-want via Gumroad. Community-supported (no SLA). Coexists with Pro — distinct plugin IDs, install both side-by-side without conflict.

Get PortalOFX+ Lite →
Not sure? Review the compatibility notes and known limits before purchase. Refunds are considered for non-delivery and clearly documented failures in supported environments — not for unsupported setups or change of mind. See Legal for full policy.

★ Known stable path

Solo-studio Early Access · coded for max compatibility on the host matrix below · feedback welcome → [email protected]

  • OS / hardware: macOS 15.x (Sequoia 15.7.4) on Apple Silicon · Windows 10/11 x64
  • Tested with: DaVinci Resolve 19+ (free) and Resolve Studio · Fusion Studio · Assimilate Scratch / LiveFX 9.x+
  • Recommended first workflow: Resolume / TouchDesigner publishes Syphon → PortalOFX+ Syphon-IN on a Resolve color node → grade live, send back out as NDI
  • Top 3 limits: OFX host must be running · 1 license = 1 active install (macOS or Windows, device-switch on demand) · IN-plugins are video-only (no audio receive)

What this is not.

Every b3LAB tool has a clear scope. Knowing the limits is part of the tool.

▸ Show all known limits
  • Tested with macOS 15 (Sequoia 15.7.4) · macOS Tahoe: should work · Universal Binary supports Intel; Intel Macs not officially tested.
  • Tested with Windows 10 x64 (latest Resolve beta) · Windows 11: should work · ARM Windows: not tested.
  • Syphon plugins (macOS only) · Spout plugins (Windows only) · NDI IN/OUT available on both platforms.
  • 1 license = 1 active installation — macOS or Windows, not both simultaneously.
  • Requires DaVinci Resolve 19+ (free) or Resolve Studio, Fusion Studio, or Assimilate Scratch 9.x+. PortalOFX+ loads in both the free and paid Resolve editions.
  • Nuke Studio 17 / Autodesk Flame: tested only on macOS in early access. Windows compatibility for these hosts is not yet validated. Resolve / Resolve Studio + Fusion Studio + Scratch are the full-support hosts.
  • OMT (Open Media Transport): ships in beta on macOS and Windows. Receivers/senders that support OMT are still few (vMix, Vizrt + b3LAB ecosystem). Workflow is identical to NDI: pick source, enable output. Stable release scheduled with v1.2.x.
  • Multi-stream same-protocol on Windows: Resolve's Efficiency Algorithm skips fully-occluded layers — if you stack two NDI or Spout layers and the top one fully covers the bottom, only one stream goes out. Set the top layer's opacity to 99.99% to keep both layers active and both streams sending.
  • Disable "Alpha under Plugin" in the Inspector (macOS + Windows). With this option active, Resolve becomes noticeably slow during playback through PortalOFX+ instances. Toggle it off in the OFX Inspector for normal performance.
  • Output streams need a manual restart after project reopen. When you close and reopen a project, output plugins (Syphon OUT, Spout OUT, NDI OUT, OMT OUT) require a manual Start Output once per session.
  • Micro jitter / stutter with output-delay active: under investigation. If you observe occasional small frame-timing issues, disable the output-delay parameter as a temporary workaround.
  • NDI Audio Out (since v1.1.0): the NDI OUT plugin can merge Resolve's audio bus into the same NDI stream as the video. Route Resolve audio to BlackHole 2ch (or any CoreAudio input), enable Audio Out in the plugin Inspector, pick your source device. Stereo (2-channel) for v1.1.x — multi-channel planned for v1.2.x. Syphon, Spout, and OMT protocols have no audio path by design.
  • One Syphon or NDI source per plugin instance.
  • 4K signal tested. Higher resolutions untested.
  • Syphon requires the source app on the same machine. NDI works cross-machine on the local network.
  • NDI sends as full-bandwidth uncompressed BGRX. NDI HX2/HX3 codec path is on the roadmap.
  • Colorspace tagging is embedded in NDI per-frame metadata only. Syphon has no standard colorspace field — receivers ignore tagging there.
  • Demo mode is fully functional but watermarks the output and reduces framerate. License key (Gumroad) unlocks all 4 plugins.

Tested with.

  • OS: macOS 15 (Sequoia 15.7.4) · Windows 10 x64 (tested) · macOS Tahoe / Windows 11: should work · ARM Windows: not tested
  • Distribution: macOS: Notarized DMG → /Library/OFX/Plugins/b3LAB_PortalOFX+.ofx.bundle · Hardened Runtime · Developer ID signed · Apple-stapled · Windows: PortalOFX-WIN.zipC:\Program Files\Common Files\OFX\Plugins\
  • Hosts (full support): DaVinci Resolve 19+ (free) and Resolve Studio · Fusion Studio · Assimilate Scratch 9.x+
  • Hosts (early access, Mac only): Nuke Studio 17 · Autodesk Flame — Windows compatibility for these hosts not yet validated
  • Plugins: macOS — Syphon IN, Syphon OUT, NDI IN, NDI OUT, OMT IN, OMT OUT (beta) · Windows — Spout IN, Spout OUT, NDI IN, NDI OUT, OMT IN, OMT OUT (beta)
  • Source: macOS: Syphon (Metal-backed, embedded) · Windows: Spout 2 (DirectX-backed, embedded) · NDI 5/6 SDK (lazy-loaded, optional runtime — both platforms) · OMT (open-source, beta — both platforms)
  • Audio: NDI Audio Out (macOS, since v1.1.0) — Resolve audio merged into the same NDI stream via CoreAudio source picker (stereo 2-channel, multi-channel planned for v1.2.x). Syphon, Spout, OMT have no audio path.
  • Signal: RGB · RGBA · up to 4K (BGRX FourCC for Scratch compatibility)
  • Build: broadcast tagging (NDI timecode + colorspace), health metrics, explicit Start/Stop lifecycle, source-loss fallback (Freeze / Black / Testcard)

Who uses it, and how.

Real production scenarios. Each setup is one focused signal path — no glue scripts, no capture detours.

USECASE 01

Lyric slides into the broadcast switch

An online church service needs lyric slides mixed inline with camera cuts, not as a separate window. ProPresenter publishes NDI; Resolve Live picks it up via PortalOFX+ and switches between camera and lyric tracks. Hardware switcher and capture card off the shopping list. Software-only signal flow on one Mac.

USECASE 02

Branded replay wipes pulled live from Resolume

A tournament stream needs branded replay wipes during downtime. The motion designer built them in Resolume; the broadcast desk runs Resolve Live. PortalOFX+ pulls Resolume NDI into Resolve as a wipe track. No extra hardware switcher, the brand wipes hit the air seconds after the build.

USECASE 03

Unreal scene as a Resolve track in virtual production

Director wants to see — at the table read — how camera cuts look against the virtual set lighting. Unreal publishes Spout/Syphon; PortalOFX+ pulls the live frames into Resolve as a track. Edit decisions get made on actual scene lighting, not on grayboxes.

USECASE 04 · LIVESTACK

Resolve-graded color in your Zoom call

Senior colorist on a remote review session wants the studio reel to look like the studio in the client call — not like a screencast over Wi-Fi. Resolve grades live, PortalOFX+ NDI-OUT to b3WebCam+, b3WebCam+ exposes the stream as a virtual camera in Zoom / Teams / FaceTime / Safari. Resolve-quality color in a video call. No screen capture. No Decklink. One LiveStack license.

USECASE 05 · LIP-SYNC

Live concert stream without audio drift

Online concert streamed on Twitch via OBS on a second machine. Resolve mixes the multicam live, NDI-OUT to OBS. Audio comes 60 ms ahead of video — classic NDI-pipeline drift. PortalOFX+ Output-Delay ±500 ms compensates frame-by-frame, no sidecar app, no external hardware. Audio sits in the right place from second one of the show.

USECASE 06 · BROADCAST

Replace your $800 NDI capture card with one plugin

Multi-operator edit suite — 4 editors, 1 color, 1 director room. Today: HDMI splitters and capture cards everywhere. PortalOFX+ NDI-OUT in the color suite → every editor's machine receives the live signal as an NDI source in their host. Director room: same NDI feed in a confidence monitor. No more capture hardware. One plugin license per machine that ships color out.

Get in touch

Opens your email client via mailto, addressed to [email protected].