Skip to content

Repository files navigation

ARDY macOS Tools

Run NVIDIA ARDY motion generation locally on an Apple Silicon Mac through PyTorch Metal (MPS). This project supplies the Mac compatibility patch, tested dependency pins, persistent loopback API, installer, and health checks. It does not redistribute ARDY or any model weights.

This is an independent PocketAI compatibility project and is not an official NVIDIA release.

Demo

Watch the ARDY macOS MPS demo

ARDY motion running in Motion Studio

The demo shows an 80-frame, 20 FPS motion generated with ARDY Core Horizon 40 and played in PocketAI Motion Studio on the same Mac.

Requirements

  • Apple Silicon Mac (arm64)
  • macOS with Apple Metal/MPS support; macOS 14 or newer is recommended
  • At least 32 GB unified memory; 64 GB or more is recommended
  • Around 25 GB of free disk space for the runtime and model caches
  • A Hugging Face account with access to meta-llama/Meta-Llama-3-8B-Instruct

Install

The shortest path downloads a pinned official ARDY source archive and an isolated Python 3.12 runtime:

git clone https://github.com/trev222/ardy-macos-tools.git
cd ardy-macos-tools
./scripts/install-macos.sh

If you already cloned official ARDY, pass that checkout instead. The installer copies it into the project-local runtime before applying the Mac patch, so your checkout is not modified:

git clone https://github.com/nv-tlabs/ardy.git
git -C ardy checkout 693f74d13b3d04a0a22ce127ee79c929dd89756b

cd ardy-macos-tools
./scripts/install-macos.sh --ardy-repo ../ardy

The installer downloads ordinary Python packages from their upstream indexes. requirements-macos.txt records the versions used by the tested MPS runtime; it does not bundle those packages.

Authenticate and run

ARDY's text encoder uses gated Meta Llama 3 weights. Authenticate once using the isolated runtime:

.runtime/python/bin/hf auth login

Start the loopback-only service:

./scripts/run-macos.sh

The service listens at:

http://127.0.0.1:39471/v1/motions/generations

Check its status:

curl http://127.0.0.1:39471/healthz

Generate a short motion:

curl -X POST http://127.0.0.1:39471/v1/motions/generations \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "A person walks forward and waves with their right hand.",
    "durationSeconds": 1,
    "fps": 20,
    "seed": 7,
    "modelId": "ardy-core40"
  }'

Run the local environment check at any time:

./scripts/doctor.sh

Performance benchmark

On an Apple M5 Max MacBook Pro with 128 GB unified memory, two measured fresh-process sessions generated the four-second, 80-frame demo in 1.90–3.62 seconds once the models were resident. The cached first request took 145.6–260.3 seconds because loading the 8B text encoder and ARDY model dominates cold startup. Peak MPS driver allocation was 15.23 GiB.

These are single-machine desktop measurements, not universal performance claims. See the full benchmark record for CPU results, methodology, individual runs, and caveats. Reproduce it with:

./scripts/benchmark-macos.sh --output benchmark.json

What is downloaded

The installer retrieves and verifies:

  • Python 3.12.13 from Astral's Python Build Standalone release
  • Official ARDY source pinned to commit 693f74d13b3d04a0a22ce127ee79c929dd89756b
  • The tested Python packages listed in requirements-macos.txt

On first generation, ARDY downloads its checkpoint, LLM2Vec adapters, and the gated Meta Llama 3 text model directly from their official Hugging Face repositories. No model files pass through this repository.

Hugging Face showcase

The Hugging Face page is documentation and a demo, not a model mirror. Build its upload-ready directory with:

./scripts/prepare-huggingface.sh

The result is written to dist/huggingface/ and contains only the model card, demo media, license, and third-party notices. It does not contain ARDY source, model weights, caches, credentials, or the local Python runtime.

Limitations

  • Apple Silicon only
  • ARDY Core Horizon 40 and Horizon 8
  • High unified-memory use while the Llama text encoder is resident
  • ARDY's optional native MotionCorrection stage is skipped because this tool does not build or load that extension on Apple Silicon
  • The API returns joint positions and rotations as motion JSON; it does not export a baked animated GLB or FBX

License

The compatibility tools are licensed under Apache License 2.0. ARDY source, ARDY checkpoints, Meta Llama 3, LLM2Vec, and downloaded dependencies retain their own licenses. See THIRD_PARTY_NOTICES.md.

About

Apple Silicon MPS runtime and loopback API for NVIDIA ARDY

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages