[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-95875":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":25,"discoverSource":26},95875,"motion-bricks.cpp","localai-org\u002Fmotion-bricks.cpp","localai-org","NVIDIA MotionBricks ported to GGML\u002FC++; dynamically generates animations from keyframes using a neural network. Can be used in games or with robots",null,"C++",143,10,2,0,22,3.12,"Apache License 2.0",false,"main",true,[],"2026-09-21 02:04:28","# motion-bricks.cpp\n\nA C++23\u002FGGML port of NVIDIA MotionBricks for CPU and Vulkan inference, with a\nstable C ABI suitable for PureGo.\n\nThe released batch-one G1 inference path is implemented end to end: strict\nGGUF loading, root\u002Fduration planning, pose-token prediction, VQ decoding,\n418\u002F414\u002F413 feature conversion, style alignment, and skeletal animation\noutput. CPU and Vulkan use the same public API and preserve the same duration\nand pose-token decisions in the reference suite.\n\n## Build\n\nThe normal build uses CMake and does not depend on Nix:\n\n```sh\ncmake --preset debug\ncmake --build --preset debug\nctest --preset debug\n```\n\nConfiguration downloads and SHA-256-verifies the published 0.73 GB G1 F32\nGGUF and style bundles into `generated\u002F` when they are not already present.\nThe same operation can be run explicitly:\n\n```sh\npython scripts\u002Fdownload_gguf_weights.py\n```\n\nFor an offline or source-only build, preserve an existing local bundle or use\n`cmake --preset debug -DMOTIONBRICKS_DOWNLOAD_MODELS=OFF`. The repository and\nrevision are configurable with `MOTIONBRICKS_MODEL_REPOSITORY` and\n`MOTIONBRICKS_MODEL_REVISION`.\n\nOn NixOS, enter the reproducible development shell first:\n\n```sh\nnix develop\ncmake --preset debug\ncmake --build --preset debug\nctest --preset debug\n```\n\nWhen the pinned `ggml\u002F` submodule is present, it is included automatically.\nThe non-neural ABI and validation subset can also be built without GGML:\n\n```sh\ncmake -S . -B build\u002Fdebug -G Ninja -DMOTIONBRICKS_ENABLE_GGML=OFF\n```\n\nThe Go binding and demo use PureGo to load `libmotionbricks` at runtime; they\ndo not use cgo or `import \"C\"`. Once the native shared library has been built,\nthe Go components therefore need no C compiler and can be built with cgo\nexplicitly disabled:\n\n```sh\ncd demo\nCGO_ENABLED=0 go build -o ..\u002Fbuild\u002Fdebug\u002Fbin\u002Fmotionbricks-demo .\n```\n\n`CGO_ENABLED=0` is optional but recommended for making this property explicit\nin builds and CI. It affects only the Go build—the native C++ library is still\nbuilt separately with CMake.\n\nThe sanitizer lane is:\n\n```sh\ncmake --preset asan-ubsan\ncmake --build --preset asan-ubsan\nctest --preset asan-ubsan\n```\n\n## Current ABI\n\nThe installed C API uses only fixed-width scalars, pointers, and opaque heap\nhandles. Callers never reproduce a C or C++ structure layout. All constructors\nhave matching free functions, and no C++ exception crosses the ABI boundary.\n\nThe current CLI can report ABI information:\n\n```sh\n.\u002Fbuild\u002Fdebug\u002Fbin\u002Fmotionbricks-cli abi\n```\n\nAfter producing the trusted safetensors intermediates described in\n`reference\u002FREADME.md`, build and inspect an F32 runtime bundle with:\n\n```sh\npython scripts\u002Fconvert_to_gguf.py \\\n  --safe-directory generated\u002Fsafe \\\n  --output generated\u002Fg1-f32\n.\u002Fbuild\u002Fdebug\u002Fbin\u002Fmotionbricks-cli inspect generated\u002Fg1-f32\n```\n\nThe released G1 inference path contains exactly **183,148,382 learned F32\nparameters**. The bundle loader validates the upstream revision, source\ncheckpoint identities, component roles, tensor counts, parameter counts,\nanchor shapes, and the 34-joint parent topology before accepting a model.\n\nConvert the 15 original demo styles with:\n\n```sh\npython scripts\u002Fconvert_styles.py \\\n  --safe-directory generated\u002Fsafe \\\n  --output generated\u002Fstyles\n```\n\nAt runtime the high-level flow is: load one immutable model, load one or more\n`.mbstyle` assets, create an agent, reset it from an initial style (or supply\nat least four frames of G1 context), set movement\u002Ffacing\u002Fstyle on a command,\nthen call `mb_agent_plan`. The returned motion owns row-major F32 root\ntranslations `[frames,3]` and local XYZW rotations `[frames,34,4]`. Call\n`mb_agent_advance` as playback progresses so replanning uses the generated\nmotion as its next context.\n\nThe current implementation covers original preprocessed G1 styles. Direct\nKimodo GLB-to-`.mbstyle` conversion remains subsequent integration work.\n\n## Weights\n\nReady-to-run native weights and all 15 upstream style primitives are published\nas [MotionBricks-G1-GGML](https:\u002F\u002Fhuggingface.co\u002FLocalAI-io\u002FMotionBricks-G1-GGML)\nunder the Hugging Face `LocalAI-io` organisation. NVIDIA currently distributes\nMotionBricks checkpoints through Git LFS in\n[`NVlabs\u002FGR00T-WholeBodyControl`](https:\u002F\u002Fgithub.com\u002FNVlabs\u002FGR00T-WholeBodyControl\u002Ftree\u002Fa0732b642c0333077e127a2f56ab0014c196bca4\u002Fmotionbricks),\nnot a separate Hugging Face model repository, so the model card links to that\npinned upstream revision. The downloader verifies the version-controlled\ndistribution manifest before accepting any file.\n\nThe default build is pinned to Hugging Face commit\n`cc2a47603dbc203a4f18f35dd06ed3611833f506` rather than the mutable `main`\nbranch.\n\n## Interactive demo\n\nThe initial Go\u002FThree.js demo renders the model's 34-joint skeleton alongside\nthe four actual placed target-keyframe ghosts. It lets you steer with W\u002FA\u002FS\u002FD,\nturn facing with the arrow keys, orbit\u002Fzoom the camera, and switch among the\nconverted upstream styles. It uses the reusable PureGo binding and the same\nstateful native agent as other applications. See the\n[demo guide](docs\u002FDEMO.md) for build, run, architecture, and headless-Chromium\ntest instructions.\n\n## Design\n\n- [Human-led design](docs\u002Fmotions-bricks.md)\n- [Implementation sketch and plan](docs\u002FIMPLEMENTATION.md)\n- [Versioned formats](docs\u002FFORMATS.md)\n- [Go\u002FThree.js demo](docs\u002FDEMO.md)\n- [Pinned upstream reference](reference\u002FREADME.md)\n\n## License\n\nmotion-bricks.cpp source code is licensed under the\n[Apache License 2.0](LICENSE). NVIDIA's original model weights and converted\nGGUF\u002Fstyle distributions remain under the NVIDIA Open Model License reproduced\nwith the published model. It permits derivative models and redistribution with\nconditions including retention of the agreement and attribution, Trustworthy\nAI terms, and trade compliance. Bundled third-party components retain their own\nlicenses; the vendored Three.js files are covered by\n`demo\u002Fweb\u002Fvendor\u002FTHREE-LICENSE.txt`.\n","motion-bricks.cpp 是一个将 NVIDIA MotionBricks 动画生成模型移植至 GGML\u002FC++ 的轻量级推理库，支持 CPU 和 Vulkan 后端。其核心功能是基于输入关键帧，通过神经网络动态生成骨骼动画序列，完整实现 G1 推理路径（含 root\u002Fduration 规划、pose-token 预测、VQ 解码、特征转换与风格对齐），并提供稳定 C ABI 接口。项目专为资源受限或需嵌入式集成的场景设计，适用于游戏引擎实时动画合成、机器人运动控制及离线动画生成等低延迟、跨语言（如 PureGo）部署需求。","2026-09-05 02:30:06","CREATED_QUERY"]