Interactive Demos

Motion Planner (RRT)

A Rapidly-exploring Random Tree (RRT) planner. In 2D, place obstacles and run the planner to grow a tree toward the goal. In 3D, rotate the scene with the mouse and plan through volumetric obstacles.

Select a mode, place obstacles, then click Plan!
Start
Goal
Obstacle
RRT tree
Found path

Distance Field (Fast Marching Method)

The Fast Marching Method propagates a wavefront from the start through free space. Place a goal and click Run FMM; the path is traced by gradient descent on the resulting distance field. In Query mode, click anywhere to trace a path back to the start.

Place source (★), draw obstacles, then click Run FMM.
Start
Goal
Near (distance field)
Far
Obstacle
Optimal path

Safety Filter (Control Barrier Function)

Up to four robots navigate to a goal with a proportional controller. A Control Barrier Function (CBF) safety filter solves a QP each step that modifies the control input, keeping every robot outside the obstacles and clear of the other robots. Obstacles come in three shapes (circle, ellipse, and a rounded square from a 3‑norm superlevel set), each with its own smooth barrier function. In Start mode, click to add or remove agents; in Goal mode, place up to four goals; in Obstacle mode, pick a shape and click to place it. Each agent heads to the goal of its color. Toggle the filter to compare behavior, or change the class‑𝒦 gain α to set how aggressively safety is enforced.

3.0
Add agents (Start), goals (Goal), and obstacles (Obstacle — pick a Shape), then click Run. Each agent heads to the goal of its color.
Agents (up to 4)
★ Goal
Obstacle
Nominal control
CBF-filtered control

Sheaf Diffusion (Opinion Dynamics)

Each node is an agent holding an opinion (its phase, shown as color). Edges carry restriction maps that encode what agreement means between neighbors; here that is a desired phase offset. Sheaf diffusion minimizes the Dirichlet energy, driving the agents toward a globally consistent state. Toggle Async vs Sync to compare update strategies, or enable Obstruction to introduce a cohomological inconsistency that prevents full consensus. Click a node to pin its opinion as a fixed leader, or click an edge to place the obstruction there. The Vector (ℝⁿ) view shows a heterogeneous cellular sheaf whose stalks have different dimensions: ℱ(v) ≅ ℝ² and ℱ(e) ≅ ℝ² but ℱ(u) ≅ ℝ, joined by rectangular restriction maps (an anisotropic 2×2 map at v, a ℝ→ℝ² embedding at u). Diffusion still drives the section to agree in the edge stalk.

Click Run to start. Click a node to pin it, or click an edge to place the obstruction. Toggle Async/Sync.
Agent opinion (hue = phase)
Edge in agreement
Edge in disagreement
Pinned node