Zajal is a programming language designed to reduce the friction between creative vision and functioning software. It is implemented in C++ as a language interpreter built on the Ruby virtual machine using openFrameworks as a rendering backend. Zajal was developed as my MFA thesis project at Parsons The New School For Design, during my residency at Karaj Beirut, and during my fellowship at the Eyebeam Art and Technology Center.
As a creative coding language, Zajal is most similar to Processing, which was its primary inspiration. It borrows Processing’s attitude towards coding, self-contained structure and event loop idioms. Zajal’s adds live coding, larger built-in feature set, consistent Ruby-based syntax, a streamlined workflow, use of any text editor and a command line interface.
Part of the project was developing and populating a sketchbook of visuals developed in Zajal. All sketches are provided with their source code. The sketchbook serves as the best example of what coding in Zajal is like, short of downloading the interpreter.
Artist Haitham Ennasr chose to use Zajal to develop his final year project in spring of 2011. The installation consists of a video display and motion sensors that trigger changes in the video, making extensive use of Zajal’s video playback and Arduino support.
Zajal was featured at the 2011 Parsons MFADT thesis show. The installation consisted of a monitor on a podium displaying a custom text editor loaded with a dozen prewritten Zajal sketches. The currently selected sketch is constantly running and its graphical output is projected on the wall behind the podium. A keyboard and mouse are provided, prompting gallery-goers to modify the code live. Modifications are seen instantly on the projection due to Zajal’s live code feature. Left idle, the installation cycles through the sketches every fifteen minutes. More photos are available in the flickr photoset.
In November 2011, Zajal was featured at the ACM Creativity and Cognition Conference at the High Museum of Art and published in its procedings. The installation consisted of a laptop running the interpreter and a text editor.