Skip to content

Commit f0af832

Browse files
Merge pull request #53 from alexandremendoncaalvaro/docs/three-product-surfaces
docs: align product surfaces with three-product reality (OFX, CLI, GUI)
2 parents 6b1365d + 005dda1 commit f0af832

4 files changed

Lines changed: 81 additions & 35 deletions

File tree

README.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22

33
![CorridorKey OFX Plugin](./assets/ofx_example.gif)
44

5-
Native AI keying runtime and OFX plugin for **DaVinci Resolve**, built in collaboration with **Corridor Digital**.
5+
Native AI keying runtime and OFX plugin for **DaVinci Resolve and Foundry Nuke**, built in collaboration with **Corridor Digital**.
66

7-
CorridorKey-Runtime provides two supported surfaces:
7+
CorridorKey-Runtime provides three product surfaces:
88

9-
- **DaVinci Resolve OFX plugin** for interactive keying inside Resolve
10-
- **CLI runtime** for local processing, diagnostics, and automation
9+
- **OFX plugin** for interactive keying inside DaVinci Resolve and Foundry Nuke
10+
- **CLI** (`corridorkey`) for local processing, diagnostics, and automation
11+
- **GUI** (Tauri-based desktop app) for users who prefer a graphical workflow over the CLI
12+
13+
The OFX plugin and the CLI ship in the same installer: the OFX bundle places `corridorkey.exe` next to `CorridorKey.ofx` and registers it on the system `PATH`, so the CLI is available after the OFX install. The GUI is distributed as a separate desktop installer that embeds its own copy of the runtime payload.
1114

1215
Current public builds support:
1316

@@ -26,25 +29,27 @@ Current public builds support:
2629
- Native local execution
2730
- Practical deployment in real editing workflows
2831
- Support for **NVIDIA RTX** and **Apple Silicon**
29-
- Stable surfaces for both **DaVinci Resolve users** and **CLI/integration workflows**
32+
- Stable surfaces for **DaVinci Resolve and Foundry Nuke users**, **CLI/integration workflows**, and **desktop GUI operators**
3033

3134
## Supported Surfaces
3235

33-
### OFX plugin for DaVinci Resolve
34-
35-
Use CorridorKey directly inside DaVinci Resolve through the OFX plugin.
36-
36+
### OFX plugin for DaVinci Resolve and Foundry Nuke
3737

38+
Use CorridorKey directly inside DaVinci Resolve or Foundry Nuke through the OFX plugin. The plugin is host-agnostic and registers itself at the standard OpenFX bundle path, so any OFX 1.4-compliant host that scans that path picks it up.
3839

39-
### CLI runtime
40+
### CLI (`corridorkey`)
4041

41-
Use the CLI for:
42+
The OFX installer ships the `corridorkey` CLI alongside the plugin and registers its directory on `PATH`. After installing the OFX bundle, `corridorkey` is callable from any terminal. Use it for:
4243

4344
- environment diagnostics
4445
- scripted processing
4546
- machine-readable JSON output
4647
- automation and integration workflows
4748

49+
### GUI (Tauri desktop app)
50+
51+
A Tauri-based desktop application is available as a separate installer for users who prefer a graphical workflow over the CLI. The GUI embeds its own copy of the runtime payload, so it does not require the OFX bundle to be installed.
52+
4853
## Documentation
4954

5055
### User Help

docs/ARCHITECTURE.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ The project exists to ship CorridorKey inference as a native, distributable,
1717
and integrable runtime for real hardware. The architecture enforces strict
1818
separation between the Core (inference, math, I/O), the Application
1919
(orchestration, OFX service, diagnostics), and the Interfaces (CLI, OFX
20-
plugin).
20+
plugin for DaVinci Resolve and Foundry Nuke, and Tauri desktop GUI).
2121

2222
**Key Principles:**
2323

24-
1. **Library First.** The engine is the product boundary. CLI and OFX plugin
25-
consume the same runtime rather than reimplementing behavior.
26-
2. **Interface Segregation.** Each surface (CLI, OFX plugin) is a thin client
27-
over the App/Core contracts. Business logic never lives in an interface
28-
layer.
24+
1. **Library First.** The engine is the product boundary. CLI, OFX plugin,
25+
and Tauri GUI all consume the same runtime rather than reimplementing
26+
behavior.
27+
2. **Interface Segregation.** Each surface (CLI, OFX plugin, Tauri GUI) is
28+
a thin client over the App/Core contracts. Business logic never lives in
29+
an interface layer.
2930
3. **Predictable Operations.** Diagnostics, fallback behavior, and error
3031
reporting are first-class concerns, not afterthoughts.
3132
4. **Curated Platform Tracks.** The official product tracks are Apple Silicon
@@ -72,15 +73,26 @@ Orchestration of Core capabilities into coherent jobs and services.
7273
- OFX runtime service: out-of-process session brokering, IPC protocol, and
7374
session lifecycle management for the OFX plugin.
7475
- Product-track policy: artifact selection, compatibility rules, and support
75-
behavior shared by CLI and OFX.
76+
behavior shared by CLI, OFX, and the Tauri GUI.
7677

77-
### Layer 3: Interfaces (`src/cli`, `src/plugins/ofx`)
78+
### Layer 3: Interfaces (`src/cli`, `src/plugins/ofx`, `src/gui`)
7879

7980
User-facing surfaces. Each is a thin consumer of App/Core contracts.
8081

8182
- **CLI** (`src/cli`): Argument parsing, output formatting, command dispatch.
83+
Ships inside the OFX installer alongside `CorridorKey.ofx` and is registered
84+
on the system `PATH` so it is callable from any terminal after the OFX
85+
install. Also available standalone in the portable runtime bundle that
86+
feeds the Tauri GUI installer.
8287
- **OFX Plugin** (`src/plugins/ofx`): OpenFX host integration, render
8388
callback, runtime client that communicates with the App-layer OFX service.
89+
Host-agnostic at the OFX 1.4 contract level; Resolve and Nuke 17 are the
90+
validated hosts today, with per-host workarounds gated behind explicit
91+
branches that never regress the path the other host depends on.
92+
- **Tauri GUI** (`src/gui`): Tauri 2 + React desktop application. Distributed
93+
as a separate desktop installer that embeds its own copy of the runtime
94+
payload (the staged output of `package_windows.ps1`); does not require the
95+
OFX bundle to be installed.
8496

8597
---
8698

docs/RELEASE_GUIDELINES.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,14 @@ it explicitly:
601601
- macOS: `scripts/release_pipeline_macos.sh --display-label X.Y.Z-mac.N --publish-github --notes-file <path>`
602602
- Linux: `scripts/linux.sh --task release --version X.Y.Z --display-label X.Y.Z-linux.N --publish-github --notes-file <path>`
603603

604-
### CorridorKey OFX
604+
### CorridorKey OFX (OFX plugin + bundled CLI)
605+
606+
This release track ships the OFX plugin used by DaVinci Resolve and
607+
Foundry Nuke, plus the `corridorkey` CLI bundled inside the same
608+
installer. The CLI's directory is registered on the system `PATH` at
609+
install time, so a single OFX install delivers both the OFX surface
610+
and the CLI surface; the Tauri GUI is shipped separately (see the
611+
"CorridorKey Runtime" track below).
605612

606613
The host-coverage qualifier `[Nuke & Resolve]` precedes the platform
607614
qualifier on every OFX release title, regardless of platform combination.
@@ -620,7 +627,17 @@ every example into a broken local link.
620627
- Windows and Linux: `CorridorKey OFX vX.Y.Z [Nuke & Resolve] (Windows & Linux)`
621628
- Windows, macOS, and Linux: `CorridorKey OFX vX.Y.Z [Nuke & Resolve] (Windows, macOS & Linux)`
622629

623-
### CorridorKey Runtime
630+
### CorridorKey Runtime (Tauri GUI desktop app)
631+
632+
This release track ships the Tauri-based desktop GUI defined in
633+
`src/gui`. The historical name "Runtime" is preserved on the release
634+
title and on the asset filename
635+
(`CorridorKey_Runtime_v<label>_<Platform>_<Track>_Installer.exe`)
636+
because changing it would break the auto-updater for users already on
637+
this track. The product surface is the GUI; the embedded runtime
638+
payload it ships is a copy of the same artifacts the OFX installer
639+
ships (see Section 1 "What This Is" in `docs/SPEC.md` for the full
640+
three-surface breakdown).
624641

625642
- Windows only: `CorridorKey Runtime vX.Y.Z (Windows)`
626643
- macOS only: `CorridorKey Runtime vX.Y.Z (macOS)`

docs/SPEC.md

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,24 @@ model. It exists to eliminate the Python dependency from model execution and
2222
to deliver a distributable, hardware-accelerated inference engine for
2323
professional video production workflows.
2424

25-
The product currently provides:
26-
27-
- A **CLI** (`corridorkey`) for direct command-line and pipeline use.
28-
- An **OFX plugin** for DaVinci Resolve on Windows and macOS, backed by an
29-
out-of-process runtime service.
30-
31-
Both surfaces consume the same underlying library. Logic is never duplicated
32-
between them.
25+
The product currently provides three surfaces:
26+
27+
- An **OFX plugin** for DaVinci Resolve and Foundry Nuke on Windows and macOS,
28+
backed by an out-of-process runtime service. The plugin is host-agnostic at
29+
the OFX 1.4 contract level; per-host workarounds (Resolve and Nuke 17 today)
30+
live in dedicated branches that never regress the path the other host
31+
depends on.
32+
- A **CLI** (`corridorkey`) for direct command-line and pipeline use. The CLI
33+
ships inside the OFX installer and is registered on the system `PATH` at
34+
install time, so a single OFX install delivers both the OFX plugin and the
35+
CLI. The CLI is also available standalone in the portable runtime bundle.
36+
- A **GUI** (Tauri-based desktop app) for users who prefer a graphical
37+
workflow over the CLI. The GUI is distributed as a separate desktop
38+
installer that embeds its own copy of the runtime payload; it is not bundled
39+
into the OFX installer.
40+
41+
All three surfaces consume the same underlying library. Logic is never
42+
duplicated between them.
3343

3444
### 1.2 What This Is Not
3545

@@ -45,10 +55,12 @@ between them.
4555

4656
- **Local operators** who want native execution without Python or virtual
4757
environments.
48-
- **Color graders and compositors** using DaVinci Resolve on officially
49-
supported hardware.
58+
- **Color graders and compositors** using DaVinci Resolve or Foundry Nuke on
59+
officially supported hardware.
5060
- **Pipeline integrators** who need a stable CLI or library surface for
5161
automated workflows.
62+
- **Desktop users** who prefer a graphical interface to the CLI for keying
63+
and diagnostics tasks.
5264

5365
---
5466

@@ -80,7 +92,7 @@ The complete support table is in [Support Matrix](../help/SUPPORT_MATRIX.md).
8092

8193
### 3.1 Layer Overview
8294

83-
- **Interface layer:** CLI and OFX plugin
95+
- **Interface layer:** CLI, OFX plugin, and Tauri GUI
8496
- **Application layer:** job orchestration, OFX runtime service, diagnostics
8597
- **Core layer:** inference session management, device detection, frame I/O,
8698
post-process, and session policies
@@ -111,9 +123,9 @@ App-layer OFX runtime service. The plugin is a thin IPC client; it does not
111123
load ONNX sessions or GPU backends directly.
112124

113125
This design isolates backend failures, TensorRT RTX compilation errors, and
114-
VRAM exhaustion from the DaVinci Resolve host process. The session broker in
115-
the service layer pools initialized sessions across multiple OFX node
116-
instances to avoid redundant GPU warmups.
126+
VRAM exhaustion from the host process (DaVinci Resolve or Foundry Nuke). The
127+
session broker in the service layer pools initialized sessions across multiple
128+
OFX node instances to avoid redundant GPU warmups.
117129

118130
Frame data moves between plugin and service over shared memory. The IPC
119131
protocol is versioned to ensure the plugin and service remain compatible

0 commit comments

Comments
 (0)