Tip: Change the Preset dropdown. Also try each with 180 rotation.

The algorithm is as follows:

  1. Create X points.
  2. Start from the first point.
  3. Randomly choose one of the points.
  4. Move ratio * (distance from the point) towards the point.
  5. Rotate x degrees around point.
  6. Draw a dot.
  7. Exit if the last 100 dots were already present.
  8. Goto 3.

It would appear that predictable patterns come from random numbers - or "chaos". In truth, some areas cannot be reached regardless of the points chosen and thus certain patterns are guaranteed. Some patterns rely on certain areas having a lower probability and hence you get different levels of "shading".

Chaos was written in Rust (because it's very fast and I like Rust) using The `wasm-bindgen` Guide's Julia example as a starting point. Chaos source on GitHub.