A Voronoi diagram partitions the pane into cells, one per seed point, where every location is closer to its own seed than to any other. Real brittle-fracture cracks branch and settle into similar convex, irregular regions as stress relieves at each crack front, which is why Voronoi cells are the standard stand-in for glass/ceramic shatter in games and VFX.
This companion drives the seed layout from actual impact-fracture behaviour instead of a flat random grid: real glass struck at a point develops radial cracks running outward from the impact (driven by bending stress on the far face) plus a denser, tighter cluster right at the strike, with crack spacing widening away from the point of impact as stress falls off. The seed generator reproduces this with two layers:
seed density(r) ∝ 1 / (r_from_impact + ε)
radial seed count N ≈ base · force^0.4 (Oka–Rhee: crack count scales
with impact energy to roughly
the 2/5 power)
Cells are then computed by half-plane clipping: every seed's Voronoi cell is the pane intersected with the half-plane closer to that seed than each nearby rival seed, in ascending distance order.
- Tempered — tight jitter, high base density: many small, near-uniform cells ("dicing"), matching how tempered glass shatters into small low-injury pieces.
- Annealed — wide jitter, lower base density: few large, jagged cells, matching how untempered glass breaks into big sharp shards.
- Impact force — raises the radial seed count near the strike (more, smaller shards close to impact) and the outward scatter speed of every shard once it breaks free.
- Click point — becomes the crack origin: seed density and shard scatter direction are both computed relative to it, not the pane centre.