Physics Simulation for Points, Meshes, Splats and more
******************************************************
.. _physics_simulation:
.. image:: ../img/simplicits.gif
.. raw:: html
Simulating 3D Gaussian Splats, point clouds and meshes directly, without any geometric preprocessing.
Traditionally, physics simulation algorithms operate on carefully curated volumetric 3D representations.
While Kaolin supports :ref:`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 :py:mod:`kaolin.physics` module and integrate state-of-the art Simplicits method in :py:mod:`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 :ref:`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 :py:mod:`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: