Chip-Firing Simulator

Vertices 6 Edges 6 Genus 1 deg(D) 0 Selected 0 positive zero debt Chip-firing preserves deg(D).
Graph │
Mode │ │ Selected │ Divisor │ Dhar Select one or more starting vertices
Controls

Modes

Select modeClick a vertex, or box-drag to select several; selection persists until you change it
Pan modeDrag canvas to pan; drag vertices to reposition
Build modeDouble-click canvas to add vertex; Shift-drag vertex→vertex to add edge; right-click vertex or edge to delete
Mouse wheel / pinchZoom in every mode, centered on the pointer or gesture

Chip-firing

Double-click vertexFire that vertex (send one chip along each edge)
Shift + double-click vertexBorrow at that vertex (pull one chip from each neighbor)
Select + Enter / Fire SelectedFire all selected vertices simultaneously
Shift + Enter / Borrow SelectedBorrow at all selected vertices simultaneously
+1 / −1 chipChange every selected vertex; works well on touch screens
Right-click vertexContext menu: add / remove / set chips (Pan & Select modes)
Zero DivisorSet all vertices to 0 chips
Canonical DivisorSet each vertex to deg(v) − 2
UndoUndo last chip or graph change (all operations supported)

Dhar's burning algorithm

Select vertices + B / BurnStart the fire from every selected vertex; a single starting vertex also tests whether the divisor is q-reduced. When the burn stops, the unburnt vertices become the selected set
Clear BurnRemove burn animation and highlighting

JSON import / export

Import JSONLoad a graph from Graph / Finite State Machine Designer JSON format
Export JSONExport current graph to the same format

Divisor convention. Firing is always allowed here, even when a vertex has fewer chips than its degree; negative values record debt. The total degree of the divisor is invariant.

JSON format compatible with Graph / Finite State Machine Designer (GFSM Designer).