Metadata-Version: 2.5
Name: simready-forge
Version: 0.1.0
Summary: Turn a prompt or a photo into an NVIDIA SimReady asset: OpenUSD with materials, physics and joints
Project-URL: Homepage, https://github.com/serionist/simready-forge
Project-URL: Repository, https://github.com/serionist/simready-forge
Project-URL: Documentation, https://github.com/serionist/simready-forge/tree/main/docs
Project-URL: Issues, https://github.com/serionist/simready-forge/issues
Author: Soma Osvay
License-Expression: MIT
License-File: LICENSE
Keywords: build123d,claude-code,isaac-sim,omniverse,openusd,robotics,simready,simulation,usd
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: <3.14,>=3.12
Requires-Dist: build123d==0.13.0
Requires-Dist: coacd==1.0.14
Requires-Dist: matplotlib==3.11.2
Requires-Dist: numpy==2.5.4
Requires-Dist: physx-usd-schemas==25.11.2.72696984
Requires-Dist: pillow==13.0.0
Requires-Dist: scipy==1.18.1
Requires-Dist: simready-foundation-tier-core==2026.8.0
Requires-Dist: simready-validate==2026.8.0
Requires-Dist: trimesh==5.2.0
Requires-Dist: usd-core==26.11
Requires-Dist: usd-profiles-nvidia==1.22.0
Requires-Dist: usd-validation-nvidia==1.22.0
Description-Content-Type: text/markdown

<h1 align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/serionist/simready-forge/main/docs/assets/logo-dark.svg">
    <img src="https://raw.githubusercontent.com/serionist/simready-forge/main/docs/assets/logo.svg" alt="simready-forge" width="520">
  </picture>
</h1>

<p align="center"><b>Type what you want, or attach a photo. Get an NVIDIA SimReady asset that simulates.</b></p>

<p align="center">
  <a href="https://github.com/serionist/simready-forge/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/serionist/simready-forge/actions/workflows/ci.yml/badge.svg?branch=main"></a>
  <a href="https://github.com/serionist/simready-forge/actions/workflows/codeql.yml"><img alt="CodeQL" src="https://github.com/serionist/simready-forge/actions/workflows/codeql.yml/badge.svg?branch=main"></a>
  <a href="https://github.com/serionist/simready-forge/blob/main/LICENSE"><img alt="Licence: MIT" src="https://img.shields.io/badge/licence-MIT-007ec6"></a>
  <a href="https://www.python.org/"><img alt="Python 3.12 | 3.13" src="https://img.shields.io/badge/python-3.12%20%7C%203.13-3776ab?logo=python&logoColor=white"></a>
  <a href="https://docs.anthropic.com/en/docs/claude-code"><img alt="Claude Code plugin" src="https://img.shields.io/badge/Claude%20Code-plugin-d97757"></a>
  <a href="#how-an-asset-is-checked"><img alt="SimReady: Robotics-Prop 4.0.0" src="https://img.shields.io/badge/SimReady-Robotics--Prop%204.0.0-1f7a8c"></a>
  <a href="https://openusd.org/"><img alt="OpenUSD" src="https://img.shields.io/badge/OpenUSD-26.11-4a4a4a"></a>
</p>

<p align="center">
  <img src="https://raw.githubusercontent.com/serionist/simready-forge/main/docs/assets/showcase.jpg" alt="Eight assets made by simready-forge: a desk lamp, a rangefinder camera, a bottle, a nightstand, a running shoe, a pipe pile, a cable drum and a barricade" width="100%">
  <br><sub>Eight assets made in Max mode, rendered in Isaac Sim by the review that checks them.</sub>
</p>

```text
/simready-forge:make a 180 mm desk lamp with an adjustable arm, a weighted base and a translucent shade
```

A Claude Code plugin and a Python kit. One prompt or photo in; out comes:

- **OpenUSD** (NVIDIA SimReady, Robotics-Prop 4.0.0) with real dimensions, materials and physics
- **Every joint the real object has**, driven and measured in Isaac Sim
- **URDF and GLB** exports, a report, and the build script to tweak and rerun

<p align="center">
  <img src="https://raw.githubusercontent.com/serionist/simready-forge/main/docs/assets/joints.webp" alt="A desk lamp, a camera, a nightstand and a barricade, at rest and with every joint driven" width="80%">
  <br><sub>At rest, then every joint driven: the review watches each mechanism move.</sub>
</p>

## How it works

```mermaid
flowchart LR
    R["Prompt or photo"] --> S["Spec<br/>parts, joints,<br/>materials"]
    S --> B["Builder<br/>build123d + kit,<br/>or TRELLIS.2"]
    B --> V["NVIDIA validator"]
    V --> I["Isaac Sim review<br/>every joint driven"]
    I --> C["Critics + refuter"]
    C -- "findings" --> B
    C -- "clean" --> P["Package + report"]
```

| Mode | What runs |
|---|---|
| **Quick** | one builder, one fix round at most |
| **Standard** | one builder, then critics and a refuter until clean (≤ 4 rounds) |
| **Max** | three builders, a blind judge picks one, then Standard on it |

Asked once, remembered per session, project or always. Override per run: `mode=max`, `builder=opus`, `effort=high`.

## How an asset is checked

<p align="center">
  <img src="https://raw.githubusercontent.com/serionist/simready-forge/main/docs/assets/review-sheet.jpg" alt="The Isaac review's contact sheet for a desk lamp: views at rest and with every joint driven, with each joint's measured reach" width="100%">
  <br><sub>The Isaac review's contact sheet: at rest, every joint driven both ways, each joint's reach.</sub>
</p>

| Check | What it does |
|---|---|
| NVIDIA validator | [simready-validate](https://pypi.org/project/simready-validate/), profile Robotics-Prop 4.0.0 |
| Isaac review | RTX renders, every joint driven both ways, settle test |
| Physics probe | tilt, a hand's push on each part, lift and shake, a box on top |
| Poses | overlaps, the ground and openings, without Isaac |
| Critics + refuter | fresh eyes on the renders; every claim checked against the files |

## Modes, measured

Eight cases (five prompts, three photos), judged the same way:

| Mode | Validator | Joint review | Drops (¼ h, 0.5 m) | Probe | Cost per asset |
|---|:---:|:---:|:---:|:---:|---|
| Quick, Sonnet builder | 8/8 | 8/8 | 8/8 · 8/8 | 5/8 | $2 – 7 |
| Quick, Opus builder | 8/8 | 8/8 | 6/8 · 7/8 | 4/8 | $5 – 16 |
| Standard, Sonnet builder | 8/8 | 8/8 | 8/8 · 7/8 | 4/8 | $7 – 26 |
| Standard, Opus builder | 8/8 | 8/8 | 7/8 · 7/8 | 5/8 | $15 – 34 |
| Standard, TRELLIS.2 meshes | 8/8 | 7/8 | 7/8 · 7/8 | 3/8 | $13 – 45 |
| Max | 8/8 | 8/8 | 7/8 · 8/8 | 4/8 | $21 – 67 |

- Quick + Sonnet passes every physics check; the extra rounds buy fidelity.
- Probe misses are the same in every mode: no joint friction in the kit yet.

## Install

```text
/plugin marketplace add serionist/simready-forge
/plugin install simready-forge@simready-forge
```

| You need | For |
|---|---|
| [uv](https://docs.astral.sh/uv/) | everything |
| Isaac Sim 5.x / 6.x + NVIDIA RTX GPU | the review and the probe (else a software preview) |
| ComfyUI + TRELLIS.2 | generated meshes (optional) |

Working on the kit itself? Set `SIMREADY_FORGE_DEV` to your clone.

## The kit, by hand

```python
from build123d import Box, Pos
from simready_forge import Asset, validate

asset = Asset("storage_box", "simready_assets", label="box", qcode="Q188075", units="mm")
pine = asset.material("pine", color=(0.78, 0.62, 0.42), density=500, nonvisual=("wood", "none"))
box, lid = asset.body("box"), asset.body("lid")
asset.add(box, "box", Pos(0, 0, 150) * Box(400, 300, 300), pine, collider="box")
asset.add(lid, "lid", Pos(0, 0, 310) * Box(400, 300, 20), pine, collider="box")
asset.revolute("hinge", box, lid, anchor=(0, 150, 300), axis="X", limits=(-110, 0), hold=1)
validate(asset.save())
```

## Docs

[Usage](https://github.com/serionist/simready-forge/blob/main/docs/USAGE.md) · [Contributing](https://github.com/serionist/simready-forge/blob/main/CONTRIBUTING.md) · [Security](https://github.com/serionist/simready-forge/blob/main/SECURITY.md) ·
[Changelog](https://github.com/serionist/simready-forge/blob/main/CHANGELOG.md) · [Releasing](https://github.com/serionist/simready-forge/blob/main/docs/releasing.md)

## Licence

[MIT](https://github.com/serionist/simready-forge/blob/main/LICENSE). Not affiliated with NVIDIA; SimReady, Omniverse and Isaac Sim are NVIDIA's trademarks.
