I’m really excited to announce a project I have been working on for the
past few months. For my thesis at the Design+Technology program at
Parsons the New School for Design, I developed a new creative coding
language called Zajal. It is inspired by Processing (the seminal Java
based creative coding language), powered by openFrameworks (an awesome
C++ library for windowing/events/audio/visual work) and built on Ruby
1.9 (which needs no introduction).
“Creative coding” is a term I really don’t like, as I can’t imagine a
form of coding that isn’t creative. It’s a term that has come to
mean a coding environment optimized for graphical, aural and interactive
work. Websites like http://creativeapplications.net and
http://openprocessing.org have good examples. Data visualizations,
gallery installations, games and more all fall into this category and
this is exactly the kind of stuff Zajal was built for.
Zajal is still very new, but already does a lot. It supports vector
graphics, PDF/SVG/PNG export, fonts, images, videos and the Arduino
hardware platform with a lot more planned. What’s really exciting is
that all of this is live coded. The interpreter watches the file you are
editing and updates the relevant parts of the running script whenever
you update your code without restarting, allowing you to really sculpt
your project as you go.
It is provided as a GUI application and a terminal program to allow
automation of audio/visual tasks. In fact, my YARD extensions use
this functionality to generate screenshots on the fly from source code
(see http://docs.zajal.cc/Graphics:rectangle for an example). There are
plans to distribute Zajal as a gem further down the line.
I am also working on rubygems integration in Zajal. When complete, you
will be able to use any existing gem in creative coding projects as well
as publish Zajal-specific gems for others to use. Something as simple as
gem install zajal-kinect could give you access to the Kinect camera.
A more complete writeup is at http://bit.ly/jfCHUZ and includes videos
of Zajal in action.
Unfortunately, the project is Mac only at the moment. I am in talks with
a linux guy to get a port going and I know linux very well myself, so
this shouldn’t be too far off. Windows is a bit harder, but it will
So if you’re a creative coder who longs to work in Ruby, or a Ruby
hacker who’s interested in generating graphics or videos quickly, or
just geek like me who enjoys a fun language, check Zajal out! I would
love to hear what you all think!
http://zajal.cc/ - Main site (download the GUI frontend)
https://github.com/nasser/zajal/ - Code (build CLI frontend from source)
http://docs.zajal.cc/ - Documentation (in varying states of completion)
http://sketch.zajal.cc/ - Sketch book with example code
http://forum.zajal.cc/ - Forums
http://blog.zajal.cc/ - Developer blog
http://twitter.com/zajalcode - Twitter mirror of the blog
http://openframeworks.cc - openFrameworks
http://processing.org - Processing