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)))))