gizmobench

Strange Attractor Lab

Choose the Lorenz or the Rössler system, set its three parameters, two starting points and an RK4 step from 0.0001 to 0.02, and integrate up to 100,000 steps. Both starts run in lockstep with the same parameters and time base, so beside the rotatable 3D trajectory and the x, y and z time series the page plots the distance between them over time, on a log scale. If either path becomes non-finite or passes 1,000,000 in magnitude in any coordinate, the run stops at the last finite pair and labels its output partial instead of drawing numbers that no longer mean anything. A step check reruns start A over the first time unit at half the step to show the local step error, and every run exports as a PNG or SVG figure, a full-precision CSV of every sample, or a settings file you can open again.

inputsRK4, two starts

dx/dt = σ(y - x) dy/dt = x(ρ - z) - y dz/dt = xy - βz

Parameters
0 to 100
0 to 500
0 to 20
Start A
-1000 to 1000
-1000 to 1000
-1000 to 1000
Start B (nearby)
-1000 to 1000
-1000 to 1000
-1000 to 1000
0.0001 to 0.02
1 to 100,000
trajectoryx-z view

Preparing the example trajectory.

AB
t 0

Preparing the example trajectory.

Steps run
not run yet
Model time
0
Status
waiting
A to B separation
none yet
Step check
needs one completed step

Separation is the straight-line distance between A and B at the same t, plotted on a log scale: it shows how two nearby starts drift apart at this step, not a Lyapunov exponent. The step check reruns A with half the step up to the step nearest t 1 (or the end of a shorter run) and reports the largest coordinate change.

x, y and z against t

Separation |A - B|, log scale

The text summary appears once the example trajectory is ready.

Samples

Up to eleven evenly spaced samples of the run shown, first and last included. Download CSV for every sample at full precision.

SteptA xA yA zB xB yB zSeparation

Examples

  • Lorenz, classic chaoticσ 10, ρ 28, β 8/3 from (1, 1, 1); B starts 0.000001 higher in z; 4,000 steps of 0.01Lorenz
  • Lorenz, ρ 14: settles to a fixed pointBoth starts spiral in toward (5.8878, 5.8878, 13), a fixed point of the flowLorenz
  • Rössler, classic banda 0.2, b 0.2, c 5.7 from (1, 1, 1); 20,000 steps of 0.01Rössler
  • Rössler, a 0.5: the path escapesThe path leaves the band and passes 1,000,000 in magnitude, so the run stops and labels its output partialRössler

Worked checks

Computed by this page from the same functions that run your trajectories.

  • Lorenz derivativeσ 10, ρ 28, β 8/3 at (1, 1, 1)(0, 26, -1.6667)
  • Rössler at the origina 0.2, b 0.2, c 5.7 at (0, 0, 0)(0, 0, 0.2) = (0, 0, b)
  • Step halvingone RK4 step of 0.01 against two of 0.005 from (1, 1, 1)agree within 1e-5 (largest difference 2.1e-6)
  • Lorenz origin1,000 RK4 steps of 0.01 from (0, 0, 0)stays exactly (0, 0, 0)

Common questions

What is a strange attractor?
It is the set of states that the trajectories of a chaotic system approach and then wander over forever, without settling to a single point or a simple repeating loop, while paths that start close together separate quickly. The Lorenz system with σ 10, ρ 28 and β 8/3 and the Rössler system with a 0.2, b 0.2 and c 5.7 are the classic examples, and this page draws numerical trajectories of both. A drawing illustrates the attractor; it is not a proof that a system is chaotic.
What are the Lorenz equations?
dx/dt = σ(y - x), dy/dt = x(ρ - z) - y and dz/dt = xy - βz, which Edward Lorenz published in 1963 as a heavily simplified model of convection. Here σ can be 0 to 100, ρ 0 to 500 and β 0 to 20, and parameters, starts and the step can be typed as fractions such as 8/3. At the classic values the derivative at (1, 1, 1) is (0, 26, -5/3), and the origin is a fixed point: the Worked checks list on the page computes both with the same code that runs your trajectories. With ρ 14 instead of 28, both starts spiral in to a fixed point near (5.8878, 5.8878, 13).
What are the Rössler equations?
dx/dt = -y - z, dy/dt = x + ay and dz/dt = b + z(x - c). Here a can be -1 to 1, b 0 to 10 and c 0 to 50; the classic band uses a 0.2, b 0.2 and c 5.7. At the origin the derivative is (0, 0, b), so unless b is 0 a path started there moves off in z at once. In the example with a 0.5, the path from (1, 1, 1) leaves the band and grows until the page stops the run at 1,000,000.
Why do two nearby starts end up far apart?
In a chaotic system small differences grow quickly, on average exponentially, until they are as large as the attractor itself. In the classic Lorenz example start B is 0.000001 higher in z than start A; with a step of 0.01 their separation first exceeds 1 at t 22.98 and reaches a peak near 48.8 by t 40. The separation plot uses a log scale, where exponential growth would show as a straight rising line. The page plots this distance; it does not estimate a Lyapunov exponent from it.
How accurate is the RK4 integration?
Classical fourth-order Runge-Kutta is accurate over short times and the Step check readout shows how much: it reruns start A with half the step up to the step nearest t 1 and reports the largest coordinate change. For the classic Lorenz start that change is 0.0033 at step 0.02, 7.8e-5 at 0.01, 1.9e-6 at 0.005 and 4e-9 at 0.001. The accuracy does not carry to long horizons: run to t 40 at those four steps, the same start ends at x 2.4954, -8.7368, 1.3212 and 5.2599, because a chaotic system magnifies every rounding and step error.
Why did my run stop early and say Partial?
The page stops at the first step where either trajectory has a coordinate that is non-finite or beyond 1,000,000 in magnitude, and keeps only the finite pairs before that step. That happens when a path really escapes, as in the Rössler example with a 0.5, which passes 1,000,000 at step 3,044 of 5,000, or when the step is too large for fast dynamics: Lorenz with σ 100 and ρ 500 from (1, 1, 1) fails at step 3 with a step of 0.02 and at step 10 with 0.01, but runs to t 20 with 0.005. The status, the text summary, the figures and the CSV all say where the run stopped.
Can I rotate the plot and follow the path without a mouse?
Yes. Focus the plot and use the arrow keys to turn and tilt by 5 degrees, or 15 with Shift, and Home to return to the 3D view; the Turn and Tilt buttons and the 3D, x-y, x-z and y-z presets do the same, and dragging works with a mouse or a finger. Run traces the new path over a few seconds unless your device asks for reduced motion, in which case the whole path is drawn at once. Nothing moves when the page loads, the trace pauses while the tab is hidden, and the Time shown slider moves through the run by hand. A text summary and a table of up to eleven evenly spaced samples describe the same run.
What do the exports contain, and does the page remember my settings?
Download CSV writes every retained sample at full double precision, with columns step, t, ax, ay, az, bx, by, bz and separation, below # lines that record the system, parameters, starts, step, requested and completed steps and whether the run was complete or partial. Download PNG and Download SVG save one figure with a header naming the settings and status, the trajectory in the current view, the time series and the separation plot; the figures draw at most 20,000 points per trajectory, so longer runs are drawn from every k-th sample while the CSV keeps them all. Download settings saves a small JSON file that Open settings loads back into the inputs, and a file that fails validation changes nothing. Once you change a value or the view, the latest valid inputs and view are also kept in this browser for your next visit.

Finite-precision numerical trajectories demonstrate mathematical models, not weather prediction or proof of chaos. Long-horizon paths are sensitive to step and initial state; no Lyapunov-exponent or stability certification.