The Lorenz attractor already lives on our homepage as a quiet, looping animation behind the capabilities section, computed in software and redrawn every frame. We wanted to see the same butterfly traced in real voltages instead of pixels, so we built it out of op-amps on a breadboard. On paper it's three integrators and two multipliers. On the bench it took two weekends, not one.
Three equations, three integrators
The Lorenz system is three coupled differential equations: dx/dt = sigma(y - x), dy/dt = x(rho - z) - y, dz/dt = xy - beta*z. Each one describes the rate of change of a state variable, and an analog computer's job is to build that rate of change as a voltage and then integrate it back into the variable itself. Each integrator here is a TL084 op-amp with a capacitor in the feedback path instead of a resistor, fed by a handful of summing resistors sized to the coefficients in the equation it's solving.
Two of the three equations aren't linear: x(rho - z) and xy both multiply two changing voltages together, and a plain op-amp can't do that on its own. We used a pair of AD633 four-quadrant analog multipliers for those terms, one per nonlinear product, and treated everything else as ordinary weighted summing.
Where it actually fought back
The textbook Lorenz parameters (sigma = 10, rho = 28, beta = 8/3) describe a system whose state variables swing well past what a +/-15V supply rail can represent directly. Built literally, the circuit would just slam into the rails and stop being chaotic at all. The standard fix, and the one we used, is to scale every state variable down by a factor of ten in hardware and adjust the summing and multiplier gain resistors to compensate, so the equations are still correct even though the voltages representing them are smaller than the textbook numbers.
First power-up produced a flat line, not a butterfly. One integrator had crept slowly to a rail over about ten seconds, a classic symptom of op-amp input bias current integrating up as drift with nothing to bleed it off. The fix was a 10 megohm resistor across each integrating capacitor, small enough not to disturb the actual dynamics, large enough to stop the slow creep. After that, a trimmer potentiometer setting the effective rho needed real tuning, not just the calculated value, since real resistor tolerances shift the system's behavior more than the math suggests they should.
The payoff was switching the oscilloscope from its usual time-domain view to X-Y mode, plotting two of the three output voltages against each other instead of against time. The butterfly showed up immediately, the same shape from the homepage, just drawn by a beam instead of a browser. Turning the rho trimmer while it's running warps the attractor in real time, which is the one advantage the analog version has over the simulation: nothing to re-run, just a knob and an immediate answer.
Best viewed on a computer
The PDF viewer is interactive and only displays on a larger screen.
Best viewed on a computer
This animation is interactive and only displays on a larger screen.


