Houston We Have Circles
Today, we have the first successful eval of a Klee program!
(begin
(define (map f l)
(if (null? l)
(list)
(cons (f (car l)) (map f (cdr l)))))
(stroke 1 (rgb 1 1 1)
(map (lambda (x)
(circle (point (* 8 x) (* 8 x)) (* x (/ x 25.0))))
(range 100))))
When you load this program into a Klee interpreter, and evaluate it, it produces a series of draw commands that when encoded and passed to the GPU, evaluate to the following image:

Next steps will be to make it responsive to dataspace assertions by adding the during
, except
, and collect
keywords! I already have most of this work wired up on the interpreter side, I now need to hook it up to a sufficiently sophisticated Syndicate actor. After this I’ll need to spend some time trying to figure out how to handle user input, and responsive layouts (initial layout system will be based off of Clay UI).
Once these building blocks are finished, I suspect I will then have to spend a lot of time on performance and adding more QoL functions for programmers. Maybe also an object system? 👀