Developer Documentation
May 26, 2026 · View on GitHub
Internal reference for contributors to the NVIDIA RTX Remix Toolkit.
Quick Start
Prerequisites
- Windows 10 or 11
- Git
- GPU with RTX support
- ~50 GB free disk space
For full hardware and software requirements, see Technical Requirements.
Get the Source Code
git clone https://github.com/NVIDIAGameWorks/toolkit-remix.git
cd toolkit-remix
Build the Project
.\build.bat
The first build downloads all dependencies (Kit SDK, Python 3.10, tools) automatically via packman. Subsequent builds are incremental. See Tech Stack Overview for how the build pipeline works.
Run the App
.\_build\windows-x86_64\release\lightspeed.app.trex_dev.bat
Developer mode — includes verbose logging and extension hot-reload. See Repo Tools → Run for all launch options and flags.
Format Your Code
.\format_code.bat
Auto-formats all Python files with ruff (style + import sorting) and C++ files with clang-format. Run before every commit to avoid formatting-only diffs in review. See Repo Tools → Root Scripts for all available scripts.
Lint Your Code
.\lint_code.bat all
Runs ruff checks with auto-fix. Catches common errors, unused imports, and style violations that formatting alone doesn't cover. Both format and lint can be automated with pre-commit hooks — see Repo Tools → Root Scripts.
Run Tests
.\_build\windows-x86_64\release\tests-<extension.name>.bat -n default -- --no-window
Runs user-written tests for a single extension. See Running Tests for filtering, coverage, and troubleshooting.
Build the Documentation
.\build_docs.bat
Builds the Sphinx documentation locally. Output lands in _build/docs/. Useful for previewing doc changes before
submitting. See Repo Tools → Root Scripts for all available scripts.
Submit a Pull Request
Before opening a PR, check every item in the Review Checklist: branch naming (
dev/<user>/<feature>), version bumps for modified extensions, changelog entries, and ≥75% test coverage on new code.
External Contributors
Fork this repository, create a development branch, and submit a Pull Request against main. An automated bot will
prompt you to sign
the Contributor License Agreement
via your PR's comment page.
Table of Contents
Getting Started
| Page | Description |
|---|---|
| Tech Stack Overview | How repoman, packman, Kit SDK, premake, and Python fit together. The build pipeline from build.bat to a running app. |
| Git Workflow | Branch naming, commit format, and merge request process. |
| Running Tests | Test commands, filtering with -f, troubleshooting (registry sync, timeouts), and coverage reports. |
| Review Checklist | Pre-submission checklist: action undoability, USD context compatibility, dependency management, docstrings, version bumping, and changelog updates. |
| Learning Resources | Kit SDK, USD, and Omniverse documentation and video tutorials. |
Architecture & Design
| Page | Description |
|---|---|
| Code Architecture | USD contexts, extension lifecycle, design principles, event subscriptions, and system-level patterns (Commands, Factory/Plugin, Settings, Job Queue, Pip Archive). |
| Extension Guide | Extension naming, dependency direction, namespaces, directory layout, extension.toml reference, premake5.lua boilerplate, Python stubs, and docs/README.md structure. |
Code Quality Standards
| Page | Description |
|---|---|
| Code Style | Python 3.10, max 120 chars, black + isort + ruff, naming conventions, no lazy imports, __all__, license headers, and Google-style docstrings. |
| Engineering Standards | Fix root causes, never paper over. Anti-patterns table and smell tests for broken async, swallowed exceptions, and design problems. |
| Testing Standards | 75% coverage requirement, plan-before-code, unit vs E2E, Arrange/Act/Assert, test naming, and anti-patterns. |
Implementation Patterns
| Page | Description |
|---|---|
| Building UI Components | omni.ui layout guidelines: alignment, spacing, dimensions, and Remix stylesheet conventions. |
| Implementing Commands | Undoable user actions with omni.kit.commands.Command: do()/undo(), grouping, dispatch, and testing. |
| Implementing Service Endpoints | REST endpoints with ServiceBase and omni.flux.service.factory: routing, registration, and testing. |
| Implementing Stage Manager Plugins | The Stage Manager plugin system: 8 plugin types, schema config, and Flux/Lightspeed layering. |
| Implementing Ingestion Pipeline Plugins | Validation framework: 4 plugin types, execution flow, DataFlow, and mass validation. |
| Adding Pip Package Dependencies | Third-party packages via omni.flux.pip_archive: OSRB requirement, pip_flux.toml, and post-merge steps. |
Development Tools
| Page | Description |
|---|---|
| Repo Tools | All root-level scripts: build, run, format, lint, build docs, pre-commit hooks, repo subcommands, and CLI launchers. |
| VSCode / Cursor Setup | Workspace setup, recommended extensions, tasks, and debug config. |
| PyCharm Setup | Python path, run profiles, scope config, and external tools for format/lint. |
| Debugging | Attaching debuggers to Kit: debugpy (VSCode) and PyCharm Professional. The break flag trick for tests. |
| Profiling | Performance profiling with Tracy: app-start and on-demand (F5). |