Experimental creative coding framework
Clojure C#
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Zajal 0.5 - Nostrand

Nostrand is the next major rewrite of the Zajal creative coding framework. It is built on Clojure CLR, OpenTK, and the ongoing progress of the Arcadia project. The goal is to create a highly expressive, completely live creative coding experience suitable for beginners and advanced programmers alike.

This rewrite, the third, is a significant deviation from past prototypes in that it abandons Ruby in favor of Clojure, and abandons the openFrameworks toolkit in favor of the OpenTK. Much like Arcadia, this incarnation of Zajal is experimenting with the effects of functional programming on high performance interactive graphics programming.


The code is currently very bare bones and does next to nothing beyond start an Arcadia-style main thread REPL and include the OpenTK assemblies. I am currently experimenting with different abstractions, trying to find the right ones to default to, and the right mechanisms to allow users to define their own.


The only dependency is the Mono MDK

git clone https://github.com/nasser/zajal.git
cd zajal
git checkout nostrand
xbuild Zajal/Zajal.csproj
mono Zajal/bin/Debug/Zajal.exe

The current REPL is lifted directly from Arcadia, so the same setup instructions apply. Evaluate the contents of the Examples/brownian.clj file to see a functional port of the standard Brownian motion sketch.


Zajal is a labor of love by Ramsey Nasser. Use it for good, not evil.

Provided under the MIT License.


This project has been generously supported by the following institutions. They believed in it, challenged it, and pushed it forward. Zajal would be nowhere without them, and I thank them all deeply.