Internal reference for contributors to the NVIDIA RTX Remix Toolkit.
- Windows 10 or 11
- Git
- GPU with RTX support
- ~50 GB free disk space
For full hardware and software requirements, see Technical Requirements.
git clone https://github.com/NVIDIAGameWorks/toolkit-remix.git
cd toolkit-remix.\build.batThe 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.
.\_build\windows-x86_64\release\lightspeed.app.trex_dev.batDeveloper mode — includes verbose logging and extension hot-reload. See Repo Tools → Run for all launch options and flags.
.\format_code.batAuto-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_code.bat allRuns 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.
.\_build\windows-x86_64\release\tests-<extension.name>.bat -n defaultRuns user-written tests for a single extension. See Running Tests for filtering, coverage, and troubleshooting.
.\build_docs.batBuilds 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.
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.
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.
| 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. |
| 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. |
| 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. |
| 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. |
| 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, debug config, and agent commands. |
| 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). |