Skip to content

Enekoassets/bvhTools

Repository files navigation

bvhTools is a Python library to work with BVH (Biovision Hierarchy) files. It enables to load, modify and write BVH files in very few lines of code. This project is being developed in the context of a phD, so the library contains many BVH operations that I need to make often.

🌟 Functionalities

  • 📖/✏️ Reading and writing BVH files
  • 🏃 Performing Forward Kinematics
  • 🤚 Manipulating animations (moving, rotating, mirroring)
  • 🤸 Resampling and editing animations
  • 🔪 Slicing (dividing and joining)
  • 💀 Editing the skeleton
  • 👀 Viewing animations
  • 📊 Calculating metrics
  • 📐 Converting between angle representations
  • 📋 Writing data to CSV files
  • 🖥️ CLI interface functions

📋 Documentation

The documentation to use this library can be found here.

🧰 Installation

To install and use bvhTools, just install it with pip.

pip install bvhTools

The python package is still work in progress, so it may have some problems. In that case, you can open an issue or a pull request on GitHub.

If you find bvhTools useful, please give it a star! :)

🗺️ Roadmap

Functionality Status
Read / Write 🟢 Completed
Forward Kinematics 🟢 Completed
Basic visualization with matplotlib 🟢 Completed
Slice / Join animations 🟢 Completed
Rotate animations 🟢 Completed
Move animations 🟢 Completed
Skeleton Standing on floor 🟢 Completed
Write to CSV 🟢 Completed
Scale skeletons 🟢 Completed
Remove limbs 🟢 Completed
Print skeleton and motion summary 🟢 Completed
Get hierarchy and joint information 🟢 Completed
Metrics: speeds, accelerations, jerks 🟢 Completed
Metrics: average speeds, accelerations, jerks 🟢 Completed
Metrics: average pose 🟢 Completed
Metrics: foot contact masks 🟢 Completed
CLI functions for simple and fast editing 🟢 Completed
Convert Scipy angles to 6D representation 🟢 Completed
Resampling FPS (upsample, downsample by weighted average) 🟢 Completed
Advanced visualization with raylib 🟢 Completed
Mirror Skeletons 🟢 Completed
Documentation 🔄 Continuous
Edit rest pose 🐣 Planned
Metrics: spectral analysis and fast fourier transform 🐣 Planned
Metrics: foot sliding masks 🐣 Planned
Machine learning pipeline integration 🧑‍💻 Active
- ML pipeline: automatic dataset loading 🟢 Completed
- ML pipeline: data normalization 🟢 Completed
- ML pipeline: attaching labels 🟢 Completed
- ML pipeline: attaching other data modalities 🐣 Planned
- ML pipeline: windowing and lazy views 🟢 Completed
- ML pipeline: data splits 🟢 Completed
- ML pipeline: pytorch integration 🟢 Completed
- ML pipeline: materializing datasets 🟢 Completed

Feel free to suggest more functionalities that you think might be helpful! Code contributions are also welcome!

About

A python package to work with BVH files, centered on machine learning.

Topics

Resources

License

Stars

Watchers

Forks

Contributors