Why brittle fracture doesn't look like a straight crack
Drop a pane of glass and it does not split into two neat halves — it shatters into a jagged mosaic of irregular chunks. Simulating that convincingly turns out to have a surprisingly elegant solution: Voronoi tessellation. Scatter a set of random seed points across the object, and partition the whole shape into cells where every point in a cell is closer to its own seed than to any other seed. The result is a network of straight-edged, irregularly sized polygons that already looks uncannily like the fracture pattern of tempered glass, dried mud, or a cracked ceramic glaze — because all three arise from the same underlying competition-for-territory geometry.
cell(seed_i) = { points p : distance(p, seed_i) ≤ distance(p, seed_j) for every other seed j }
# the boundary between cell_i and cell_j is exactly the perpendicular
# bisector of the segment joining seed_i and seed_j
Pre-fracturing an object into Voronoi cells before the simulation even starts is a well-known trick in real-time graphics and games: the object renders as one solid piece until impact, and the moment a collision exceeds a strength threshold, the pre-computed cell boundaries become the crack lines and the cells become independent rigid bodies.
Where the seeds come from matters
A uniform random scatter of seeds gives fragments of roughly similar size, which suits ceramic or glass. Clustering seeds more densely near the impact point and sparser further away produces the classic radial shatter pattern real glass shows — many small fragments near the point of contact, fewer, larger shards further out — because that mirrors how impact energy actually dissipates: it is highest right at the point of contact and falls off with distance, so the material there needs to relieve more strain energy and does so by fracturing more finely.
Griffith's criterion: why cracks need a minimum size to grow
The physics that actually governs whether a crack propagates comes from Griffith fracture theory (1921). A crack releases stored elastic strain energy as it grows, but creating new crack surface costs energy too, proportional to the material's surface energy and the new area exposed. Griffith showed a crack only propagates once it is long enough that the elastic energy released by extending it exceeds the energy needed to create the new surface — below a critical length, cracks are self-arresting; above it, they run away catastrophically.
σ_f = √( 2 E γ_s / (π a) ) σ_f = fracture stress E = Young's modulus of the material γ_s = surface energy per unit area a = half-length of the pre-existing crack
This equation explains a famously counter-intuitive fact: brittle materials fail at stresses far below what their atomic bond strength alone would predict, because real materials always contain microscopic flaws, and the flaw acts as a stress concentrator — Griffith's formula shows fracture stress falls with the inverse square root of flaw size, so even microscopic cracks dramatically weaken a material's practical strength.
Brittle versus ductile: why some materials shatter and others bend
Glass, ceramics and cast iron are brittle: they store almost all impact energy elastically until a crack nucleates, then release it almost instantly with little plastic deformation to absorb the shock — hence shattering. Metals like steel or aluminium are usually ductile: dislocations glide through the crystal lattice under stress, absorbing energy as permanent bending and stretching before any crack can form, which is why a dropped steel wrench dents rather than shatters. Temperature matters too — many metals that are ductile at room temperature become brittle when cold enough that dislocation motion is thermally suppressed, a transition responsible for several historic structural failures in cold weather, including Liberty ship hull fractures in World War II.
From tessellation to simulation: fragments as rigid bodies
Once the crack network is drawn, each Voronoi cell becomes an independent rigid body with its own mass (proportional to its area) and its own collision shape. The impact imparts an impulse that is distributed to the fragments nearest the contact point, each fragment inherits a share of the impact's momentum and angular momentum, and from that point on the shattering is just standard rigid-body dynamics — every fragment obeying Newton's laws independently, bouncing off its neighbours and the ground exactly like any other physics-engine object.
Frequently asked questions
Why use Voronoi cells instead of just drawing random cracks?
Voronoi tessellation automatically produces convex, non-overlapping fragments whose boundaries are geometrically guaranteed to meet cleanly, which is exactly the shape a rigid-body physics engine needs to simulate each piece independently after the break. Hand-drawn cracks would need extra work to guarantee valid, gap-free fragment geometry.
What decides whether a material shatters or bends on impact?
Whether the material is brittle or ductile. Brittle materials like glass and ceramics store energy elastically and release it almost instantly through crack propagation with little plastic deformation; ductile materials like most metals absorb impact energy through dislocation motion and bend or dent before any crack can form.
Why do real fractures have more small fragments near the impact point?
Impact energy is highest right at the point of contact and dissipates with distance, so the material nearest the impact needs to relieve more strain energy, and it does that by fracturing into more, smaller pieces. Seeding the Voronoi points more densely near the impact reproduces this radial pattern.
Try it live
Everything above runs in your browser — open Solid Body Fracture and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.
▶ Open Solid Body Fracture simulation