1585 Seeds

(define
  seed-radius {3.2 (gen/scalar min: 3 max: 5)}
  scale-factor 4
  phi (/ (sqrt {5 (gen/scalar min: 4 max: 6)}) {8 (gen/scalar min: 1 max: 10)})
  seeds 200
  make-colour (col/build-procedural a: {[0.80 0.50 0.40] (gen/scalar)}
                                    b: {[0.20 0.40 0.20] (gen/scalar)}
                                    c: {[2.00 1.00 1.00] (gen/scalar)}
                                    d: {[0.00 0.25 0.25] (gen/scalar)})

  focalpoint ({focal/build-point (gen/select from: '(focal/build-point focal/build-hline focal/build-vline))}
              position: [{500 (gen/int max: canvas/width)}
                         {500 (gen/int max: canvas/height)}]
              distance: {800 (gen/int min: (/ canvas/width 2) max: canvas/width)}))

(fn (interesting-circle position: [500 500]
                        colour: red
                        seed: 454
                        radius: 300)
  (define
    rng (prng/build seed: seed)
    outer-exterior (prng/build seed: (prng/value from: rng) min: 170 max: 210)
    outer-interior (prng/build seed: (prng/value from: rng) min: 80 max: 170)
    inner-exterior (prng/build seed: (prng/value from: rng) min: 100 max: 150)
    inner-interior (prng/build seed: (prng/value from: rng) min: 0 max: 100)
    srng (prng/build min: -1 max: 1 seed: seed))
  (on-matrix-stack
    (translate vector: position)
    (scale scalar: (/ radius 210))
    (loop (i to: 3)
      (on-matrix-stack
        (rotate angle: (* 360 (prng/value from: rng)))
        ;; outer ring
        (circle-slice tessellation: 20
                      position: [0 0]
                      colour: (col/lighten from: colour
                                           value: (* {30 (gen/int min: 20 max: 60)} (prng/value from: srng)))
                      angle-start: 0
                      angle-end: 320
                      width: (prng/value from: outer-exterior)
                      inner-width: (prng/value from: outer-interior)
                      height: (prng/value from: outer-exterior)
                      inner-height: (prng/value from: outer-interior))
        ;; inner ring
        (circle-slice tessellation: 10
                      position: [0 0]
                      colour: (col/lighten from: colour
                                           value: (* {20 (gen/int min: 10 max: 40)} (prng/value from: srng)))
                      angle-start: 0
                      angle-end: 320
                      width: (prng/value from: inner-exterior)
                      inner-width: (prng/value from: inner-interior)
                      height: (prng/value from: inner-exterior)
                      inner-height: (prng/value from: inner-interior))))
    ;; centre fill
    (circle-slice tessellation: 10
                  position: [0 0]
                  colour: (col/lighten from: colour
                                       value: (* {10 (gen/int min: 5 max: 20)} (prng/value from: srng)))
                  angle-start: 0
                  angle-end: 360
                  radius: 30)))


(rect position: [500 500]
      width: canvas/width
      height: canvas/height
      colour: {(col/rgb r: 1 g: 1 b: 1 alpha: 1) (gen/col)})

(loop (seed to: seeds)
  (define
    zoom 8
    radius (* zoom seed-radius)
    theta (/ (* seed math/TAU) phi)
    r (* scale-factor (sqrt seed))
    position [(+ 500 (* r zoom (math/cos from: theta)))
              (+ 500 (* r zoom (math/sin from: theta)))]
    colour (col/value from: make-colour t: (focal/value from: focalpoint position: position)))
  (interesting-circle position radius colour seed))