Demos
NovaPhy includes a comprehensive set of demos using Polyscope for 3D visualization.
Rigid Body
| Demo |
Description |
Physics |
demo_pyramid_ball.py |
4-3-2-1 pyramid with sphere projectile; --solver {semi_implicit,featherstone,xpbd} |
Free body / Featherstone / XPBD |
demo_friction_ramp.py |
Boxes on 30-degree ramp, different friction |
Coulomb friction |
demo_wall_break.py |
5x5 wall hit by sphere |
Dynamic collision |
demo_dominoes.py |
20 dominoes chain reaction |
Angular impulse |
demo_unified_collision.py |
Gallery of all collision pairs |
staged narrowphase |
demo_pyramids_numerous.py |
Stress test: many pyramids |
Sequential Impulse |
xpbd/demo_xpbd_stack.py |
Supported wall stack |
XPBD constraints |
xpbd/demo_xpbd_weld.py |
Welded bodies |
XPBD weld constraint |
Articulated Body (Featherstone)
| Demo |
Description |
Physics |
multibody_demo/demo_newtons_cradle_pendulum.py |
Newton's cradle with hinge suspension |
Revolute joints + contacts |
multibody_demo/demo_rope.py |
15-link chain released from horizontal |
Multi-joint chain |
multibody_demo/demo_wrecking_ball.py |
Chain pendulum smashing a box tower |
Joint + rigid contacts |
multibody_demo/demo_seesaw.py |
Box dropped onto revolute seesaw |
Joint + impact |
multibody_demo/demo_motor_arm.py |
Motor-driven arm sweeping boxes |
Torque-level PD |
demo_100_robots.py |
Quadruped grid via Featherstone / XPBD |
SolverFeatherstone / SolverXPBD |
Robotics & Control
| Demo |
Description |
Physics |
demo_ik_arm.py |
Damped-least-squares IK |
Analytical Jacobian |
demo_basic_urdf.py |
URDF loading smoke test |
URDF parser |
demo_robot_sim_pipeline.py |
URDF to USD full pipeline with torque control |
Featherstone + export |
demo_sensors.py |
Sensor system demo |
Sensor readings |
Fluid
| Demo |
Description |
Physics |
demo_dam_break.py |
Rectangular fluid block collapses |
PBF solver |
demo_fluid_box.py |
~8000 particles sloshing in a moving box |
PBF + domain bounds |
demo_ball_in_water.py |
Ball dropping into water |
Rigid-fluid coupling (Akinci) |
demo_fluid_coupling.py |
Boxes and spheres splashing into water |
PBF + Akinci + rigid collision |
demo_sph_fluid.py |
SPH fluid smoke / visualization demo |
SolverSPH CPU + optional CUDA |
IPC
| Demo |
Description |
Physics |
demo_ipc_stack.py |
Box stacking with guaranteed no-penetration |
IPC via libuipc (CUDA) |
VBD / AVBD
| Demo |
Description |
Physics |
vbd/demo_vbd_rigid.py |
CPU SolverVBD browser for restored demo3d contacts and supported joints |
SolverVBD rigid contacts, supported joints |
vbd/demo_vbd_soft.py |
CPU SolverVBD cloth scenes |
SolverVBD particle cloth |
Profiling
| Demo |
Description |
demo_performance_monitor.py |
Performance monitoring with --scene {rigid,fluid} |
Running Demos
# Install visualization dependency
pip install polyscope
# Run any demo
python python/demos/demo_pyramid_ball.py
# Some demos accept solver selection
python python/demos/demo_pyramid_ball.py --solver featherstone
# Profiling demo with options
python python/demos/demo_performance_monitor.py --scene rigid --measured-steps 120