A port of the Processing language to Julia



A port of the Processing language (https://www.processing.org) to Julia.

It mainly uses ModernGL.jl and GLFW.jl behind the scenes. Please note that this package assumes that you have a graphics card/driver which supports OpenGL 3.2 or greater. If your computer is about 4-5 years old, then that is most likely the case. A convience function will soon be added to easily report what versions of OpenGL your card supports. In the worst case scenario, you can fall back onto a 2D-only Cairo/TK supported backend by importing the Processing2D.jl file, rather than entering "using Processing". See the "basic2D.jl" example in the "test/" directory for demo of how to go about this easily.

At the moment, this package is based on "hand-written" code, in order to see how much speed can be attained in a raw OpenGL setting. That code is slowly being transferred to the GLAbstraction.jl, GLWindow.jl, and GLVisualize.jl packages and those packages will eventually become the main support for Processing.jl. This development will take place in a separate branch. The master branch will remain the recommended version for the time being, since it is tested and mostly stable. Any bug fixes will be ported to both branches.


Mac OS X

This package is developed on a 13" Macbook Pro with an Intel card. So far, my experience is that on OS X 10.10 and 10.11, everything just works. However, the assumption is made that you have a Retina screen if you are using a Mac. This will be amended soon. Anyway, to install, just run the following:



Only tested on Ubuntu 14.04 LTS with the opensource ATI drivers. First, make sure that the required packages for GLFW.jl are installed:

sudo apt-get update
sudo apt-get install cmake xorg-dev libglu1-mesa-dev

(Note: I found that cmake was not installed on the machine that I was using. The GLFW C code assumes that you have cmake installed, so we installed via apt-get here.)

Then, install the rest as usual:



Only tested on a Windows 7 machine with an ATI card. Install the package as usual:



For some features, such as alpha blending or point smoothing, we ask OpenGL to simply perform this operation. This means that it will depend on the algorithms that your graphics card supplier/driver has implemented. I have already noticed visible differences between rendering on Windows and Mac. These differences should soon be amended with our own shader-based implementations of these functions.


Processing is an open graphics programming language developed by Ben Fry & Casey Reas. This port was developed by Robert Ennis with the help of @SimonDanisch and @o-jasper. It is mainly maintained by Robert Ennis.

First Commit


Last Touched

about 1 month ago


41 commits

Used By: