Julia implementation of human body models in the SMPL family.
Note: To use SMPL as a shared library, checkout the
CSMPL
branch
]add https://github.com/nitin-ppnp/SMPL.jl
- run the following code to visualize the zero pose and shape. Creating the
SMPL/SMPLX/SUPR
structs for the first time will initiate the model files download. To download the models, you need register at the model websites, which are the following
- For SMPL: https://smpl.is.tue.mpg.de/
- For SMPLX: https://smpl-x.is.tue.mpg.de/
- For SUPR: https://supr.is.tue.mpg.de/
using SMPL;
# Create SMPL/SMPLX/SUPR data structs
# first time execution will ask the credentials for the respective model website
smpl = create_smpl_neutral();
smplx = create_smplx_neutral();
supr = create_supr_neutral();
# Define betas and poses arrays
betas = zeros(Float32, 10);
poses = zeros(Float32, 72);
# Call smpl_lbs function with SMPL data struct
output_smpl = smpl_lbs(smpl, betas, poses);
# Define betas and poses arrays
betas = zeros(Float32, 10);
poses = zeros(Float32, 165);
# Call smpl_lbs function with SMPLX data struct
output_smplx = smpl_lbs(smplx, betas, poses);
# Define betas and poses arrays
betas = zeros(Float32, 10);
poses = zeros(Float32, 228);
# Call smpl_lbs function with SUPR data struct
output_supr = smpl_lbs(supr, betas, poses);
# Access the vertices from the output dict
vertices_smpl = output_smpl["vertices"];
vertices_smplx = output_smplx["vertices"];
vertices_supr = output_supr["vertices"];
Once you have all the three models (SMPL/SMPLX/SUPR) downloaded, run the unit tests by
]test
- Operating System: Windows 11 Pro
- Processor: 12th Gen Intel(R) Core(TM) i7-1280P 1.80 GHz
- Memory: 32.0 GB (31.6 GB usable)
- Current smpl_lbs impl: 2.617 ms