[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74204":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},74204,"ai4animationpy","facebookresearch\u002Fai4animationpy","facebookresearch","A Python framework for AI-driven character animation using neural networks.","https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002F",null,"Python",1939,240,22,6,0,10,31,140,30,20.15,"Other",false,"main",true,[],"2026-06-12 02:03:23","\u003Cdiv align=\"center\">\n\n# AI4AnimationPy\n\n**A Python framework for AI-driven character animation using neural networks.**\n\nDeveloped by [Paul Starke](https:\u002F\u002Fgithub.com\u002Fpaulstarke) and [Sebastian Starke](https:\u002F\u002Fgithub.com\u002Fsebastianstarke)\n\n[![License: CC BY-NC 4.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-CC%20BY--NC%204.0-lightgrey.svg)](LICENSE)\n[![Python 3.12](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.12-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002Frelease\u002Fpython-3120\u002F)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocs-GitHub%20Pages-blue?logo=github)](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002F)\n\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FLKl7MzFENUs\">\n\u003Cimg src=\"Media\u002FThumbnail.png\" width=\"100%\" alt=\"AI4AnimationPy Demo Video\">\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\nAI4AnimationPy enables character animation through neural networks and provides useful tools for motion capture processing, training & inference, and animation engineering. The framework brings [AI4Animation](https:\u002F\u002Fgithub.com\u002Fsebastianstarke\u002FAI4Animation) to Python — removing the Unity dependency for data-processing, feature-extraction, inference, and post-processing while keeping similar game-engine-style architecture (ECS, update loops, rendering pipeline). Everything runs on **NumPy** or **PyTorch**, so training, inference, and visualization happen in one unified environment.\n\n## Getting Started\n\nPlease see the full documentation for installation instructions, and other practical tips for working with AI4AnimationPy:\n\n[**Full Documentation**](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002F)\n\n- [Installation Instructions](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002Fgetting-started\u002Finstallation\u002F)\n- [Quick Start Guide](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002Fgetting-started\u002Fquickstart\u002F)\n- [Architecture Overview](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002Farchitecture\u002Foverview\u002F)\n- [Demo Programs](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002Ftutorials\u002Fdemos\u002F)\n- [API Reference](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002Fapi\u002Factor\u002F)\n\n## Architecture\nThe framework can be executed via 1) using in-built rendering pipeline (\"Standalone\"), 2) headless mode (\"Headless\") or 3) manual execution (\"Manual\") which enables running code locally or remotely on server-side.\nWhile both Standalone and Headless mode invoke automatic update callbacks, the Manual mode allows to manually control how often and at which time intervals the update loop is invoked.\n\n\u003Cimg src =\"Media\u002FArchitecture.png\" width=\"100%\">\n\n## Interactive Demos\n| | |\n|---|---|\n| ![Locomotion Demo](Media\u002FBiped_Locomotion.gif) | ![Quadruped Demo](Media\u002FQuadruped_Locomotion.gif) |\n| **Stylized Biped Locomotion Controller** trained on style100 | **Quadruped Locomotion Controller** — Interactive dog locomotion with gait transitions and action poses |\n| ![Training Demo](Media\u002FTraining.gif) | ![ECS Demo](Media\u002FECS.gif) |\n| **Future Motion Anticipation** with Interactive model training visualization | **ECS** — Entity hierarchy and component system |\n| ![IK Demo](Media\u002FIK.gif) | ![MocapImport Demo](Media\u002FMocapImport.gif) |\n| **Inverse Kinematics** — Real-time IK solving | **Motion Capture Import** — GLB\u002FFBX\u002FBVH\u002FNPZ loading |\n| ![MotionEditor Demo](Media\u002FMotionEditor.gif) | \u003Cdiv align=\"center\">\u003Cbr\u002F>\u003Ca href=\"https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002Ftutorials\u002Fdemos\u002F\">\u003Cstrong>View all demos →\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fdiv> |\n| **Motion Editor** — animation browsing and feature visualization| |\n\n\u003Cdiv align=\"center\">\u003Ca href=\"https:\u002F\u002Fpaulstarke-ai4animationpy.hf.space\u002F\" style=\"display: inline-block; padding: 12px 24px; background-color: #0366d6; color: white; text-decoration: none; border-radius: 6px; font-weight: 600; margin-top: 20px;\">Play Web Demos\u003C\u002Fa> \u003Cbr> \u003Cbr>\n\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FqifmLpNzVzI?si=DmKrpsNhBO3vsCbW\">\n\u003Cimg src=\"Media\u002FWebDemos.png\" width=\"75%\" alt=\"AI4AnimationPy Demo Video\">\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n## Why AI4AnimationPy?\n\nResearch on AI-driven character animation has required juggling multiple disconnected tools — model research happens in Python while visualization requires specialized software, and bridging the two involves custom communication pipelines. This creates friction that slows iteration and makes it difficult to validate results on-the-fly.\n\nThe training pipeline in [AI4Animation](https:\u002F\u002Fgithub.com\u002Fsebastianstarke\u002FAI4Animation) has been heavily dependent on Unity. While useful for visualization and runtime inference, communication with PyTorch had to go through ONNX or data streaming, creating a disconnect in the overall workflow. AI4AnimationPy solves this by fusing everything into one unified framework running only on NumPy\u002FPyTorch:\n\n- **Train neural networks** on motion capture data\n- **Visualize instantly** without switching tools — training, inference, and rendering share the same backend\n- **Run headless** for server-side training with optional standalone mode\n- **Extend easily** with new features like geometry, audio, vision, or physics via the modular ECS design\n\n\u003Cimg src=\"Media\u002FWorkflow.png\" width=\"100%\" alt=\"Framework Workflow\">\n\n| | AI4AnimationPy | AI4Animation (Unity) |\n|---|---|---|\n| **Training data generation** (20h mocap) | \u003C 5 min | > 4 hours |\n| **Setup time** for new experiment | ~10 min | > 4 hours |\n| **Visualize**  inputs\u002Foutputs during training | Built-in | Requires streaming |\n| **Backprop** through inference | ✅ Supported | ❌ Not possible |\n| **Quantization** | Full PyTorch support | Limited to ONNX |\n| **Visualization** | Optional built-in renderer | Built-in |\n\n## Features\n\n| | Feature | Status |\n|---|---------|:------:|\n| 🧩 | **Entity-Component-System** — modular architecture with lifecycle management | ✅ |\n| 🔄 | **Update Loop** — game-engine-style callbacks (Update \u002F Draw \u002F GUI) | ✅ |\n| 📐 | **Math Library** — vectorized FK, quaternions, axis-angle, matrices, mirroring | ✅ |\n| 🧠 | **Neural Networks** — MLP, Autoencoder, Codebook Matching with training utilities | ✅ |\n| 🖥️ | **Real-time Renderer** — deferred shading, shadow mapping, SSAO, bloom, FXAA | ✅ |\n| 💀 | **Skinned Mesh Rendering** — GPU-accelerated skeletal mesh rendering | ✅ |\n| 🦴 | **Inverse Kinematics** — FABRIK solver for real-time IK | ✅ |\n| 🎬 | **Animation Modules** — joint contacts, root & joint trajectories | ✅ |\n| 🎥 | **Camera System** — Free, Fixed, Third-person, Orbit mode with smooth blending | ✅ |\n| 📦 | **Motion Import** — GLB, FBX, BVH | ✅ |\n| ⚡ | **Execution Modes** — Standalone, Headless, Manual | ✅ |\n| 🏗️ | Physics simulation (rigid bodies \u002F collision) | 🔜 |\n| 🛤️ | Path planning and spline tooling | 🔜 |\n| 🔊 | Audio support | 🔜 |\n\n## Motion Capture Import\n\nThe framework supports importing mesh, skin, and animation data from **GLB**, **FBX**, and **BVH** files. The internal motion format is `.npz`, storing 3D positions and 4D quaternions for each skeleton joint per frame.\n\n```python\nfrom ai4animation import Motion\n\nmotion = Motion.LoadFromGLB(\"character.glb\")\nmotion = Motion.LoadFromFBX(\"character.fbx\")\nmotion = Motion.LoadFromBVH(\"character.bvh\", scale=0.01)\nmotion.SaveToNPZ(\"character\")\n```\n\nBatch convert entire directories using the built-in CLI:\n\n```bash\nconvert --input_dir path\u002Fto\u002Fmotions --output_dir path\u002Fto\u002Foutput\n```\n\nSee the [Loading Motion Data](https:\u002F\u002Ffacebookresearch.github.io\u002Fai4animationpy\u002Fgetting-started\u002Fquickstart\u002F#importing-motion-data) guide for setup details.\n\n\u003Csummary>\u003Cb>Public Datasets\u003C\u002Fb>\u003C\u002Fsummary>\nSeveral public motion capture datasets are compatible with the framework:\n\u003Cbr>\n\n| Dataset | Character | Download |\n|---------|-----------|----------|\n| [Cranberry](https:\u002F\u002Fgithub.com\u002Fsebastianstarke\u002FAI4Animation) | Cranberry | [FBX & GLB](https:\u002F\u002Fstarke-consult.de\u002FAI4Animation\u002FSIGGRAPH_2024\u002FCranberry_Dataset.zip) |\n| [100Style retargeted](https:\u002F\u002Fgithub.com\u002Forangeduck\u002F100style-retarget) | Geno | [BVH](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002F100style-retarget\u002Fbvh.zip) \u002F [FBX](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002F100style-retarget\u002Ffbx.zip) |\n| [LaFan](https:\u002F\u002Fgithub.com\u002Fubisoft\u002Fubisoft-laforge-animation-dataset) | Ubisoft LaFan | [BVH](https:\u002F\u002Fgithub.com\u002Fubisoft\u002Fubisoft-laforge-animation-dataset\u002Fblob\u002Fmaster\u002Flafan1\u002Flafan1.zip) |\n| [LaFan resolved](https:\u002F\u002Fgithub.com\u002Forangeduck\u002Flafan1-resolved) | Geno | [BVH](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002Flafan1-resolved\u002Fbvh.zip) \u002F [FBX](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002Flafan1-resolved\u002Ffbx.zip) |\n| [ZeroEggs retargeted](https:\u002F\u002Fgithub.com\u002Forangeduck\u002Fzeroeggs-retarget) | Geno | [BVH](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002Fzeroeggs-retarget\u002Fbvh.zip) \u002F [FBX](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002Fzeroeggs-retarget\u002Ffbx.zip) |\n| [Motorica retargeted](https:\u002F\u002Fgithub.com\u002Forangeduck\u002Fmotorica-retarget) | Geno | [BVH](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002Fmotorica-retarget\u002Fbvh.zip) \u002F [FBX](https:\u002F\u002Ftheorangeduck.com\u002Fmedia\u002Fuploads\u002FGeno\u002Fmotorica-retarget\u002Ffbx.zip) |\n| [NSM](https:\u002F\u002Fgithub.com\u002Fsebastianstarke\u002FAI4Animation\u002Ftree\u002Fmaster\u002FAI4Animation\u002FSIGGRAPH_Asia_2019) | Anubis | [BVH](https:\u002F\u002Fstarke-consult.de\u002FAI4Animation\u002FSIGGRAPH_Asia_2019\u002FMotionCapture.zip) |\n| [MANN](https:\u002F\u002Fgithub.com\u002Fsebastianstarke\u002FAI4Animation\u002Ftree\u002Fmaster\u002FAI4Animation\u002FSIGGRAPH_2018) | Dog | [BVH](https:\u002F\u002Fstarke-consult.de\u002FAI4Animation\u002FSIGGRAPH_2018\u002FMotionCapture.zip) |\n\n\n## License\n\nAI4AnimationPy is licensed under the [CC BY-NC 4.0 License](LICENSE).\n","AI4AnimationPy 是一个基于神经网络的用于角色动画生成的Python框架。该项目提供了从动作捕捉处理、模型训练与推理到动画工程的一系列工具，其核心功能包括使用NumPy或PyTorch进行统一环境下的训练和可视化，同时支持多种执行模式：内置渲染管线、“无头”模式以及手动控制更新循环的手动模式。这使得无论是本地开发还是远程服务器部署都能灵活应用。此外，该框架去除了对Unity引擎的依赖，但仍保持了类似游戏引擎的设计架构（如ECS系统），适用于需要高质量AI驱动动画解决方案的游戏开发、电影制作及虚拟现实等领域。",2,"2026-06-11 03:49:30","high_star"]