One parameter, three symmetric equations
The Thomas attractor, introduced by physical chemist Rene Thomas in 1999, is one of the simplest-looking chaotic systems ever written down. Its three coupled ODEs are cyclic in x, y, z -- rotate the three variables and the equations map onto themselves -- and every nonlinearity is a single sine function:
x' = sin(y) - b*x y' = sin(z) - b*y z' = sin(x) - b*z
There is exactly one free parameter, b, which plays the role of a linear damping/dissipation coefficient. Because the system is invariant under cyclically permuting (x, y, z), the resulting attractor -- when it exists -- has a threefold rotational symmetry: it looks the same after relabelling the axes, which gives Thomas-attractor renders their distinctive braided, lattice-like structure rather than the two-winged look of the Lorenz attractor.
Dissipation and why trajectories don't fly apart
Whether a flow like this contracts phase-space volume, and hence can support a bounded attractor at all, is governed by the divergence of the vector field. Here div(F) = -3b, a constant, independent of position. For b > 0 the divergence is uniformly negative: every infinitesimal blob of nearby initial conditions shrinks in volume as it evolves, so trajectories cannot spread out to infinity, but they also cannot generically converge to a single point unless a fixed point is actually stable there. That combination -- volume-contracting overall, yet not collapsing to a point -- is exactly the geometric signature of a strange attractor: an infinitely folded, fractal object of zero volume that trajectories are drawn onto and wander across forever without ever exactly repeating.
From fixed point to chaos as b shrinks
The single knob b sweeps the system through a textbook route into chaos. At large b (strong damping, roughly b > 1), the origin and any nearby fixed points are stable and everything spirals down to rest -- boring, but a useful sanity check. As b is lowered, the fixed points lose stability through a Hopf bifurcation and a stable limit cycle appears -- a single closed periodic loop. Lower b further, past roughly b ~ 0.32-0.20 depending on exactly where you look, and the periodic orbit undergoes a cascade of period-doubling bifurcations, each doubling the number of loops before the trajectory repeats, accumulating faster and faster until the period becomes effectively infinite and the motion never exactly repeats -- full chaos. The commonly cited "classic" chaotic regime sits around b ~ 0.19-0.20, which is the default most renders (including this site's) use because it produces the fullest, most recognisable lattice structure.
b ~ 1.0 -> stable fixed point, trajectory spirals to rest b ~ 0.5 -> stable limit cycle, one closed loop b ~ 0.32 -> period-doubling cascade begins b ~ 0.19 -> fully chaotic, fractal strange attractor
Rendering it: RK4 and slow accumulation
Because the vector field only involves sine and a linear term, it is cheap to evaluate, so a fourth-order Runge-Kutta step at a small fixed dt (0.01-0.05) tracks the trajectory accurately over the tens of thousands of steps needed for the attractor's fractal structure to fill in visually. Unlike a map like the Barnsley fern, there is no closed-form shortcut -- every point on the attractor is only reachable by actually integrating the ODE forward from a starting point, which is why these renders always show one continuously growing trail rather than a scattering of independently placed dots. Colour is typically mapped to instantaneous speed or to time-since-start, which is what turns the otherwise monochrome lattice into a visually readable braid showing which regions the trajectory revisits often.
Frequently asked questions
Why does the Thomas attractor look so different from the Lorenz attractor?
The Thomas system's equations are cyclically symmetric in x, y and z, so the attractor inherits a threefold rotational symmetry and forms an interwoven, lattice-like braid. The Lorenz system has no such symmetry between its variables, which is why its attractor forms the familiar two-lobed butterfly shape instead.
What does the parameter b physically represent?
b is a linear damping coefficient applied uniformly to all three variables. It sets the divergence of the flow (-3b), which controls how strongly nearby trajectories are pulled together; sweeping b downward takes the system from a stable fixed point through a periodic limit cycle to full chaos.
Is the Thomas attractor sensitive to its starting point?
Yes, in the classic chaotic regime around b ~ 0.19 it displays the hallmark of chaos: two trajectories starting an imperceptible distance apart diverge exponentially and end up on completely different paths within the attractor, even though both stay confined to the same overall fractal shape forever.
Try it live
Everything above runs in your browser — open Thomas Attractor and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.
▶ Open Thomas Attractor simulation