--- title: ARDY Motion Playground emoji: 🕺 colorFrom: gray colorTo: purple sdk: gradio sdk_version: 6.20.0 app_file: app.py short_description: Text-to-motion with an interactive 3D skeleton playground python_version: "3.12" startup_duration_timeout: 1h pinned: false preload_from_hub: - unsloth/llama-3-8b-Instruct - McGill-NLP/LLM2Vec-Meta-Llama-3-8B-Instruct-mntp - McGill-NLP/LLM2Vec-Meta-Llama-3-8B-Instruct-mntp-supervised - nvidia/ARDY-Core-RP-20FPS-Horizon40 - nvidia/ARDY-G1-RP-25FPS-Horizon52 --- # ARDY Motion Playground Interactive **text-to-motion** demo for [ARDY](https://research.nvidia.com/labs/sil/projects/ardy/) (*Autoregressive Diffusion with Hybrid Representation for Interactive Human Motion Generation*, NVIDIA, SIGGRAPH 2026). Pick a **rig** (human or robot), type a natural-language prompt, generate a 3D motion clip, then **orbit, scrub, and play** it in the built-in Three.js playground (play/pause, timeline scrubber, speed control, loop, and a root-trajectory trail). - **Human rig:** `nvidia/ARDY-Core-RP-20FPS-Horizon40` — 27-joint "Core" skeleton at 20 fps. - **Robot rig:** `nvidia/ARDY-G1-RP-25FPS-Horizon52` — 34-joint Unitree G1 humanoid robot at 25 fps (same rig as the sibling Space `hugging-apps/ardy-g1-motion-generation`). - **Text encoder:** LLM2Vec-Llama-3-8B using the public `unsloth/llama-3-8b-Instruct` base plus the original McGill MNTP and supervised adapters. No Meta-gated base-model access is required. - **Hardware:** ZeroGPU. Post-processing (foot-skate cleanup, which needs a compiled C++ extension) is disabled in this demo; generation uses the model's autoregressive path directly. Based on the [nv-tlabs/ardy](https://github.com/nv-tlabs/ardy) reference implementation (`scripts/generate.py`). ## Blender export Open **Blender export** to generate three downloadable files: - `ardy_motion.bvh` — directly importable with Blender's BVH importer. - `ardy_motion.npz` — complete ARDY output including joint positions, local and global rotations, root trajectory, and foot contacts. - `metadata.json` — prompt, seed, FPS, skeleton hierarchy, and coordinate-system information. The programmatic endpoint is `/generate_blender`. The existing `/generate` endpoint and Three.js playground remain available. The base and adapter repositories can be overridden with the Space variables `LLM2VEC_BASE_MODEL`, `LLM2VEC_MNTP_MODEL`, and `LLM2VEC_SUPERVISED_MODEL`.