2896 - Population-Based Musculoskeletal Modelling Interface
Context
Designing workstations, collaborative robots or exoskeletons must account for morphological variability to remain efficient and safe. Numerical simulation is a powerful complement to experimental studies—provided that virtual human models are both realistic and directly usable in simulators. The main technical hurdle is converting a 3D surface mesh, generated by statistical shape modelling tools into an articulated dynamic model with consistent inertial parameters, and muscle actuators.
This internship will focus on developing an open-source pipeline that bridges this gap, enabling the generation of an entire population of dynamic human models. The final goal is to assess a manual-handling tasks using ergonomic indicators such RULA / NIOSH.
Objectives
Pipeline for Dynamic Model Generation
a. Anthropometry from SMPL-X – Use the statistical body model SMPL-X (library smplx) plus the SMPL-Anthropometry toolkit to sample realistic anthropometric measurements (e.g. segment lengths, overall stature, body mass).
b. URDF/Musculoskeltal generation – Feed those measurements to a scaling tool to get a musculoskeletal model with muscles (Biobuddy). For each individual, a fully articulated model with estimated inertial properties, visual meshes and muscles shoud be generated. The interface should be as generic as possible.
Integration & Motion Synthesis
• Import the model into Pinocchio (for rigid-body dynamics) or Biorbd (for muscle extensions).
• Formulate an optimal-control problem with Bioptim to simulate a lifting task (e.g. lift 15 kg from floor to 0.8 m) for a population (1m60 - 1m80, 60-100 kg).
Timeline
| Month | Milestones & Deliverables |
| 1 | • Familiarise with SMPL-X & develop the interface • Python scripts: (i) sample anthropometry; (ii) Generate model; (iii) develop a robust re-usable software interface • Short literature review on population modelling & ergonomic metrics.
| 2 | • Validate full chain (SMPL-X → Pinocchio/biorbd → Bioptim) • First optimal-control simulation on one full-body model. • Produce a short demo video.
| 3 | • Generate 20–50 avatars; batch simulations. Implement RULA/NIOSH scorer; statistical analysis. • Final report, clean public Git repo & roadmap for future work.
References
Pavlakos, G., Choutas, V., Ghorbani, N., Bolkart, T., Osman, A. A. A., Tzionas, D., & Black, M. J. (2019). Expressive body capture: 3-D hands, face and body from a single image. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 10975-10985).
Bojanić, D. (2024). SMPL-Anthropometry. https://github.com/DavidBoja/SMPL-Anthropometry
Carpentier, J., Saurel, G., Buondonno, G., Mirabel, J., Lamiraux, F., Stasse, O., & Mansard, N. (2019, January). The Pinocchio C++ library: A fast and flexible implementation of rigid-body dynamics algorithms and their analytical derivatives. In 2019 IEEE/SICE International Symposium on System Integration (SII) (pp. 614-619). IEEE.
Michaud, B., & Begon, M. (2021). biorbd: A C++, Python and MATLAB library to analyse and simulate human-body biomechanics. Journal of Open Source Software, 6(57), 2562.
Michaud, B., Bailly, F., Charbonneau, E., Ceglia, A., Sanchez, L., & Begon, M. (2022). Bioptim: A Python framework for musculoskeletal optimal control in biomechanics. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 53(1), 321-332.
Andersson, J. A. E., Gillis, J., Horn, G., Rawlings, J. B., & Diehl, M. (2019). CasADi: A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1), 1-36.
McAtamney, L., & Corlett, E. N. (1993). RULA: A survey method for the investigation of work-related upper-limb disorders. Applied Ergonomics, 24(2), 91-99.
Waters, T. R., Putz-Anderson, V., Garg, A., & Fine, L. J. (1993). Revised NIOSH equation for the design and evaluation of manual lifting tasks. Ergonomics, 36(7), 749-776.
Candidate Profile
Profile: Master 2 or final-year engineering student in robotics, biomechanics, control or computer science.
Programming : A strong background in Python is required, C++ is an asset, experience with conda environments too.
Software : Experience with the Linux environment and Git and Github. Experience with a pull request on open-source projects or willing to. Experience with Pytorch is a plus.
Biomechanics/Robotics : Good understanding of multi-body dynamics and mechanical modeling. A background in biomechanics is a significant plus.
Mathematics : Knowledge of linear algebra. Familiarity with numerical optimization and optimal control concepts is highly desirable.
Language : Good oral and written communication skills in English are mandatory. French is a plus
Autonomy and Motivation : The candidate should be motivated, proactive, and able to work independently on a challenging research topic.