b3LAB – PortalOFX+

Four OpenFX plugins, one license: Syphon IN/OUT and NDI IN/OUT, bidirectional. Route live realtime visuals into DaVinci Resolve Studio or Assimilate Scratch / LiveFX — and send the result back out to TouchDesigner, MadMapper, OBS, VDMX, or any NDI receiver. Explicit lifecycle, broadcast-grade timecode + colorspace tagging, and live health telemetry. No screen-capture workarounds, no export loops.

DaVinci Resolve Studio 19+ Assimilate Scratch 9.x+ 4 plugins · 1 license macOS · Apple Silicon + Intel

What PortalOFX+ does

A focused OpenFX plugin suite. Four plugins — Syphon IN/OUT and NDI IN/OUT — bundled under one license. Give your realtime visual pipeline a direct, bidirectional path into DaVinci Resolve Studio and Assimilate Scratch / LiveFX, with a Frame Delay Buffer for tight AV-sync.

SYPHON IN + OUT

Native macOS shared texture pipeline

Two plugins — SYPHON IN and SYPHON OUT. Receive Syphon frames from any Syphon server (TouchDesigner, Resolume, MadMapper, VDMX, custom Metal apps), and send DaVinci Resolve Studio or Assimilate Scratch clip output back out as a Syphon server. Embedded Metal-backed Syphon framework, minimal latency, no frame export.

  • 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
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 Studio or Assimilate Scratch clips as NDI sources. NDI 5/6 SDK, lazy-loaded — the host runs even if the runtime is missing.

  • 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
  • Video only — OFX hosts do not route audio through plugins
  • NDI® technology by Vizrt — ndi.video
BROADCAST & PRO

Broadcast-grade timing, telemetry & one license for all four

Frame-accurate sync, live health telemetry, broadcast metadata, and a single Gumroad license that unlocks all four plugins. Built for production: signed, notarized, hardened-runtime macOS binary.

  • 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
  • One license key unlocks all 4 plugins · per-plugin custom stream names · Universal Binary (Apple Silicon + Intel)

Supported Hosts

Host A

DaVinci Resolve Studio

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

Host B

Assimilate Scratch / LiveFX

Full Syphon and NDI ingest in live and finishing workflows.

Requires DaVinci Resolve Studio (paid). OFX plugins do not render in the free version. Always verify your Resolve and macOS version against compatibility notes before purchase. Currently supported: macOS 12+, Apple Silicon and Intel. Specific Resolve version matrix in documentation.

Where this sits in the b3LAB chain.

PortalOFX+ is the routing layer of the b3LAB Creative Signal Network. PulseOSC+ drives the visuals. PortalOFX+ brings the live signal into Resolve or LiveFX. b3WebCam+ monitors, corrects, and exposes the same signal as camera. BatchForge+ turns the rendered output into delivery-ready files.

What this is not.

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

  • Tested on macOS 14 and 15 on Apple Silicon. Universal Binary supports Intel; Intel Macs not officially tested.
  • Requires DaVinci Resolve Studio 19+ or Assimilate Scratch 9.x+. The free Resolve edition does not load OFX plugins. Other OFX hosts (Nuke etc.) are not officially tested.
  • Video only — OFX plugins cannot route audio. By design, audio routing stays out of scope.
  • 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 (v1.3.0).
  • 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 12.4+ · Universal Binary (Apple Silicon + Intel) · primary HW-test on macOS 14 / 15
  • Distribution: Notarized DMG → copy bundle to /Library/OFX/Plugins/b3LAB_PortalOFX+.ofx.bundle · Hardened Runtime · Developer ID signed · Apple-stapled
  • Hosts: DaVinci Resolve Studio 19+ · Assimilate Scratch 9.x+
  • Plugins: 4 in one bundle — Syphon IN, Syphon OUT, NDI IN, NDI OUT
  • Source: Syphon (Metal-backed, embedded) · NDI 5/6 SDK (lazy-loaded, optional runtime)
  • Signal: RGB · RGBA · up to 4K (BGRX FourCC for Scratch compatibility)
  • Build: v1.2.0 — broadcast tagging (NDI timecode + colorspace), health metrics, explicit Start/Stop lifecycle, source-loss fallback

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.

Get PortalOFX+

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

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.

Get in touch

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