This simulation combines a discrete network model with closed-form rheology. The left canvas builds a 10×10 grid of particles linked by Maxwell spring-dashpot bonds — including diagonal shear bonds — where each bond tracks a viscous extension Lv that evolves as dLv/dt = F/ηbond and relaxes on the timescale τR = η/G₀; particles are then integrated with an overdamped scheme (v = F/drag), and bond colour encodes local stress magnitude. The right canvas plots the analytical prediction of whichever rheological model you select — Maxwell, Kelvin-Voigt, or the Standard Linear Solid — for stress relaxation G(t), creep compliance J(t), or the frequency-dependent storage/loss moduli G′(ω) and G″(ω), letting you compare the spring-dashpot network directly against theory.
A 10×10 particle blob wired with Maxwell spring-dashpot bonds. Click-drag any node to deform it — bond colour shifts from blue (low stress) to red (high stress) as the network resists and then slowly relaxes, exactly like poking a real viscoelastic material.
Pick a rheological model (Maxwell / Kelvin-Voigt / SLS), then adjust Modulus G₀, Viscosity η, and the SLS spring ratio α. Switch between the Stress Relaxation, Creep and Frequency Sweep tabs to see the matching analytical curve, or jump straight to a material preset like Silly Putty or Silicone Gel.
The Pitch Drop Experiment at the University of Queensland has been running since 1927 — pitch shatters like glass under a hammer, yet each drop takes roughly a decade to fall, a real-world demonstration of the same long relaxation time τR you can dial in here with the viscosity slider.
Maxwell puts a spring and dashpot in series (dε/dt = σ/η + (1/G₀)·dσ/dt), giving exponential stress relaxation but unbounded creep. Kelvin-Voigt puts them in parallel (σ = G₀ε + η·dε/dt), giving retarded creep but no relaxation at all. The Standard Linear Solid (SLS) combines both, adding a spring-ratio parameter α that sets a finite plateau modulus G₀·α, so it relaxes and creeps to finite limits — closest to how real polymers like Silly Putty behave.
Every bond in the grid stores a viscous extension Lv that only catches up to the applied deformation over the relaxation timescale τR = η/G₀. A fast drag outruns Lv, so the bond behaves almost like a pure spring and snaps back elastically when released. A slow drag gives Lv time to creep and match the extension, so the bond offers little restoring force and the blob flows like a viscous fluid instead of springing back.
The Deborah number De = τR/tobs compares the material's relaxation time τR = η/G₀ to how long you observe or deform it. This simulator computes τR directly from your Viscosity η and Modulus G₀ sliders and displays it in the stats row alongside De evaluated at a one-second observation window. De > 1 means the material looks solid on that timescale; De < 1 means it looks like it's flowing.
Each bond's colour maps its instantaneous stress magnitude, computed as |G₀bond·(L − L₀ − Lv)| — the elastic force still stored once the viscous extension Lv is subtracted out. Blue bonds carry little stress, red bonds are near their stress limit. Because Lv keeps chasing the deformation, the colour pattern shows stress spreading through the grid and then dissipating as you drag and release.
Stress Relaxation applies a step deformation at t=0 and plots G(t), the modulus decaying as the model relaxes — exponentially for Maxwell, not at all for Kelvin-Voigt, and down to a finite plateau G₀·α for the SLS. Creep instead applies a constant stress and plots the compliance J(t), the strain response accumulating over time. Frequency Sweep drives the material sinusoidally at frequency ω and plots the storage modulus G′(ω) (elastic energy stored) and loss modulus G″(ω) (energy dissipated), which cross over near ω = 1/τR.