163a Scale Green

(meta linear-colour-space: 1)

(define
  step-y (/ 1000 {8 (gen/int min: 6 max: 10)})
  step-x (/ 1000 {10 (gen/int min: 8 max: 12)}))

(fn (interesting-circle position: [500 500]
                        colour: red
                        seed: 564
                        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: 8)
      (on-matrix-stack
        (rotate angle: (* 360 (prng/value from: rng)))
        ;; outer ring
        (circle-slice tessellation: 30
                      position: [0 0]
                      colour: (col/lighten from: colour
                                           value: (* {411 (gen/stray-int from: 411 by: 10)} (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: (* {24 (gen/stray-int from: 24 by: 10)} (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: (* {140 (gen/stray-int from: 140 by: 10)} (prng/value from: srng)))
                  angle-start: 0
                  angle-end: 360
                  radius: 30)))

(define initial-seed (prng/build seed: {77 (gen/int max: 1000)} min: 1 max: 1000))

(on-matrix-stack
  (translate vector: [500 500])
  (scale scalar: {1.320 (gen/scalar min: 1 max: 2)})
  (rotate angle: {156 (gen/stray-int from: 156 by: 40)})
  (loop (y from: -500 upto: 500 inc: step-y)
        (loop (x from: -500 upto: 500 inc: step-x)
      (interesting-circle position: [x y]
                          seed: (prng/value from: initial-seed)
                          radius: {98 (gen/int min: 70 max: 100)}
                          colour: {(col/rgb r: 0.053 g: 0.613 b: 0.424 alpha: 0.400) (gen/col alpha: 0.4)}))))