--- title: AnyMo emoji: šŸƒ colorFrom: red colorTo: indigo sdk: gradio sdk_version: 6.31.0 app_file: app.py short_description: Wearable-IMU motion captioning & activity recognition python_version: "3.12" startup_duration_timeout: 30m --- # šŸƒ AnyMo — motion understanding from wearable IMUs Interactive demo for **[AnyMo](https://huggingface.co/CRUISEResearchGroup/AnyMo)** ("AnyMo: Geometry-Aware Setup-Agnostic Modeling of Human Motion in the Wild"). AnyMo consumes raw wearable-IMU time series — attached at *any* subset of 23 canonical body segments, in any order — and produces: - **Motion captions** — free-form natural-language descriptions of the motion. - **Zero-shot activity recognition** — the closest match among your candidate activity labels, via IMU-text embedding similarity. ## How to use 1. **Pick a bundled sample** — real 5-second IMU windows (Head + Left Wrist + Right Wrist, 60 Hz) from the AnyMo-Bench test split — **or upload your own `.npy`** array of shape `[T, S, 6]` (or flattened `[T, SƗ6]`). Channels are `[acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z]` in m/s² and rad/s. 2. **Set each sensor's body location** (Head, Left Wrist, Right Wrist for the bundled samples). 3. Press **Analyze motion**. The window is resampled to the model's native 60 Hz and passed through AnyMo's geometry-aware ST-GCN encoder, product-quantized motion tokenizer, and Qwen2.5-0.5B language backbone. ## Links - šŸ“„ [Paper](https://arxiv.org/abs/2605.22715) - šŸ’» [Code](https://github.com/Breezelled/AnyMo) - šŸ¤— [Model](https://huggingface.co/CRUISEResearchGroup/AnyMo) (Apache-2.0) - šŸ“Š [AnyMo-Bench](https://huggingface.co/datasets/CRUISEResearchGroup/AnyMo-Bench) ## Sample data attribution The six bundled example windows (`samples/*.npy`) are drawn from the **[AnyMo-Bench](https://huggingface.co/datasets/CRUISEResearchGroup/AnyMo-Bench)** test split ([CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)). They are redistributed here for demonstration purposes with attribution; non-commercial use only.