Visualizer#

Visualization utilities using Polyscope

Interactive 3D visualization for simulations via Polyscope. Supports: - Real-time visualization of tetrahedral meshes - Playback controls (play/pause, step, reset) - Display of energy values and material properties - Offline frame capture - Volume mesh rendering

class diffsim.visualizer.PolyscopeVisualizer(simulator, window_name='DiffSim Physics Simulator')[source]#

Bases: object

Interactive 3D visualizer for physics simulations using Polyscope

This class provides real-time visualization of tetrahedral mesh deformation during physics simulation. It displays the mesh as a volume with proper shading, shows simulation statistics, and provides interactive controls.

Features:

  • Interactive controls: Play/pause, step-by-step execution, reset

  • Real-time statistics: Time, step count, energy values

  • Material display: Shows Young’s modulus and Poisson’s ratio

  • Solver parameters: Displays time step, gravity, etc.

  • Volume rendering via Polyscope

Parameters:
  • simulator (Simulator) – The simulator instance to visualize

  • window_name (str) – Window title (default: “DiffSim Physics Simulator”)

simulator#

Reference to the simulator

Type:

Simulator

mesh#

Polyscope volume mesh object

Type:

ps.VolumeMesh

is_playing#

Whether simulation is currently running

Type:

bool

show_wireframe#

Whether to show mesh edges

Type:

bool

Example

>>> sim = Simulator(mesh, material, solver)
>>> viz = PolyscopeVisualizer(sim)
>>> viz.run(max_steps=1000, steps_per_frame=5)
__init__(simulator, window_name='DiffSim Physics Simulator')[source]#

Initialize visualizer

Parameters:
  • simulator – Simulator object

  • window_name – window title

update()[source]#

Update visualization with current simulation state

run(max_steps=None, steps_per_frame=1)[source]#

Run interactive visualization loop

Parameters:
  • max_steps – maximum number of simulation steps (None for infinite)

  • steps_per_frame – number of simulation steps per frame

animate_offline(num_steps, output_frames=None)[source]#

Run simulation and optionally save frames

Parameters:
  • num_steps – number of simulation steps

  • output_frames – if not None, save frames to this directory