← Back to Blog
4 min read

Lorenz Attractor: Chaos Theory Running Live on Your Desktop

How the Lorenz Attractor wallpaper simulates real differential equations on the GPU, why the butterfly never repeats, and what that means for your CPU.

In 1963, Edward Lorenz was trying to model atmospheric convection and made a mistake that turned out to be one of the more important discoveries in twentieth-century science. He restarted a simulation from what he thought was the same point — but he'd rounded off a number, 0.506127 to 0.506 — and the output diverged completely. What looked like a rounding error was actually revealing something fundamental about how some systems work.

That discovery became chaos theory. The equations became the Lorenz attractor. And the shape they trace — two looping wings that look vaguely like a butterfly — became one of the most recognisable images in modern mathematics.

I built the Lorenz Attractor wallpaper (available in our generative wallpapers line) around it.

What the equations actually say

The Lorenz attractor is defined by three differential equations:

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

σ (sigma), ρ (rho), and β (beta) are constants. Lorenz's original values — σ = 10, ρ = 28, β = 8/3 — are the ones that produce chaotic behaviour. Change them slightly and you get different shapes; change them far enough and the system settles or explodes instead of orbiting.

These equations describe how a point moves through 3D space over time. Follow one point and it traces a path that spirals around one wing, crosses to the other, spirals there, crosses back — forever, and never quite the same way twice. That's the attractor: the set of paths the system is pulled toward, without ever exactly repeating one.

The wallpaper spawns thousands of particles, each starting at a slightly different position, and lets them trace that path simultaneously. The result is that butterfly-wing shape — dense where particles spend more time, sparse where they move fast — rendered in 3D and projected onto the screen.

Parameters you can adjust:

  • Sigma, Rho, Beta — the actual Lorenz constants. The default values produce the classic double-wing. Push Rho down far enough and the system stops being chaotic and settles into a stable orbit. These are real controls with real mathematical consequences, not just sliders that change the colour.
  • Particle Count — how many simultaneous paths are drawn. More particles makes the attractor shape denser and more legible; fewer lets the individual trajectories breathe.
  • Trail Length — how far back each particle's path is drawn. Long trails fill in the shape; short ones emphasise the motion.

Why it never repeats

The property Lorenz stumbled on is called sensitive dependence on initial conditions: in a chaotic system, any two starting positions, no matter how close, eventually produce completely different trajectories. There's no rounding error you can make small enough to avoid it.

For a wallpaper, this is ideal. There's no loop because there's no repetition to loop. The specific configuration on screen right now — which particles are on which wing, where the crossings happen — is a state the simulation has never been in and won't return to. It's genuinely non-repeating, not just long-period-repeating.

The tradeoff is that this means you can't pre-compute it. The simulation has to run forward in real time, every frame, because the next frame genuinely depends on the exact state of this one.

How it stays fast

Stepping thousands of particles through three equations per frame sounds expensive. It isn't, because the work happens on the GPU.

Each particle is independent — to get from frame N to frame N+1, it just applies the equations to its current position. No particle needs to know where the others are. That independence is exactly what GPUs are designed for: the same small operation applied to thousands of things at once, in parallel. The CPU's job is minimal.

Same tricks as everything else in the engine: 30 FPS by default, pauses when hidden. If the performance rationale interests you, how I got a flow field to run at near-zero CPU covers the general approach.

Have a look

The parameters that look most like dials are the Lorenz constants — changing Rho in particular shifts the behaviour from chaos to order in a way that's oddly satisfying to watch.

See the Lorenz Attractor in the marketplace →

Featured Wallpaper

Lorenz Attractor

Lorenz Attractor

Interactive chaotic attractor visualization calculating differential equations in real time using 4th-Order Runge-Kutta numerical integration. Traces the iconic butterfly trajectory through three-dimensional phase space with decaying phosphor luminance trails. Built with native WebGL shaders to ensure minimal battery draw on macOS and Windows laptops. The engine pauses rendering instantly during battery saver mode or when windows overlap your desktop, delivering smooth mathematical motion without background power drain.

• Native macOS & Windows• 0% CPU background auto-pause• Retina / 4K / 5K ready
Free engine · macOS & Windows

Run this as a live wallpaper with Novaframe

Novaframe is the free desktop engine behind these wallpapers — real-time shaders rendered on your GPU, not video loops. Download it once, then apply anything from the catalogue in one click.

Frequently asked questions

Not the way this is built. The equations themselves are simple arithmetic — the cost is running them for thousands of particles simultaneously, which is exactly what a GPU is designed to do. CPU load stays low, and the engine pauses when the wallpaper is hidden.
No. That's not a marketing claim — it's a mathematical property of the system. Tiny differences in starting position compound exponentially, so two particles that begin a hair apart end up tracing completely different paths. The attractor shape stays roughly the same, but the specific particle positions never repeat.

Related articles