A C++ library with Python bindings for reading, writing, and manipulating common animation particle formats like PDB, BGEO, and PTC.
Partio is a C++ library with Python bindings designed for reading, writing, and manipulating common particle formats used in animation and visual effects, such as PDB, BGEO, and PTC. It abstracts particle data models to provide efficient access to attributes across different file formats, solving the problem of inconsistent particle data handling in animation pipelines.
Animation and visual effects developers, graphics programmers, and technical artists who work with particle simulation data and need to integrate or convert between various particle file formats.
Developers choose Partio for its performance-optimized data access, support for industry-standard particle formats, and extensible architecture that allows adding custom readers and writers, making it a reliable tool for animation pipelines.
C++ (with python bindings) library for easily reading/writing/manipulating common animation particle formats such as PDB, BGEO, PTC. https://wdas.github.io/partio
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports industry-standard animation formats like PDB, BGEO, and PTC, enabling seamless conversion and integration in VFX pipelines, as highlighted in the Key Features.
Provides SIMD functions and optimized iterators for efficient linear operations over particle data, with the README emphasizing tips like caching attributes and using dataAsFloat().
Allows adding custom file format support via a simple interface in the io/ directory, making it adaptable to proprietary formats, as described in the Backends section.
Includes SWIG-based Python bindings, facilitating integration into Python-based tools and workflows common in animation studios, per the Source code overview.
Offers readHeaders() for minimal data reading and readCached() for shared access in multi-threaded environments, optimizing memory usage for large datasets.
The README admits documentation is 'the start of' a manual and tests are lacking ('I need more'), which could hinder debugging and adoption for new users.
Relies on CMake and a custom Makefile, with the README providing only a basic 'impatient building guide'; this might be challenging on non-Unix systems or for those unfamiliar with these tools.
Primarily targets particle formats used in animation and VFX, so it's not suitable for general-purpose data I/O or other domains without significant extension work.