#!/usr/bin/sbcl --script (load "src/load") (setf *print-pretty* t) (setf *random-state* (make-random-state t)) (defun main (size fn) (let ((mid (.5* size)) (repeat 15) (grains 4) (itt 1000) (sand (sandpaint* size :active (list 0.0 0.0 0.0 0.01) :bg (list 1.0 1.0 1.0 1.0)))) (loop for i in (linspace 100 900 repeat) for j from 1 to repeat do (print j) (let ((snk (snek*)) (va (list 0 0)) (vb (list 0 0)) (p1 (list 100 i)) (p2 (list 900 i))) (loop for k from 1 to itt do (let ((v1 (insert-vert (l-on-line k itt p1 p2) into snk)) (v2 (insert-vert (ladd va (l-on-line k itt p1 p2)) into snk))) (setf va (ladd va (l-rand-in-circle (* 0.7 j)))) (setf vb (ladd vb (l-rand-in-circle (* 0.001 j)))) (with-snek (snk) (with-all-verts (snk v) (move-vert v (ladd (l-rand-in-circle 0.1) vb))) (join-verts v1 v2)) (sandpaint-edges sand snk grains) (sandpaint-verts sand snk))))) (format t "~%writing to ~a" fn) ;(sandpaint-chromatic-aberration sand (list mid mid) 100.0) (sandpaint-save sand fn))) (time (main 1000 (second (cmd-args))))