Physics Simulation for Points, Meshes, Splats and more¶
Traditionally, physics simulation algorithms operate on carefully curated volumetric 3D representations.
While Kaolin supports Several Methods for construction of volumetric meshes, this
can introduce unnecessary complexity between 3D content and ability to simulate it. With Kaolin v0.16.0,
we introduce kaolin.physics module and integrate state-of-the art Simplicits method in kaolin.physics.simplicits
that allows running physics simulation on any point-sampled geometry, such as point clouds, meshes, as well as 3D Gaussian splats
(see here) and more.
The original publication for this method is: “Simplicits: Mesh-Free, Geometry-Agnostic Elastic Simulation.” Modi, Vismay, Nicholas Sharp, Or Perel, Shinjiro Sueda, and David IW Levin. SIGGRAPH (TOG) 2024.
Examples and Tutorials¶
See example notebooks under examples/tutorial/physics, including the following.
Easy Physics Simulation¶
Notebook: examples/tutorial/physics/simplicits_easy_api.ipynb.
Set up and view a physics simulation in a jupyter notebook in just a few lines of code.
Interactive Physics Simulation¶
Notebook: examples/tutorial/physics/simplicits_interactive.ipynb.
Add interactive physics with mouse interaction directly in a Jupyter Notebook, leveraging Kaolin Jupyter 3D Viewer.
Low-Level Physics Utilities¶
Notebook: examples/tutorial/physics/simplicits_low_level_api.ipynb.
Look under the hood at the low-level kaolin.physics utilities, including energy functions and unwrapped simulation loops.
Simplicits Background¶
Refer to original publication for details. Briefly, to enable representation-agnostic simulation, Simplicits method first samples any input geometry:
Next, the method runs training to learn dominant degress of freedom for this object:
Finally, many interactive simulations can be run in the reduced space, with convenience method returning translations of any original location on the original geometric shape: