← The Rohans
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.

ε σ ν ψ Lispix identifiers are full Unicode, so you can write variables the way they look on paper. Pull a formula straight out of a computer vision or machine learning paper. You don't need to renaming ε to \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.

Two Coordinate Spaces

(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.

Unicode Identifiers

Variables and function names can be Greek letters or emoji — ε, σ, ν, ψ, whatever matches your formula.

Tensor / Matrix Math

Elementwise exp, sin, cos, pow, plus matmul, slice, and transpose on scalars or tensors.

Live Canvas

A draw loop runs every frame, driven by a built-in elapsed-time clock.

Nothing to Install

Open the page and start writing Lisp.

Small, Open Core

Built on open-source libraries: Wefx, r2_maths.h, r2_string.h, and tinylisp.

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.