1748 Orchid B

(meta linear-colour-space: 1)

(define
  coords1 [{[364.374 334.649] (gen/stray-2d from: [364.374 334.649] by: [10 10])}
           {[327.287 3.772] (gen/stray-2d from: [327.287 3.772] by: [10 10])}
           {[-437.339 313.889] (gen/stray-2d from: [-437.339 313.889] by: [10 10])}
           {[362.336 -342.336] (gen/stray-2d from: [362.336 -342.336] by: [10 10])}]
  coords2 [{[-451.526 -76.492] (gen/stray-2d from: [-451.526 -76.492] by: [10 10])}
           {[160.407 41.342] (gen/stray-2d from: [160.407 41.342] by: [10 10])}
           {[-268.480 380.469] (gen/stray-2d from: [-268.480 380.469] by: [10 10])}
           {[384.760 287.207] (gen/stray-2d from: [384.760 287.207] by: [10 10])}]
  coords3 [{[-13.962 -65.145] (gen/stray-2d from: [-13.962 -65.145] by: [10 10])}
           {[-23.172 53.983] (gen/stray-2d from: [-23.172 53.983] by: [10 10])}
           {[-454.547 271.014] (gen/stray-2d from: [-454.547 271.014] by: [10 10])}
           {[483.553 -416.440] (gen/stray-2d from: [483.553 -416.440] by: [10 10])}]

  col-fn-1 (col/build-procedural a: {[0.966 0.475 0.087] (gen/stray-3d from: [0.966 0.475 0.087] by: [0.1 0.1 0.1])}
                                 b: {[0.428 0.679 0.838] (gen/stray-3d from: [0.428 0.679 0.838] by: [0.1 0.1 0.1])}
                                 c: {[0.032 0.972 0.111] (gen/stray-3d from: [0.032 0.972 0.111] by: [0.1 0.1 0.1])}
                                 d: {[0.762 0.543 0.101] (gen/stray-3d from: [0.762 0.543 0.101] by: [0.1 0.1 0.1])}
                                 alpha: 0.08)
  col-fn-2 (col/build-procedural a: {[0.724 0.168 0.124] (gen/stray-3d from: [0.724 0.168 0.124] by: [0.1 0.1 0.1])}
                                 b: {[0.938 0.396 0.463] (gen/stray-3d from: [0.938 0.396 0.463] by: [0.1 0.1 0.1])}
                                 c: {[0.292 0.700 0.868] (gen/stray-3d from: [0.292 0.700 0.868] by: [0.1 0.1 0.1])}
                                 d: {[0.038 0.013 0.689] (gen/stray-3d from: [0.038 0.013 0.689] by: [0.1 0.1 0.1])}
                                 alpha: 0.08)
  col-fn-3 (col/build-procedural a: {[0.451 0.981 0.641] (gen/stray-3d from: [0.451 0.981 0.641] by: [0.1 0.1 0.1])}
                                 b: {[0.221 0.974 0.078] (gen/stray-3d from: [0.221 0.974 0.078] by: [0.1 0.1 0.1])}
                                 c: {[0.306 0.915 0.208] (gen/stray-3d from: [0.306 0.915 0.208] by: [0.1 0.1 0.1])}
                                 d: {[0.592 0.705 0.294] (gen/stray-3d from: [0.592 0.705 0.294] by: [0.1 0.1 0.1])}
                                 alpha: 0.08))

(fn (draw)
    (fence (t num: 200)
    (poly coords: [(interp/bezier t: t coords: coords1)
                   (interp/bezier t: t coords: coords2)
                   (interp/bezier t: t coords: coords3)]
          colours: [(col/value from: col-fn-1 t: t)
                    (col/value from: col-fn-2 t: t)
                    (col/value from: col-fn-3 t: t)])))

(fn (render)
  (wash colour: {(col/rgb r: 0.22 g: 0.24 b: 0.50 alpha: 0.97) (gen/col)})
  (on-matrix-stack
    (translate vector: [(/ canvas/width 1) (/ canvas/height 2)])
    (scale scalar: 2)
    (repeat/rotate-mirrored fn: (address-of draw)
                            copies: {10 (gen/int min: 6 max: 10)})))

(render)

(fn (wash vol: 200
          line-width: 70
          line-segments: 5
          colour: (col/rgb r: 0.627 g: 0.627 b: 0.627 alpha: 0.4)
          seed: 272)
  (define
    w/3 (/ canvas/width 3)
    h/3 (/ canvas/height 3))
  (loop (d from: -20 to: 1020 inc: 20)
    (bezier tessellation: line-segments
            line-width: line-width
            coords: [[0            (wash-n x: 0            d: d seed: seed vol: vol)]
                     [w/3          (wash-n x: w/3          d: d seed: seed vol: vol)]
                     [(* w/3 2)    (wash-n x: (* w/3 2)    d: d seed: seed vol: vol)]
                     [canvas/width (wash-n x: canvas/width d: d seed: seed vol: vol)]]
            colour: colour)

    (bezier tessellation: line-segments
            line-width: line-width
            coords: [[(wash-n x: 0             d: d seed: seed vol: vol) 0]
                     [(wash-n x: h/3           d: d seed: seed vol: vol) h/3]
                     [(wash-n x: (* h/3 2)     d: d seed: seed vol: vol) (* h/3 2)]
                     [(wash-n x: canvas/height d: d seed: seed vol: vol) canvas/height]]
            colour: colour)))

(fn (wash-n x: 0 d: 0 seed: 0 vol: 1)
  (+ d (* vol (prng/perlin x: x y: d z: seed))))