pyorerun icon indicating copy to clipboard operation
pyorerun copied to clipboard

Rerun c3d files, biorbd, OpenSim models from python.

Pyorerun

Maintainability Maintainability Conda Version

We can rerun c3d files and display their original content. And also animate biorbd models from the pyomeca organization.

conda install -c conda-forge pyorerun rerun-sdk=0.24.1 pip install trc-data-reader # for .trc file support conda install opensim-org::opensim # not a mandatory dependency conda install -c conda-forge biobuddy=0.2.0 # not a mandatory dependency

Rerun .c3d - As simple as that

import pyorerun as prr

prr.c3d("example.c3d")

https://github.com/pyomeca/pyorerun/assets/40755537/3cdd39f6-d88d-4891-8ffd-d14c93a9c94e

NOTE: Only handle markers, force plates, floor for now

Notebook demo

https://github.com/pyomeca/pyorerun/assets/40755537/c9448d69-c891-4362-821b-68449684eb64

Rerun Biorbd Models

from pyorerun import BiorbdModel, PhaseRerun

nb_frames = 10
nb_seconds = 0.1
t_span = np.linspace(0, nb_seconds, nb_frames)

model = BiorbdModel("models/Wu_Shoulder_Model_kinova_scaled_adjusted_2.bioMod")
q = np.zeros((model.model.nbQ(), nb_frames))

viz = PhaseRerun(t_span)
viz.add_animated_model(model, q)
viz.rerun("msk_model")

https://github.com/pyomeca/pyorerun/assets/40755537/9341707a-4f44-4dbd-8ece-9a16e1500e9a

Play with joint DoFs q, Live.

from pyorerun import LiveModelAnimation


model_path = "models/Wu_Shoulder_Model_kinova_scaled_adjusted_2.bioMod"
animation = LiveModelAnimation(model_path, with_q_charts=True)
animation.rerun()

From source

conda install -c conda-forge ezc3d rerun-sdk=0.24 trimesh numpy biorbd pyomeca tk imageio imageio-ffmpeg

if you want to use the OpenSim, you also need to install separately: conda install -c opensim-org::opensim

if you want to use the BioBuddy, you also need to install separately: conda install -c conda-forge biobuddy=0.2.0 or pip install biobuddy==0.2.0

if you want to use the .trc file support, you also need to install separately: pip install trc-data-reader

Then, ensure it is accessible in your Python environment by installing the package:

pip install . or python setup.py install

On Linux

Rerun should work out-of-the-box on Mac and Windows, but on Linux, you need first to run:

sudo apt-get -y install \
    libclang-dev \
    libatk-bridge2.0 \
    libfontconfig1-dev \
    libfreetype6-dev \
    libglib2.0-dev \
    libgtk-3-dev \
    libssl-dev \
    libxcb-render0-dev \
    libxcb-shape0-dev \
    libxcb-xfixes0-dev \
    libxkbcommon-dev \
    patchelf

Citing

@software{pierre_puchaud_2024_11449215,
  author       = {Pierre Puchaud, Mickael Begon},
  title        = {pyomeca/pyorerun: CaffeineStrips},
  month        = jun,
  year         = 2024,
  publisher    = {Zenodo},
  version      = {1.2.4},
  doi          = {10.5281/zenodo.11449215},
  url          = {https://doi.org/10.5281/zenodo.11449215}
}

Contributing

Contributions are welcome. I will be happy to review and help you to improve the code.