Skip to main content

Genvid platform integration for Foundry Nuke 14+

Project description

genvid-nuke

Genvid platform integration for Foundry Nuke 14+.

This package lets compositors authenticate with the Genvid backend from inside Nuke, browse project comps, render to the platform, and surface live notifications about server-side comp generation.

Requirements

  • Foundry Nuke 14.0 or newer (bundled Python is 3.9+).
  • macOS or Windows. Linux is best-effort.
  • A Genvid account with access to at least one project.

Layout

This is a standard pip-installable Python package using a src/ layout:

genvid_nuke/
├── pyproject.toml
└── src/genvid_nuke/
    ├── __init__.py
    ├── __about__.py
    ├── config.py
    └── tests/

Nuke discovers plugins by executing init.py and menu.py files placed on its NUKE_PATH (typically ~/.nuke/). Those bootstrap files are added in later tasks of the Phase 2 plan; they are intentionally thin shims that import this genvid_nuke package via standard Python import once it is installed into Nuke's Python environment.

Why pip-installable + thin loader? Nuke's bundled Python is a normal CPython interpreter, so a properly installed package on sys.path works exactly the same as any other library. Studios get clean upgrades via pip install --upgrade genvid-nuke, and we avoid the historical pitfall of shipping a single 3000-line menu.py.

Install

Two distribution artifacts are published, both built from the same source tree via dist/build.sh:

Wheel (recommended) — install into Nuke's bundled Python

This is the cleanest path for individual workstations. Two commands, no file editing:

# 1. Install the package into Nuke's bundled Python.
"<Nuke install>/python" -m pip install genvid-nuke
# 2. Bootstrap it into Nuke's startup so the Genvid menu appears.
"<Nuke install>/python" -m genvid_nuke install

On Windows the interpreter is python.exe, e.g.:

"C:\Program Files\Nuke17.0v3\python.exe" -m pip install genvid-nuke
"C:\Program Files\Nuke17.0v3\python.exe" -m genvid_nuke install

Then restart Nuke — the Genvid menu appears in the menubar.

Why the second step? pip install lands the package on Nuke's sys.path, but Nuke only auto-runs init.py / menu.py files it finds on NUKE_PATH (i.e. ~/.nuke) — not files inside a pip-installed package. So the wheel alone makes import genvid_nuke work yet never builds the menu. python -m genvid_nuke install writes thin shim files into ~/.nuke that import the package on startup, bridging the gap. It is idempotent and preserves any existing ~/.nuke/init.py / menu.py content (studios with their own bootstrap files are safe to run it). Pass --nuke-dir <path> to target a shared studio NUKE_PATH location instead of ~/.nuke.

Upgrades are pip install --upgrade genvid-nuke; the bootstrap shims keep working across upgrades, so you only run install once.

.zip — drop onto a shared NUKE_PATH

For studios that distribute plugins by extracting to a shared NUKE_PATH location:

unzip genvid_nuke-1.0.0.zip -d ~/.nuke/genvid_nuke/

Then add the extracted directory itself (e.g. ~/.nuke/genvid_nuke/) to NUKE_PATH — in ~/.nuke/init.py or your studio launch script — and restart Nuke. The .zip ships a top-level init.py shim alongside a genvid_nuke/ package directory; on Nuke startup, the shim adds the extracted folder to sys.path and then imports genvid_nuke.init to wire the on-script-load sync. Once that runs, Nuke's bundled Python can import genvid_nuke directly.

Development

cd genvid_nuke
python -m pip install -e ".[dev]"

nuke itself is never a dependency — it is provided by the Nuke host. The test suite mocks sys.modules["nuke"] so the package can be exercised in CI without a real Nuke license.

Sign-in (preview)

Authentication uses the Supabase OAuth Password grant against the Genvid project, with refresh tokens cached via the OS keychain (keyring). Implementation lands in later Phase 2 tasks.

Usage (preview)

After install and sign-in, the Nuke menu gains a Genvid entry that lets users:

  • Pick a project / comp.
  • Push the current comp to the Genvid backend (POST /comps).
  • See status updates as the server processes the comp.

Detailed usage docs live alongside the implementation in later tasks.

Configuration

All runtime configuration is environment-variable driven (see src/genvid_nuke/config.py). Defaults target Genvid production; studios behind a corporate proxy or running against a staging environment can override:

Variable Default
GENVID_API_BASE_URL https://app.genvid.com/api
GENVID_SUPABASE_AUTH_BASE_URL https://vqegpoigxpcauqflcauw.supabase.co/auth/v1 (Genvid production; override for staging)
GENVID_SUPABASE_CLIENT_ID genvid-nuke-plugin
GENVID_POLL_INTERVAL_SECONDS 5.0
GENVID_POLL_FAST_INTERVAL_SECONDS 2.0
GENVID_POLL_FAST_WINDOW_SECONDS 30.0

Testing

cd genvid_nuke
python -m pip install ".[dev]"
pytest -v -m "not e2e" --cov=src/genvid_nuke

The e2e marker is reserved for tests that require a real Nuke license; those are skipped in CI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genvid_nuke-1.1.0.tar.gz (184.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

genvid_nuke-1.1.0-py3-none-any.whl (77.2 kB view details)

Uploaded Python 3

File details

Details for the file genvid_nuke-1.1.0.tar.gz.

File metadata

  • Download URL: genvid_nuke-1.1.0.tar.gz
  • Upload date:
  • Size: 184.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for genvid_nuke-1.1.0.tar.gz
Algorithm Hash digest
SHA256 15bf0e87944e6f89391aa4dff0cefd640b648c28ae0bf5d0fc1016b691505b1b
MD5 563be0fdd8e39ee5f2a7a0414989277d
BLAKE2b-256 48257f0dd5aaf604a12ced8d7152bd9b54a9719dcb5fa1e22fe7a3de1464d9b3

See more details on using hashes here.

File details

Details for the file genvid_nuke-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: genvid_nuke-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 77.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for genvid_nuke-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4eabe35c4ed98edc9fdcabdba734b1ae4e1ed6d609b25113dd997b903950a1f
MD5 2e9ea57ceba61eb42c16070f65060da2
BLAKE2b-256 1fdc3d282d030328bb08c5548fecb0f1584843bc516ee281520e8f290b4b94f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page