/examples/cfdg/models/chiaroscuro/source.scm

http://github.com/dharmatech/abstracting · Scheme · 67 lines · 55 code · 10 blank · 2 comment · 0 complexity · 286ad2263fac1d2bcd5fb950d85dd519 MD5 · raw file

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. (define (black)
  3. (when (iterate?)
  4. (call-random-weighted
  5. (vec
  6. (vec 60 (lambda ()
  7. (block
  8. (lambda ()
  9. (size 0.6)
  10. (circle)))
  11. (block
  12. (lambda ()
  13. (x 0.1)
  14. (rotate 5)
  15. (size 0.99)
  16. (brightness -0.01)
  17. (alpha -0.01)
  18. (black)))))
  19. (vec 1 (lambda ()
  20. (block
  21. (lambda ()
  22. (white)
  23. (black)))))))))
  24. (define (white)
  25. (when (iterate?)
  26. (call-random-weighted
  27. (vec
  28. (vec 60 (lambda ()
  29. (block
  30. (lambda ()
  31. (size 0.6)
  32. (circle)))
  33. (block
  34. (lambda ()
  35. (x 0.1)
  36. (rotate -5)
  37. (size 0.99)
  38. (brightness 0.01)
  39. (alpha -0.01)
  40. (white)))))
  41. (vec 1 (lambda ()
  42. (block
  43. (lambda ()
  44. (black)
  45. (white)))))))))
  46. (define (chiaroscuro)
  47. (when (iterate?)
  48. (block
  49. (lambda ()
  50. (brightness 0.5)
  51. (black)))))
  52. (set! *background* (lambda () (brightness -0.5)))
  53. (set! *viewport* (vec -3 6 -2 6))
  54. (set! *threshold* 0.03)
  55. (set! *start-shape* (lambda () (chiaroscuro)))
  56. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  57. (run-model)