Body Model Visualizer
Introduction
This is a simple Open3D-based GUI for SMPL-family body models. This GUI lets you play with the shape, expression, and pose parameters of SMPL, SMPL-X, MANO, FLAME body models. Features include:
- Interactive editing of shape, expression, pose parameters
01_model_editing.mp4
- Visualize body model joints and joint names
02_visualize_joints.mp4
- Simple IK solver to match an input pose
03_simple_ik.mp4
- Save edited model parameters
04_save_params.mp4
- View controls
05_viewing.mp4
- Lighting controls
06_lighting.mp4
- Material settings
07_material.mp4
- Web visualization support
Even though there are existing Blender/Unity plugins for these models, our main audience here is researchers who would like to quickly edit/visualize body models without the need to install a graphics software.
Installation
Clone the repo and install the requirements (use python3.9).
pip install -r requirements.txt
Download the SMPL, SMPL-X, MANO, FLAME body models:
- SMPL: https://smpl.is.tue.mpg.de/ (v1.1.0)
- SMPL-X: https://smpl-x.is.tue.mpg.de/ (v1.1)
- MANO: https://mano.is.tue.mpg.de/
- FLAME: https://flame.is.tue.mpg.de/
Copy downloaded files under data/body_models
, this folder should look like:
data
└── body_models
├── flame
│  ├── FLAME_FEMALE.pkl
│  ├── FLAME_MALE.pkl
│  ├── FLAME_NEUTRAL.pkl
│  ├── flame_dynamic_embedding.npy
│  └── flame_static_embedding.pkl
├── mano
│  ├── MANO_LEFT.pkl
│  └── MANO_RIGHT.pkl
├── smpl
│  ├── SMPL_FEMALE.pkl
│  ├── SMPL_MALE.pkl
│  └── SMPL_NEUTRAL.pkl
└── smplx
├── SMPLX_FEMALE.npz
├── SMPLX_MALE.npz
└── SMPLX_NEUTRAL.npz
Finally, run:
python main.py
If you want to enable web visualization, run:
python main.py --web
Guidelines
Saved model parameters
File > Save Model Params
lets you save the edited body model parameters. Output is a pickled
python dictionary with below keys:
dict_keys(['betas', 'expression', 'gender', 'body_model',
'joints', 'body_pose', 'global_orient'])