15he Rotate Mirror

(meta linear-colour-space: 1)

(define
  coords []
  colours []
  make-colour (col/build-procedural a: [0.687 0.399 0.476] ~ (gen/stray-3d from: [0.687 0.399 0.476] by: [0.1 0.1 0.1])
                                    b: [0.778 0.405 0.253] ~ (gen/stray-3d from: [0.778 0.405 0.253] by: [0.1 0.1 0.1])
                                    c: [0.436 0.590 0.885] ~ (gen/stray-3d from: [0.436 0.590 0.885] by: [0.1 0.1 0.1])
                                    d: [0.517 0.439 0.391] ~ (gen/stray-3d from: [0.517 0.439 0.391] by: [0.1 0.1 0.1]))

  focalpoint (focal/build-vline ~ (gen/select from: '(focal/build-point
                                                    focal/build-hline
                                                    focal/build-vline))
                                position: [-148 ~ (gen/stray-int from: -148 by: 40)
                                            239 ~ (gen/stray-int from: 239 by: 40)]
                                distance: 458 ~ (gen/stray-int from: 458 by: 50)))

(fence (t num: 63 ~ (gen/int min: 5 max: 100))
  (define
    p1 (interp/bezier t: t
                      coords: [[-139.592 -150.389] ~ (gen/stray-2d from: [-139.592 -150.389] by: [10 10])
                               [166.582 -132.939] ~ (gen/stray-2d from: [166.582 -132.939] by: [10 10])
                               [8.370 -108.305] ~ (gen/stray-2d from: [8.370 -108.305] by: [10 10])
                               [204.349 -212.830] ~ (gen/stray-2d from: [204.349 -212.830] by: [10 10])])
    p2 (interp/bezier t: t
                      coords: [[6.482 -255.821] ~ (gen/stray-2d from: [6.482 -255.821] by: [10 10])
                               [-11.347 100.004] ~ (gen/stray-2d from: [-11.347 100.004] by: [10 10])
                               [201.458 -218.061] ~ (gen/stray-2d from: [201.458 -218.061] by: [10 10])
                               [168.957 84.215] ~ (gen/stray-2d from: [168.957 84.215] by: [10 10])])
    c1 (col/value from: make-colour t: (focal/value from: focalpoint position: p1))
    c2 (col/value from: make-colour t: (focal/value from: focalpoint position: p2)))
  (++ coords p1)
  (++ coords p2)
  (++ colours c1)
  (++ colours c2))


(fn (draw)
  (poly coords: coords colours: colours))

(fn (render)
  (on-matrix-stack
    (translate vector: [(/ canvas/width 2) (/ canvas/height 2)])
    (scale vector: [1.7 1.7])
    (repeat/rotate-mirrored fn: (address-of draw)
                            copies: 7 ~ (gen/int min: 5 max: 14))))

(render)