Strange Attractor
Draw five strange attractors: the Clifford and Peter de Jong maps, and the Rössler, Thomas and Aizawa flows. Pick a preset taken from the published parameters, or type your own values; the tool plots up to 3 million points and shades every pixel by how many points land in it. The start point comes from the seed, so the same values always give the same picture, and values that send the points off to infinity stop with a clear message. Download a PNG at the exact size or a PDF poster. Nothing is uploaded.
100% private — everything runs in your browser. Everything runs in your browser; nothing is uploaded.
The PNG is exactly the size you pick, with every point counted into its pixel. The PDF fits the picture on one US Letter or A4 page; print at 100% (Actual size). The same values and seed always give the same picture.
Strange attractor
Picture
Runs in your browser with our own code: nothing you pick is uploaded or saved. Each picture plots up to 3 million points of the system you choose and shades every pixel by how many points land in it. You may use what you make here, including commercially, with no credit needed.
How to draw a strange attractor
- Pick a preset, or choose a system.
- Type the values a to f that the system uses.
- Set the number of points and the seed; for a flow, pick the view.
- Choose the colours, the contrast and the picture size.
- Download the PNG, or the PDF poster and print at 100% (Actual size).
What you can use it for
- Posters and prints of chaotic systems
- Maths and physics lessons on chaos
- Phone, desktop and 4K wallpapers
- Album, book and slide covers
- Exploring which values give chaos and which settle down
- Comparing views of one 3D flow
The 14 presets
| Preset | System | Values | View | Points | Box of the points (seed 1) |
|---|---|---|---|---|---|
| Clifford a −1.4, b 1.6, c 1.0, d 0.7 | Clifford map | a -1.4, b 1.6, c 1, d 0.7 | – | 1,000,000 | x -1.42 to 1.98, y -1.3 to 1.54 |
| Clifford a 1.6, b −0.6, c −1.2, d 1.6 | Clifford map | a 1.6, b -0.6, c -1.2, d 1.6 | – | 1,000,000 | x -1.92 to 2.03, y -0.56 to 2.39 |
| Clifford a 1.7, b 1.7, c 0.6, d 1.2 | Clifford map | a 1.7, b 1.7, c 0.6, d 1.2 | – | 1,000,000 | x -1.48 to 1.6, y -2.2 to 2.2 |
| Clifford a −1.7, b 1.3, c −0.1, d −1.2 | Clifford map | a -1.7, b 1.3, c -0.1, d -1.2 | – | 1,000,000 | x -1.1 to 1.03, y -2.19 to 1.83 |
| De Jong a 1.641, b 1.902, c 0.316, d 1.525 | Peter de Jong map | a 1.641, b 1.902, c 0.316, d 1.525 | – | 1,000,000 | x -2 to 1.88, y -1.59 to 1.05 |
| De Jong a 1.4, b −2.3, c 2.4, d −2.1 | Peter de Jong map | a 1.4, b -2.3, c 2.4, d -2.1 | – | 1,000,000 | x -2 to 2, y -2 to 2 |
| De Jong a 2.01, b −2.53, c 1.61, d −0.33 | Peter de Jong map | a 2.01, b -2.53, c 1.61, d -0.33 | – | 1,000,000 | x -1.82 to 1.52, y -1.99 to 0.18 |
| De Jong a −2.7, b −0.09, c −0.86, d −2.2 | Peter de Jong map | a -2.7, b -0.09, c -0.86, d -2.2 | – | 1,000,000 | x -2 to 0.01, y -1 to 1.98 |
| Rössler a 0.2, b 0.2, c 5.7 (x–y view) | Rössler flow | a 0.2, b 0.2, c 5.7 | xy | 300,000 | x -9.11 to 11.43, y -10.79 to 7.84, z 0.01 to 22.84 |
| Rössler a 0.1, b 0.1, c 14 (x–z view) | Rössler flow | a 0.1, b 0.1, c 14 | xz | 300,000 | x -19.5 to 22.16, y -21.15 to 18.07, z 0 to 36.51 |
| Thomas b 0.208186 (x–y view) | Thomas flow | b 0.208186 | xy | 400,000 | x -1.11 to 3.82, y -1.11 to 3.82, z -1.11 to 3.82 |
| Thomas b 0.18, a wider attractor | Thomas flow | b 0.18 | xz | 400,000 | x -4.23 to 4.23, y -4.23 to 4.23, z -4.23 to 4.23 |
| Aizawa, source values (x–z view) | Aizawa flow | a 0.95, b 0.7, c 0.6, d 3.5, e 0.25, f 0.1 | xz | 400,000 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 |
| Aizawa, source values (x–y view) | Aizawa flow | a 0.95, b 0.7, c 0.6, d 3.5, e 0.25, f 0.1 | xy | 400,000 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 |
The systems and their sources
| System | Equations | Values in the presets | Source (read 13-Nov-2026) |
|---|---|---|---|
| Clifford map | x′ = sin(a y) + c cos(a x); y′ = sin(b x) + d cos(b y) | Four sets from the source | Paul Bourke, Clifford Attractors (February 2004; attributed to Cliff Pickover) |
| Peter de Jong map | x′ = sin(a y) − cos(b x); y′ = sin(c x) − cos(d y) | Four sets from the source | Paul Bourke, Peter de Jong Attractors (January 1989, images updated February 2014; first in Scientific American, July 1987) |
| Rössler flow | x′ = −y − z; y′ = x + a y; z′ = b + z(x − c) | a 0.2, b 0.2, c 5.7 (studied by Rössler, 1976); a 0.1, b 0.1, c 14 (more commonly used since) | Wikipedia, Rössler attractor |
| Thomas flow | x′ = sin y − b x; y′ = sin z − b y; z′ = sin x − b z | b 0.208186, where the source says it becomes chaotic; b 0.18, our pick below it, where the source says the attractor expands | Wikipedia, Thomas’ cyclically symmetric attractor (René Thomas, 1999) |
| Aizawa flow | x′ = (z − b) x − d y; y′ = d x + (z − b) y; z′ = c + a z − z³ ÷ 3 − (x² + y²)(1 + e z) + f z x³ | a 0.95, b 0.7, c 0.6, d 3.5, e 0.25, f 0.1 | algosome.com, The Aizawa Attractor (its code listing; the formula shown above it leaves out the e term) |
Same shape from other seeds
| Preset | Stated box (seed 1) | Seed 2 | Seed 3 | Largest difference |
|---|---|---|---|---|
| CL1 | x -1.42 to 1.98, y -1.3 to 1.54 | x -1.42 to 1.98, y -1.3 to 1.54 | x -1.42 to 1.98, y -1.3 to 1.54 | 0.005 |
| CL2 | x -1.92 to 2.03, y -0.56 to 2.39 | x -1.93 to 2.03, y -0.56 to 2.39 | x -1.92 to 2.03, y -0.56 to 2.39 | 0.006 |
| CL3 | x -1.48 to 1.6, y -2.2 to 2.2 | x -1.48 to 1.6, y -2.2 to 2.2 | x -1.48 to 1.6, y -2.2 to 2.2 | 0.002 |
| CL4 | x -1.1 to 1.03, y -2.19 to 1.83 | x -1.1 to 1.03, y -2.19 to 1.83 | x -1.1 to 1.03, y -2.19 to 1.83 | 0.004 |
| DJ1 | x -2 to 1.88, y -1.59 to 1.05 | x -2 to 1.88, y -1.59 to 1.05 | x -2 to 1.88, y -1.59 to 1.05 | 0.003 |
| DJ2 | x -2 to 2, y -2 to 2 | x -2 to 2, y -2 to 2 | x -2 to 2, y -2 to 2 | 0 |
| DJ3 | x -1.82 to 1.52, y -1.99 to 0.18 | x -1.82 to 1.52, y -1.99 to 0.18 | x -1.82 to 1.52, y -1.99 to 0.18 | 0.004 |
| DJ4 | x -2 to 0.01, y -1 to 1.98 | x -2 to 0.01, y -1 to 1.98 | x -2 to 0.01, y -1 to 1.98 | 0.005 |
| RO1 | x -9.11 to 11.43, y -10.79 to 7.84, z 0.01 to 22.84 | x -9.11 to 11.43, y -10.79 to 7.84, z 0.01 to 22.85 | x -9.11 to 11.43, y -10.79 to 7.84, z 0.01 to 22.85 | 0.011 |
| RO2 | x -19.5 to 22.16, y -21.15 to 18.07, z 0 to 36.51 | x -19.5 to 22.16, y -21.15 to 18.07, z 0 to 36.51 | x -19.5 to 22.16, y -21.15 to 18.07, z 0 to 36.51 | 0.003 |
| TH1 | x -1.11 to 3.82, y -1.11 to 3.82, z -1.11 to 3.82 | x -1.11 to 3.82, y -1.11 to 3.82, z -1.11 to 3.82 | x -1.11 to 3.82, y -1.11 to 3.82, z -1.11 to 3.82 | 0.003 |
| TH2 | x -4.23 to 4.23, y -4.23 to 4.23, z -4.23 to 4.23 | x -4.23 to 4.23, y -4.23 to 4.23, z -4.23 to 4.23 | x -4.23 to 4.23, y -4.23 to 4.22, z -4.23 to 4.23 | 0.01 |
| AZ1 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 | 0.003 |
| AZ2 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 | x -1.5 to 1.49, y -1.45 to 1.53, z -0.37 to 1.85 | 0.003 |
Every number worked out at build time; the unit tests repeat it with their own code.
Values that escape or settle
| Values | Escapes to infinity | Stopped at step |
|---|---|---|
| Thomas b −0.1 | yes | 2,594 |
| Rössler a 0.2, b 0.2, c −5 | yes | 69 |
| Rössler a 0.5, b 0.2, c 5.7 | yes | 1,380 |
| Values | Result |
|---|---|
| Clifford a 1, b 1, c 0.1, d 0.1 | settles (no attractor) |
| Thomas b 0.5 | settles (no attractor) |
| Aizawa with f 2 | settles (no attractor) |
Sizes
| Size | Pixels | PDF poster on US Letter |
|---|---|---|
| Square | 2,048 × 2,048 px | 184.5 × 184.5 mm |
| Square | 3,000 × 3,000 px | 184.5 × 184.5 mm |
| Post | 1,080 × 1,080 px | 184.5 × 184.5 mm |
| Desktop | 1,920 × 1,080 px | 184.5 × 103.8 mm |
| 4K | 3,840 × 2,160 px | 184.5 × 103.8 mm |
| Phone | 1,080 × 1,920 px | 132.8 × 236 mm |
The colours
| Colours | Ground | Ramp toward the densest pixels |
|---|---|---|
| Ink on white | #ffffff | #9aa5b1 → #3e4c59 → #0b0f14 |
| White on black | #000000 | #3b4252 → #c8d0dc → #ffffff |
| Fire on black | #000000 | #7a0d0d → #e2531d → #ffc94d → #fffbe6 |
| Ocean | #04111f | #0b4f6c → #20a4a0 → #c9f2e8 |
| Violet on white | #ffffff | #c4b5fd → #6d28d9 → #1e1b4b |
| Gold on black | #0b0a07 | #5c4410 → #d4a017 → #fff3c4 |
Which tool to use
| You want | Use |
|---|---|
| Clifford, De Jong, Rössler, Thomas or Aizawa | Strange Attractor (this page) |
| The Lorenz attractor | Lorenz Attractor |
| The period-doubling route to chaos | Bifurcation Diagram |
| Mandelbrot and Julia sets | Fractal Generator |
| Pendulum drawings | Harmonograph |
Other tools: the Fractal Generator draws Mandelbrot and Julia sets, the Noise Texture Generator makes random textures and the Color Palette Generator builds your own colours.
More free tools
Maths art, patterns and 3D?
Design tools that run privately in your browser, with no sign-up and no watermark.
Frequently asked questions
What is a strange attractor?
A shape that the points of a chaotic system keep returning to. The points never repeat exactly, yet they stay in a bounded region and trace out the same shape from almost any start; that is what each picture here shows.
Which systems are here?
Two maps, where each point gives the next: Clifford, x′ = sin(a y) + c cos(a x), y′ = sin(b x) + d cos(b y); and Peter de Jong, x′ = sin(a y) − cos(b x), y′ = sin(c x) − cos(d y). And three flows, followed in small time steps: Rössler, Thomas and Aizawa. The equations and the sources of the preset values are in the table below.
Where is the Lorenz attractor?
It has its own page, Lorenz Attractor, with Lorenz presets and 3-D views, so it is not repeated here; see the related tools.
Are the shapes right?
Each preset lists the box its points fill. Our tests work the points out again with separate code for three different seeds and compare the boxes; the table below shows how close the other seeds come. A different seed starts somewhere else and lands on the same shape.
What happens with values that do not work?
If any coordinate stops being a finite number or passes one million, the tool stops and says at which step. If the points settle on a fixed point or a short cycle, it says there is no strange attractor to draw with those values.
How are the flows worked out?
With the fourth-order Runge–Kutta method and a fixed time step (0.02 for Rössler, 0.05 for Thomas, 0.01 for Aizawa), after a run-in that is not drawn. Maps skip their first 1,000 points.
How is the picture shaded?
Every point adds one to the pixel it lands in. The count is turned into a tone by log(1 + count) ÷ log(1 + largest count), raised to the contrast (gamma) you set, and coloured along the palette.
What sizes can I download?
Square 2048 and 3000, post 1080 × 1080, desktop 1920 × 1080, 4K 3840 × 2160 and phone 1080 × 1920 pixels. The PNG is exactly that size; the PDF poster fits it on one US Letter or A4 page.
Is it free?
Yes. There is no sign-up, no watermark and no limit.
Is anything uploaded?
No. Everything is worked out by JavaScript in your browser. Nothing you pick is sent anywhere or saved when you close the page.