|
Download reference/README.md from chibifire/motion-bricks.cpp: direct link, hf CLI and curl.
- Browser
- Download file 4.62 kB
-
https://huggingface.co/chibifire/motion-bricks.cpp/resolve/main/reference/README.md
- Command line
-
hf download hf://chibifire/motion-bricks.cpp/reference/README.md
-
curl -L -o README.md https://huggingface.co/chibifire/motion-bricks.cpp/resolve/main/reference/README.md
4.62 kB
| # Upstream reference | |
| The native implementation is validated against a pinned, unmodified NVIDIA | |
| MotionBricks checkout. | |
| | Component | Repository | Revision | | |
| |---|---|---| | |
| | MotionBricks | `https://github.com/NVlabs/GR00T-WholeBodyControl.git` | `a0732b642c0333077e127a2f56ab0014c196bca4` | | |
| | GGML | `https://github.com/ggml-org/ggml.git` | `8c63e70982c95ceb862e3a1073a2c1beef75d60a` (`v0.20.2`) | | |
| The `ggml/` submodule is pinned to the same revision used by the local | |
| `kimodo.cpp` and `skin-tokens.cpp` reference ports. Compatibility patches, if | |
| required, belong under `patches/ggml/` and will be applied to a build-directory | |
| copy during CMake configuration; the submodule worktree will remain untouched. | |
| ## Checkpoint identities | |
| The required MotionBricks checkpoints and G1 meshes have been fetched through | |
| Git LFS. These identities are the initial trusted reference inputs: | |
| | Artifact | Bytes | SHA-256 | | |
| |---|---:|---| | |
| | `G1-clip.ckpt` | 7,761,041 | `84afc7c229473351a24b0a7d79fc47be9dbb81bd12774285f2f60a3c0e9028df` | | |
| | VQ-VAE `model-step=2000000.ckpt` | 285,607,244 | `f12a09d46ad390a8e2eecbe7219b2472fcab6b59df0a13f6a40c35cb6da4d99a` | | |
| | pose `model-step=2000000.ckpt` | 1,639,126,476 | `0223c352b308ba638a499cc5c92104da36cb1d04cea2f8ce61d54a2489f853f1` | | |
| | root `model-step=2000000.ckpt` | 409,551,754 | `d7299a9b1f5aca35730c36dfe7ea28075708ac8266bf384fe8e2ef9c9aee69c7` | | |
| Saved configuration identities: | |
| | Configuration | SHA-256 | | |
| |---|---| | |
| | VQ-VAE `config.yaml` | `027a2d7ba5f49cadeadbcc9a6b0c6784d657d5a842e41ff820c5233f1cd6c1f3` | | |
| | pose `config.yaml` | `273af770d328b458510ee6049fac8e38fa486c8792cc27b3515dddc094a7cd1f` | | |
| | root `config.yaml` | `b174f03a333f7f7857c3e2b8a32da517caddd198f228efeea2e203d046ce212a` | | |
| The 29-DOF G1 XML identities used by the initial interactive reference are: | |
| - `g1_29dof.xml`: `58660a6f1d0d33ffd8ee967ab3860def53e3327d956cb009dd1385ddaf430f56` | |
| - `scene_29dof.xml`: `e254f11acce2ec6f6efa5bf9b15e288bbd0ca29aeeabb1e1d0fea92f65436bbf` | |
| Legacy Lightning `.ckpt` and demo-clip files are deserialized only inside the | |
| reference container. Normal conversion accepts safetensors and JSON, never | |
| pickle-bearing checkpoints. | |
| Build and run the trusted extractor from the project root: | |
| ```sh | |
| docker build -t motionbricks-reference:torch2.4 reference | |
| docker run --rm --user "$(id -u):$(id -g)" \ | |
| -v "$PWD:/work" \ | |
| -v /path/to/GR00T-WholeBodyControl:/upstream:ro \ | |
| motionbricks-reference:torch2.4 \ | |
| --upstream-root /upstream \ | |
| --output /work/generated/safe | |
| ``` | |
| The extractor verifies every pinned input hash and the small allowlist of | |
| pickle globals before loading. It writes independent safetensors for the three | |
| model checkpoints, original demo clips, and shared skeleton/statistics, plus a | |
| manifest containing every tensor name, shape, dtype, value count, and hash. | |
| ## Native inference bundle | |
| The normal converter reads only those verified safetensors and JSON files: | |
| ```sh | |
| nix develop --command python scripts/convert_to_gguf.py \ | |
| --safe-directory generated/safe \ | |
| --output generated/g1-f32 | |
| ``` | |
| It emits three inference-weight components plus one small skeleton/statistics | |
| component. The VQ-VAE encoder and optimizer/training state are excluded. The | |
| resulting learned parameter inventory is: | |
| - pose planner: 136,588,272 | |
| - root planner: 34,122,833 | |
| - VQ pose decoder and codebook: 12,437,277 | |
| - total: 183,148,382 | |
| Validate the result through the same public model-loading path applications | |
| use: | |
| ```sh | |
| ./build/debug/bin/motionbricks-cli inspect generated/g1-f32 | |
| ``` | |
| ## Reference fixtures and styles | |
| Generate deterministic PyTorch layer fixtures inside the same pinned | |
| container, then package them as small GGUF test inputs: | |
| ```sh | |
| docker run --rm --user "$(id -u):$(id -g)" \ | |
| --entrypoint python \ | |
| -v "$PWD:/work" \ | |
| -v /path/to/GR00T-WholeBodyControl:/upstream:ro \ | |
| motionbricks-reference:torch2.4 \ | |
| /work/reference/generate_fixtures.py \ | |
| --upstream-root /upstream \ | |
| --safe-directory /work/generated/safe \ | |
| --output /work/generated/fixtures | |
| python scripts/convert_fixtures_to_gguf.py \ | |
| --fixtures generated/fixtures \ | |
| --output generated/fixtures-gguf | |
| python scripts/convert_styles.py \ | |
| --safe-directory generated/safe \ | |
| --output generated/styles | |
| ``` | |
| The native suite checks every released neural component against these actual | |
| upstream PyTorch forwards. On the current reference machine, complete | |
| style-to-animation output also matches between CPU and strict-F32 Vulkan with | |
| the same 44-frame duration; observed maximum absolute differences were | |
| `2.19e-5` for root translations and `1.02e-4` for local quaternion components. | |