Package: pyPBD
PositionBasedDynamicsThis library supports the physically-based simulation of mechanical effects. In the last years position-based simulation methods have become popular in the graphics community. In contrast to classical simulation approaches these methods compute the position changes in each simulation step directly, based on the solution of a quasi-static problem. Therefore, position-based approaches are fast, stable and controllable which make them well-suited for use in interactive environments. However, these methods are generally not as accurate as force-based methods but still provide visual plausibility. Hence, the main application areas of position-based simulation are virtual reality, computer games and special effects in movies and commercials.The PositionBasedDynamics library allows the position-based handling of many types of constraints in a physically-based simulation. The library usesCMake,Eigen,json,pybind,glfw,hapPLYandAntTweakBar(only for the demos). All external dependencies are included.Furthermore we use our own library:Discregridto generate cubic signed distance fields for the collision detectionAuthor:Jan Bender,License: MITNewsWe added a Python interface:pyPBDOur newpaperabout a Direct Position-Based Solver for Stiff Rods uses the PositionBasedDynamics library. You can watch the videohere.PBD now has a collision detection based on cubic signed distance fieldsSPlisHSPlasH is our new open-source fluid simulator which uses the PositionBasedDynamics library to handle rigid-fluid coupling. It can be downloaded here:https://github.com/InteractiveComputerGraphics/SPlisHSPlasHOur newpaperabout adaptive signed distance fields uses the PositionBasedDynamics library. You can watch the videohere.DocumentationThe documentation can be found here:DocumentationForumOn ourGitHub discussionspage you can ask questions, discuss about simulation topics, and share ideas.Build InstructionsThis project is based onCMake. Simply generate project, Makefiles, etc. usingCMakeand compile the project with the compiler of your choice. The code was tested with the following configurations:Windows 10 64-bit, CMake 3.9.5, Visual Studio 2019Debian 9 64-bit, CMake 3.12.3, GCC 6.3.0.Note: Please use a 64-bit target on a 64-bit operating system. 32-bit builds on a 64-bit OS are not supported.Python Installation InstructionFor Windows and Linux targets there exists prebuilt python wheel files which can be installed usingpip install pypbdThese are available for different Python Versions. See also here:pyPBD.Latest Important Changesadded support of PLY filesadded Python bindingadded some XPBD constraintsadded OBJ exportadded substeppingadded DamperJointimproved implementation of slider and hinge joints/motorsCrispin Deul added the implementation of his paper Deul, Kugelstadt, Weiler, Bender, "Direct Position-Based Solver for Stiff Rods", Computer Graphics Forum 2018 and a corresponding demoadded collision detection for arbitrary meshes based on cubic signed distance fieldsadded implementation of the paper Kugelstadt, Schoemer, "Position and Orientation Based Cosserat Rods", SCA 2016removed Boost dependencyadded SceneGenerator.py to generate new scenarios easily by simple Python scriptingadded scene loader based on jsonadded collision detection based on distance functionsadded collision handling for rigid and deformable bodieshigh resolution visualization mesh can be attached to a deformable bodyadded support for Mac OS Xadded automatic computation of inertia tensor for arbitrary triangle meshesadded OBJ file loaderparallelized unified solver using graph coloringimplemented unified solver for rigid bodies and deformable solidsFeaturesPhysically-based simulation with position-based constraint handling.Simple interfaceDemosLibrary is free even for commercial applications.Collision detection based on cubic signed distance fieldsLibrary supports many constraints:Elastic rods:bend-twist constraintstretch-shear constraintCosserat constraintDeformable solids:point-point distance constraint (PBD & XPBD)point-edge distance constraintpoint-triangle distance constraintedge-edge distance constraintdihedral bending constraintisometric bending constraint (PBD & XPBD)volume constraint (PBD & XPBD)shape matchingFEM-based PBD (2D & 3D)strain-based dynamics (2D & 3D)Fluids:position-based fluidsRigid bodies:contact constraintsball jointball-on-line-jointhinge jointtarget angle motor hinge jointtarget velocity motor hinge jointuniversal jointslider jointtarget position motor slider jointtarget velocity motor slider jointball joint between rigid body and particledistance jointdamper jointimplicit springGeneric constraintsVideosThe following videos were generated using the PositionBasedDynamics library:Hierarchical hp-Adaptive Signed Distance FieldsDirect Position-Based Solver for Stiff RodsScreenshotsReferencesJ. Bender, M. Müller and M. Macklin, "Position-Based Simulation Methods in Computer Graphics", In Tutorial Proceedings of Eurographics, 2015J. Bender, D. Koschier, P. Charrier and D. Weber, ""Position-based simulation of continuous materials", Computers & Graphics 44, 2014J. Bender, M. Müller, M. A. Otaduy, M. Teschner and M. Macklin, "A Survey on Position-Based Simulation Methods in Computer Graphics", Computer Graphics Forum 33, 6, 2014C. Deul, T. Kugelstadt, M. Weiler, J. Bender, "Direct Position-Based Solver for Stiff Rods", Computer Graphics Forum, 2018C. Deul, P. Charrier and J. Bender, "Position-Based Rigid Body Dynamics", Computer Animation and Virtual Worlds, 2014D. Koschier, C. Deul, M. Brand and J. Bender, "An hp-Adaptive Discretization Algorithm for Signed Distance Field Generation", IEEE Transactions on Visualization and Computer Graphics 23, 2017M. Macklin, M. Müller, N. Chentanez and T.Y. Kim, "Unified particle physics for real-time applications", ACM Trans. Graph. 33, 4, 2014M. Müller, N. Chentanez, T.Y. Kim, M. Macklin, "Strain based dynamics", In Proceedings of the 2014 ACM
SIGGRAPH/Eurographics Symposium on Computer Animation, 2014J. Bender, D. Weber and R. Diziol, "Fast and stable cloth simulation based on multi-resolution shape matching", Computers & Graphics 37, 8, 2013R. Diziol, J. Bender and D. Bayer, "Robust Real-Time Deformation of Incompressible Surface Meshes", In Proceedings of ACM SIGGRAPH / EUROGRAPHICS Symposium on Computer Animation (SCA), 2011M. Müller and N. Chentanez, "Solid simulation with oriented particles", ACM Trans. Graph. 30, 4, 2011M. Müller, "Hierarchical Position Based Dynamics", In VRIPHYS 08: Fifth Workshop in Virtual Reality Interactions and Physical Simulations, 2008M. Müller, B. Heidelberger, M. Hennix and J. Ratcliff, "Position based dynamics", Journal of Visual Communication and Image Representation 18, 2, 2007M. Müller, B. Heidelberger, M. Teschner and M. Gross, "Meshless deformations based on shape matching", ACM Trans. Graph. 24, 3, 2005M. Macklin and M. Müller, "Position based fluids", ACM Trans. Graph. 32, 4, 2013Dan Koschier, Crispin Deul and Jan Bender, "Hierarchical hp-Adaptive Signed Distance Fields", In Proceedings of ACM SIGGRAPH / EUROGRAPHICS Symposium on Computer Animation (SCA), 2016Tassilo Kugelstadt, Elmar Schoemer, "Position and Orientation Based Cosserat Rods", In Proceedings of ACM SIGGRAPH / EUROGRAPHICS Symposium on Computer Animation (SCA), 2016M. Macklin, M. Müller and N. Chentanez, "XPBD: Position-based Simulation of Compliant Constrained Dynamics", Proceedings of the 9th International Conference on Motion in Games (MIG), 2016