computer vision · graphics · machine learning · lisp
Lispix
A scriptable test bed for computer vision and graphics algorithms, running in your browser. Prototype a filter, a kernel, a projection, or a signal in pixel space that matches how image buffers are addressed, or in centered Cartesian space for reasoning about the math.
\eps or σ to \sigma.
(define σ 60)
(define ν 0.05)
(define ε 0.4)
(defun ψ (x)
(* (exp (- 0 (/ (* x x) (* 2 (* σ σ)))))
(sin (+ (* ν x) ε))))
(color 100 200 255)
(defun plot (x)
(if (> x 300)
#t
(progn
(point x (* 180 (ψ x)))
(plot (+ x 1)))))
(plot -300)
σ, ν, and ε are ordinary top-level variables here — not a
special syntax, just Lisp identifiers made of Greek letters. Run it in
the app under (set-origin 'graph)
and it plots a Gaussian-enveloped sine wave, centered on the canvas.
Why Lispix
(set-origin 'image) puts (0,0) at the top-left with Y down, for pixel and
image-processing work. (set-origin 'graph) centers the origin with Y up, for
plotting math. Same drawing calls, either way.
Variables and function names can be Greek letters or emoji — ε, σ,
ν, ψ, whatever matches your formula.
Elementwise exp, sin, cos, pow, plus
matmul, slice, and transpose on scalars or tensors.
A draw loop runs every frame, driven by a built-in elapsed-time clock.
Open the page and start writing Lisp.
Built on open-source libraries: Wefx, r2_maths.h, r2_string.h, and tinylisp.
FAQ
- What is Lispix?
- Lispix is a browser based Lisp interpreter with tensor / matrix
math and a canvas you can draw to, running entirely client side via
WebAssembly.
- Is Lispix more like an image processing sandbox or a graphing calculator?
- Both.
(set-origin 'image) gives you pixel coordinates with (0,0) at the top left
and Y increasing downward — good for image and algorithm experiments. (set-origin 'graph)
gives you (0,0) at the canvas center with Y increasing upward, like a Cartesian graphing
calculator. The same drawing calls work in either mode.
- Can I use Greek letters or emoji as variable names?
- Yes. Lispix identifiers are full Unicode, so you can write formulas using the same symbols
they use on paper, such as
ε, σ, ν, or ψ.
Elapsed time since page load is even a built-in variable literally named with a stopwatch
emoji, ⏱️.
- What can you do with Lispix?
- Write Lisp expressions that compute with vectors and matrices using tensor literals and
operations like
matmul, slice, and transpose, and draw
the results live to a canvas — plots, animations, and simple 3D projections.
- Does Lispix require installation?
- No. Lispix runs entirely in the browser via WebAssembly — open the page and start writing
Lisp code.
- Is Lispix open source?
- Mostly. All of the libraries Lispix uses are open source: Wefx, r2_maths.h, r2_string.h, and tinylisp; however the web application itself is not.
(set-origin 'image) gives you pixel coordinates with (0,0) at the top left
and Y increasing downward — good for image and algorithm experiments. (set-origin 'graph)
gives you (0,0) at the canvas center with Y increasing upward, like a Cartesian graphing
calculator. The same drawing calls work in either mode.ε, σ, ν, or ψ.
Elapsed time since page load is even a built-in variable literally named with a stopwatch
emoji, ⏱️.matmul, slice, and transpose, and draw
the results live to a canvas — plots, animations, and simple 3D projections.