File size: 2,440 Bytes
8037f37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
---
pipeline_tag: other
tags:
- 3d
- human-motion-generation
- diffusion
---

# DrawMotion: Generating 3D Human Motions by Freehand Drawing

DrawMotion is an efficient diffusion-based framework designed for multi-condition scenarios, generating 3D human motions based on both conventional text conditions and a novel hand-drawing condition. This approach provides both semantic and spatial control over the generated motions.

- **Paper:** [DrawMotion: Generating 3D Human Motions by Freehand Drawing](https://huggingface.co/papers/2605.20955)
- **Repository:** [InvertedForest/DrawMotion](https://github.com/InvertedForest/DrawMotion)
- **Demo Video:** [YouTube](https://youtu.be/sy2QTdDD09A)

## Overview

Text-to-motion generation often faces challenges in precisely conveying intended motions through text alone. DrawMotion addresses this by introducing a multi-condition fusion module (MCM) that integrates text prompts with freehand stickman sketches and 2D trajectories. It also utilizes a training-free guidance strategy to align generated motions with user intentions while preserving fidelity.

## Sample Usage

### Prepare Weights

You can download the required model assets from this repository using the `huggingface_hub` CLI:

```bash
pip install -U huggingface_hub
hf download I0u0I/DrawMotion \
  --local-dir . \
  --include "logs/human_ml3d/last.ckpt" \
            "mid_feat/t2m/mid_feat.pt" \
            "stickman/weight/real_init/t2m/stickman_encoder.ckpt"
```

The model also requires the OpenAI CLIP text encoder:
```python
import clip
# Download the OpenAI CLIP text encoder used by DrawMotion.
python -c 'import clip; clip.load("ViT-B/32", device="cpu")'
```

### Running the Web Demo

To run the interactive DrawMotion experience locally, use the following command from the repository root:

```bash
DRAWMOTION_CKPT=logs/human_ml3d/last.ckpt \
DRAWMOTION_GPU=0 \
uvicorn demo.drawmotion_studio.app:app --host 0.0.0.0 --port 12008
```

## Citation

If you find DrawMotion useful, please cite:

```bibtex
@article{wang2026drawmotion,
  title={DrawMotion: Generating 3D Human Motions by Freehand Drawing},
  author={Wang, Tao and Jin, Lei and Wu, Zhihua and He, Qiaozhi and Chu, Jiaming and Cheng, Yu and Xing, Junliang and Zhao, Jian and Yan, Shuicheng and Wang, Li},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  year={2026},
  pages={1--17},
  doi={10.1109/TPAMI.2026.3679530}
}
```