Skip to content

gouruiyu/ControlOperators

Repository files navigation

Simplified Reference Implementation

This repository contains a simplified reference implementation for the paper "Control Operators for Interactive Character Animation". Note that it is not the exact implementation as in the paper or paper videos, as the original implementation was developed integrated within Unreal Engine. Here we provide an example of implementing some core ideas in Python:

  • implementation and example usage of control operators
  • training and interactive testing of a flow-matching-based autoregressive character controller on lafan1-resolved dataset

Preview

example.mp4

Environment setup:

Note that the current environment is tested on Windows/Linux.

uv sync
# or
pip install -r requirements.txt

(optional) Download Pretrained Models to run the demo

├── data/
│   ├── lafan1_resolved/
│   │   ├── X.npz
│   │   ├── Z.npz
│   │   ├── autoencoder.ptz
│   │   ├── database.npz
│   │   ├── UberControlEncoder
│   │   │   └── controller.ptz

Demo (controller.py)

  • The viewer displays the character and uses the trained networks to drive animation - you will need a gamepad (tested with a xbox controller) to test the modes other than uncontrolled:
uv run controller.py # or python controller.py

Training (train.py)

  • To train:
uv run train.py # or python train.py

About

Reference implementation of "Control Operators for Interactive Character Animation"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •