Processing (formerly typeset Proce55ing ) is a library java and a development environment free (under license GNU GPL ), created by Benjamin Fry and Casey Reas , two artists US . Processing is the multimedia extension of Design by numbers , the graphical programming environment developed by John Maeda at the Massachusetts Institute of Technology’s Media Lab .

Processing is especially suited to interactive plastic and graphic creation. The software runs on Macintosh , Windows , Linux , BSD and Android . It is based on the Java platform – it allows to program directly in Java language.

There is also a version enabled for Processing, called Processing.js , this version can be executed in an environment HTML 5 or via node.js .

A new Javascript version is now available:  [ archive ] . The project is formally attached to Processing’s parent site.

Programs made with Processing can be read by web browsers equipped with the java plug-in, but also as independent applications for Windows, Linux or Mac OS X (actually any machine with a Java Virtual Machine ).


The main principle of Processing is the simplicity, in the implementation of the programs as in the syntax of the language. Adapted to graphic creation, Processing requires less effort than Java to perform simple tasks such as editing an animation at regular intervals (which allows animated creatives). Its functionality is limited to the needs of 2D and 3D image creators generated by programming, but can be extended, via external modules, to capturing a video stream, generating and manipulating sound, Interfacing input-output ports, etc.

Processing is aimed at “digital arts” artists and graphic designers, particularly in the field of graphic design and generative graphics. It allows to develop sketches.


One can write the traditional Hello world in this way:

Void setup ()
 println ( "Hello World!" );

And even so, without any preliminary statement:

 Println ( "Hello World!" );

However, the following method is probably more typical of Processing:

Void setup () {
 size ( 300 , 300 );
 Background ( 0 );
Void draw () {
 text ( "Hello world!" , Width / 2 , height / 2 );

The setup () and draw () handlers are two very important pre-defined functions in processing. The first one, setup (), is executed only once at the start of the program. The second, draw () is started at regular intervals, by default ten times per second.

Processing uses a rigorous typing and is case sensitive . The structure of its basic functions (comparisons, conditions, loops, etc.) is familiar to C ++ or Java users.

For example, a condition is evaluated as follows:

If ( a == 1 )
 print ( "ok" );

And a loop is constructed in this way:

For ( int i = 0 ; i < 255 ; i ++)
 print ( i );


The former Processing name, Proce55ing , was forged as the domain name was taken and the official site must have originally existed at . Now the authors of Processing have the domain name , they no longer use the old form of the name and do not recommend to use. However, many people abbreviate the name in p5 2 .

Extensions and alternative projects

The Arduino project , based on Processing , as its “ancestor”, Wiring 3 , allows the manipulation of external electronic circuits to interface sensors or various electronic devices (servo motors, leds …). Another software environment, Fritzing, was designed to help users prototype hardware for use with Arduino and Processing . The Mobile Processing project , as the name suggests, has the ambition to bring Processing to mobile phones. Finally, Processing.js is a JavaScript implementation of Processing.
Since version 1.5.1, Processing can produce applications for Android platform and access sensors specific to mobile devices (accelerometer, GPS, etc.). Since version 2.0, it can also export content directly to HTML5 / Javascript. A neighboring project, P5.js, allows to implement the language directly to web pages and to master the DOM .
There is, finally, a Python version of Processing, Implement the language directly to web pages and master the DOM . There is, finally, a Python version of Processing, Implement the language directly to web pages and master the DOM . There is, finally, a Python version of Processing,

Many external libraries can be added to Processing to access resources such as video, sound, facial recognition, Kinect camera, physical engines, and more.


  • Processing: Getting Started with Creative Programming , by Jean Michel Géridan and Jean-Noël Lafargue , Dunod Publishing , 2016 ( ISBN  9782100737840 )
  • Processing: Computer code as a tool of creation , by Jean-Michel Géridan and Jean-Noël Lafargue , ed. Pearson 2011 ( ISBN  978-2744024535 )
  • Generative Design – Design, Program, Visualize , by Julia Laub, Hartmut Bohnacker, Benedikt Grob and Claudius Lazzeroni. Ed. Pyramid. ( ISBN  978-2350172156 )
  • Processing  [ archive ] , free collective work in French / Flossmanuals
  • Programming Interactivity , by Joshua Noble, O’Reilly, 2009
  • Algorithms for Visual Design Using the Processing Language , by Kostas Terzidis, Wiley, 2009
  • Pixels, Patterns, and Processing , by Daniel Shiffman, Morgan Kaufmann, 2008
  • Processing: A Programming Handbook for Visual Designers and Artists , by Casey Reas and Ben Fry, MIT Press, 2007
  • Visualizing Data , by Ben Fry, O’Reilly, 2007
  • Processing: Creative Coding and Computational Art , by Ira Greenberg, Friends of Ed, 2007

Notes and references

  1. ↑  [ archive ]
  2. ↑ ” REAS C. Processing – Wiki – FAQ – Why Is It Called Processing? [Online] »  [ archive ] , on GitHub (accessed March 30, 2016 )
  3. ↑ Wiring  [ archive ] , an environment for programming and prototyping electronic cards for artistic skits or other