(define list '()) (define (sphere) (push) (opacity 1) (scale (vector 0.1 0.1 0.1)) (colour (vector 0 0 0)) ;(specular (vector 1 1 0)) ;(shinyness 1) (opacity 0) (parent (build-cube)) (push) (opacity 0.2) (identity) (scale (vector 3 3 3)) (set! list (cons (build-sphere 10 10) list)) (apply-transform (car list)) (pop) ;(apply (car list) ;(parent (car list)) (pop)) (define (line n) (translate (vector 1 0 0)) (sphere) (if (eq? 0 n) 1 (line (- n 1)))) (define (grid m n) (translate (vector 0 1 0)) (push) (line n) (pop) (if (eq? 0 m) 1 (grid (- m 1) n))) (define (update l c s) (if (null? l) '() (begin (grab (car l)) (emissive (vector (gh c) (gh (+ c 1)) (gh (+ c 2)) )) (identity) ;(rotate (vector (*(gh s)10) (*(gh s)10) (*(gh s)10) )) (translate (vector (*(gh s)10) (*(gh (- s 1))10) (*(gh (- s 2))10) )) (scale (vector (gh s) (gh s) (gh s) )) (ungrab) (update (cdr l) (+ c 1) (+ s 1))))) (show-axis 0) (clear) (grid 10 10) (blur 0.01) (display list) (gain 100) (every-frame (update list 1 1))