Skip to content

Commit 0ca62f3

Browse files
committed
docs: update README with new features and structure
1 parent 3381c88 commit 0ca62f3

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

README.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ See [QUICKSTART.md](QUICKSTART.md) for a full end-to-end walkthrough.
2626

2727
### Python
2828

29+
```bash
30+
pip install . # install via pip (requires scikit-build-core)
31+
python3 -c "import simforge as sf; print(sf.available_stages())"
32+
```
33+
34+
Or build manually:
35+
2936
```bash
3037
cmake -B build -G Ninja -DSIMFORGE_BUILD_PYTHON=ON && cmake --build build
3138
PYTHONPATH=build/python python3 -c "import simforge as sf; print(sf.available_stages())"
@@ -67,7 +74,7 @@ See [DESIGN.md](DESIGN.md) for the full design document, [ROADMAP.md](ROADMAP.md
6774
| `init` | Generate a default `simforge.yaml` config |
6875
| `validate` | Run validators on processed assets |
6976

70-
Global option: `--log-level <trace|debug|info|warn|error>` (default: `info`)
77+
Global options: `--version`, `--log-level <trace|debug|info|warn|error>` (default: `info`)
7178

7279
`process` options: `-j,--threads <N>` (0=auto, 1=sequential), `--force` (reprocess all, ignore cached hashes), `--dry-run`, `--json-report`
7380

@@ -81,7 +88,7 @@ A config file has two top-level keys:
8188
- **`stages`** — Per-stage settings:
8289
- `ingest` — Accepted input formats (OBJ, STL, FBX, GLTF, URDF, MJCF, ...).
8390
- `articulation` — Kinematic tree configuration: links, joints, actuators, sensors. Merges data from source files, sidecar metadata (`.simforge.yaml`), and inline YAML config.
84-
- `collision` — Decomposition method (`coacd`, `convex_hull`, `triangle_mesh`, `primitive`), concavity threshold, max hulls.
91+
- `collision` — Decomposition method (`convex_hull`, `coacd`, `triangle_mesh`, `primitive`), concavity threshold, max hulls. Default: `convex_hull` (CoACD requires `-DSIMFORGE_USE_COACD=ON`).
8592
- `physics` — Mass estimation strategy (`geometry`, `explicit`, `lookup`), density, friction, restitution, `material_library` path.
8693
- `optimize` — LOD levels and triangle budgets.
8794
- `validate` — Which checks to run (watertight, physics plausibility, collision correctness, mesh integrity, scale sanity, kinematic tree, actuators, sensors, joint limits).
@@ -92,7 +99,8 @@ A config file has two top-level keys:
9299
```
93100
simforge/
94101
├── .github/workflows/ # CI/CD
95-
│ └── ci.yml # Build matrix + gate job
102+
│ ├── ci.yml # Build matrix + gate job
103+
│ └── release.yml # Tag-triggered release builds
96104
├── include/simforge/ # Public headers
97105
│ ├── adapters/ # Adapter interfaces, mesh writer, exporter headers
98106
│ ├── core/ # Core types, MaterialLibrary, hashing
@@ -121,11 +129,13 @@ simforge/
121129
│ ├── test_materials.cpp # Material library + lookup tests
122130
│ ├── test_parallel.cpp # Parallel pipeline tests
123131
│ ├── test_incremental.cpp # Incremental processing tests
132+
│ ├── test_coverage_gaps.cpp # Articulated export, edge case, and stage tests
124133
│ └── test_bindings.py # Python binding tests (pytest)
125134
├── data/ # Default data files
126135
│ └── materials.yaml # 21 common materials (steel, rubber, ABS, ...)
127136
├── samples/ # Sample assets (OBJ, STL, GLTF, URDF, MJCF)
128137
├── CMakeLists.txt # Build configuration
138+
├── pyproject.toml # Python packaging (pip install .)
129139
├── CHANGELOG.md # Release history
130140
├── DESIGN.md # Full design document
131141
├── QUICKSTART.md # End-to-end walkthrough
@@ -135,7 +145,7 @@ simforge/
135145

136146
## CI/CD
137147

138-
GitHub Actions runs on every push to `develop` and on PRs to `main`.
148+
GitHub Actions runs on every push to `develop` and on PRs to `main` or `develop`.
139149

140150
| Job | Description |
141151
|-----|-------------|
@@ -146,6 +156,8 @@ GitHub Actions runs on every push to `develop` and on PRs to `main`.
146156
| `Python Bindings` | Build with pybind11, run pytest suite (Python 3.11) |
147157
| `Gate` | Required status check — passes only when all jobs pass |
148158

159+
A separate **release workflow** triggers on version tags (`v*`) — builds, tests, packages, and creates a GitHub Release with artifacts.
160+
149161
**Branching workflow:** develop locally on `develop` → push → CI runs → open PR to `main` → Gate must pass to merge.
150162

151163
## Development

0 commit comments

Comments
 (0)