Skip to content

About

USD-native LEGO-style brick simulator built on OpenUSD with PhysX-style snapping and synthetic-data pipeline. Capstone for NVIDIA Omniverse / Isaac Sim career pivot.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

usd-native-brick-sim

A USD-native LEGO-style brick simulator — Pixar OpenUSD as the source-of-truth scene description, programmatic asset authoring, PhysX-style snapping rules, and a Replicator-style synthetic-data pipeline. Built as a learning vehicle and portfolio artifact for the NVIDIA Omniverse / Isaac Sim ecosystem.

Status: Phase 0 — scaffolding. Active build log in docs/PROGRESS.md.

What this is

This repo is the capstone for a 6-month learning sprint into NVIDIA's physical-AI stack (OpenUSD, Omniverse Kit, PhysX, Replicator, Warp). Each phase ships a working artifact:

Phase Artifact Demonstrates
1 Procedurally-authored brick library as USD OpenUSD authoring, schemas, composition, variants, instancing
2 Omniverse Kit extension to load & lay out bricks Kit extension architecture, omni.ui, Fabric/USDRT
3 PhysX brick snapping + 1,000-brick assembly Rigid-body sim, fixed joints, collision authoring in USD
4 Replicator synthetic-data pipeline Domain randomization, COCO-format dataset emission
5 (stretch) Warp kernel for bulk collision pre-pass GPU compute, Python-callable kernels
6 (stretch) Cosmos Transfer → photoreal Sim-to-real translation

Why this exact project

A 20-year game-engine engineer (Unreal expert, EA Frostbite, Wētā FX Atlas scene-description, Call of Duty MWIII ECS-for-physics, currently Lead SWE on the LEGO Brick Editor) pivoting toward NVIDIA Omniverse / Isaac Sim roles needs a portfolio piece that:

  • Maps Wētā Atlas experience onto OpenUSD authoring
  • Maps AAA ECS-for-physics experience onto Kit/PhysX integration
  • Uses public domain content (bricks) so it doesn't touch employer IP
  • Runs on a developer laptop and scales upward to cloud
  • Lands on the stack of NVIDIA JR2018096 (Metropolis Synthetic Data Generation), which literally lists "Unreal/Unity rigid-body physics" + Python + Omniverse as required/preferred

Quickstart (Phase 1)

# clone
git clone https://github.com/jiamingfeng/usd-native-brick-sim.git
cd usd-native-brick-sim

# create venv with usd-core
# (using uv — https://docs.astral.sh/uv/)
uv venv --python 3.11 .venv
.venv\Scripts\Activate.ps1
uv pip install -e ".[dev]"

# generate a small brick library
python -m brick_sim.gen_library --out assets/bricks --count 20

# verify
python scripts/inspect_stage.py assets/bricks/library.usda

Repo layout

usd-native-brick-sim/
├─ src/brick_sim/        # the Python package — USD authoring, brick schemas
├─ assets/bricks/        # generated .usda libraries (gitignored, regen-able)
├─ demos/                # one-off scripts that produce videos/screenshots
├─ tests/                # pytest, runs against in-memory stages
├─ scripts/              # CLI helpers (inspect stages, dump composition, etc.)
├─ docs/
│  ├─ ARCHITECTURE.md    # the USD layer cake, mental model
│  ├─ PROGRESS.md        # phase log, what shipped when
│  └─ atlas-to-usd.md    # write-up: mapping Wētā Atlas concepts to OpenUSD
└─ pyproject.toml

Background

About

USD-native LEGO-style brick simulator built on OpenUSD with PhysX-style snapping and synthetic-data pipeline. Capstone for NVIDIA Omniverse / Isaac Sim career pivot.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages