Processing
Paradigm | Object-oriented |
---|---|
Designed by | Casey Reas, Ben Fry |
First appeared | 2001 |
Stable release | 4.3
/ July 26, 2023[1] |
LGPL | |
Filename extensions | .pde |
Website | processing |
Processing is a
Processing uses the Java language, with additional simplifications such as additional classes and aliased mathematical functions and operations. It also provides a graphical user interface for simplifying the compilation and execution stage.
The Processing language and IDE have been the precursor to other projects including
History
The project was initiated in 2001 by Casey Reas and Ben Fry, both formerly of the Aesthetics and Computation Group at the MIT Media Lab. In 2012, they started the Processing Foundation along with Daniel Shiffman, who joined as a third project lead. Johanna Hedva joined the Foundation in 2014 as Director of Advocacy.[2]
Originally, Processing had used the domain proce55ing.net, because the processing domain was taken; Reas and Fry eventually acquired the domain processing.org and moved the project to it in 2004.[3] While the original name had a combination of letters and numbers, it was always officially referred to as processing, but the abbreviated term p5 is still occasionally used (e.g. in "p5.js") in reference to the old domain name.[4]
In 2012 the Processing Foundation was established and received 501(c)(3) nonprofit status,[5] supporting the community around the tools and ideas that started with the Processing Project. The foundation encourages people around the world to meet annually in local events called Processing Community Day.[6]
Features
Stable release | 4.3
/ July 26, 2023 |
---|---|
Repository | |
Written in | Cross-platform |
Type | Integrated development environment |
Website | processing |
Processing includes a sketchbook, a minimal alternative to an integrated development environment (IDE) for organizing projects.[7]
Every Processing sketch is actually a subclass of the PApplet
When programming in Processing, all additional classes defined will be treated as
Processing also allows for users to create their own classes within the PApplet sketch. This allows for complex
Examples
The simplest possible version of a "Hello World" program in Processing is:
// This prints "Hello World." to the IDE console.
println("Hello World.");
However, due to the more visually-oriented nature of Processing, the following code[10] is a better example of the look and feel of the language.
// Hello mouse.
void setup() {
size(400, 400);
stroke(255);
background(192, 64, 0);
}
void draw() {
line(150, 25, mouseX, mouseY);
}
Awards
In 2005 Reas and Fry won the Golden Nica award from Ars Electronica in its Net Vision category for their work on Processing.[11]
Ben Fry won the 2011 National Design Award given by the
"Drawing on a background in graphic design and computer science, Ben Fry pursues a long-held fascination with visualizing data. As Principal of Fathom Information Design in Boston, Fry develops software, printed works, installations, and books that depict and explain topics from the human genome to baseball salaries to the evolution of text documents. With Casey Reas, he founded the Processing Project, an open-source programming environment for teaching computational design and sketching interactive-media software. It provides artists and designers with accessible means of working with code while encouraging engineers and computer scientists to think about design concepts."[12]
License
Processing's core libraries, the code included in exported applications and applets, is licensed under the GNU Lesser General Public License, allowing users to release their original code with a choice of license.
The IDE is licensed under the GNU General Public License.
Related projects
Design By Numbers
Processing was based on the original work done on Design By Numbers project at MIT. It shares many of the same ideas and is a direct child of that experiment.
p5.js
In 2013, Lauren McCarthy created p5.js, a native JavaScript alternative to Processing.js that has the official support of the Processing Foundation. p5.js gained over 1.5 million users.[13]
Since April 2022, p5.js has been led by Qianqian Ye, an Adjunct Associate Professor of Media Arts at USC.[14]
ml5.js
ml5.js is a p5.js library developed by NYU's ITP/IMA with funding and support provided by a Google Education grant.
Daniel Shiffman has made videos demonstrating ml5 and is a notable code contributor.
p5play
p5play is JavaScript game engine that uses p5.js for graphics and Box2D for physics.
Paolo Pedercini initiated p5.play (version 1) in 2015. Quinton Ashley became the project lead in 2022 and created p5play (version 3) to bridge the gap between Scratch and Unity for young game developers.
p5play has been primarily adopted by middle and high school educators as a tool for introducing object oriented programming concepts. It has more than 25,000 monthly users.[15]
Processing.js
Processing.js is a discontinued JavaScript port that enabled existing Processing Java code to run on web.
It was initially released in 2008 by
The project was discontinued in December 2018, two years after its active development had stopped.
P5Py
p5 is a Python library that provides high level drawing functionality to help you quickly create simulations and interactive art using Python. It combines the core ideas of Processing — learning to code in a visual context — with Python's readability to make programming more accessible to beginners, educators, and artists.[16]
Processing.py
Python Mode for Processing, or Processing.py is a Python interface to the underlying Java toolkit. It was chiefly developed by Jonathan Feinberg starting in 2010, with contributions from James Gilles and Ben Alkov.[17]
py5
py5 is a version of Processing for Python 3.8+. It makes the Java Processing jars available to the CPython interpreter using JPype. It can do just about everything Processing can do, except with Python instead of Java code.[18]
Wiring, Arduino, and Fritzing
Processing has spawned another project,
Mobile Processing
Another spin-off project, now defunct, is Mobile Processing by Francis Li, which allowed software written using the Processing language and environment to run on Java powered mobile devices. Today some of the same functionality is provided by Processing itself.[20]
iProcessing
iProcessing was built to help people develop native iPhone applications using the Processing language. It is an integration of the Processing.js library and a Javascript application framework for iPhone.[21]
Spde
Spde (Scala Processing Development Environment) replaces Processing's reduced Java syntax and custom preprocessor with the off-the-shelf
JRubyArt
JRubyArt (formerly named ruby-processing) is a
Quil
Quil is an interactive animation library for Clojure and ClojureScript based on Processing.[25][26]
Media
The music video for "
See also
- Cinder (C++)
- OpenFrameworks (C++)
- JavaFX
- Max (software)
- Codea
Footnotes
- ^ "Releases". GitHub. Retrieved 2023-08-11.
- ^ "People". processingfoundation.org. Archived from the original on 2019-10-05. Retrieved 2017-04-24.
- ^ "Processing 1.0 _ALPHA_ - processing.org". processing.org. Archived from the original on 2012-04-28. Retrieved 2017-12-24.
- ^ "What means number 5 in name "p5"? · Issue #2443 · processing/p5.js". GitHub.
- ^ Casey Reas; Ben Fry (May 29, 2018). "A Modern Prometheus". Medium.
- ^ "PCD". Medium.
- ISBN 978-1-4302-0310-0.
- ISBN 978-1-4842-3697-0.
- ISBN 978-1-4302-1980-4.
- ^ Tayste. "Hello Mouse - OpenProcessing". OpenProcessing.org. Retrieved 3 March 2022.
- ISBN 978-1-5126-0023-0.
- ^ http://cdn.cooperhewitt.org/2011/05/26/Final%20-%20CHNDM%20NDA%202011%20Winner%20Release%205-26-11.pdf [bare URL PDF]
- ^ "P5.js — Lauren Lee McCarthy".
- ^ "Qianqian Ye".
- ^ https://p5play.org
- ^ p5, p5py, 2021-09-29, retrieved 2021-10-12
- ISBN 978-1-4571-8679-0.
- ^ py5 documentation, hx2a, 2021-09-13, retrieved 2022-05-10
- ^ "Processing, Wiring, and Arduino (EE Tip 101) - Circuit Cellar". 18 September 2013.[permanent dead link]
- ^ "Android - Processing". Archived from the original on 2014-08-19. Retrieved 2013-06-03.
- ^ "iProcessing Puts Processing.js on iPhone - But What About Browsers? - CDM Create Digital Music". 11 February 2010. Archived from the original on 13 October 2019. Retrieved 23 July 2018.
- ^ "Spde: Spde". Technically.us. Archived from the original on 2011-08-02. Retrieved 2013-08-20.
- ^ "Coderspiel / Runaway processing". Technically.us. Archived from the original on 2016-11-10. Retrieved 2013-08-20.
- ^ "Coderspiel / Flocking with Spde". Technically.us. Retrieved 2013-08-20.
- ^ "Quil: animation in Clojure".
- ^ "Quil Intro".
- ISSN 0190-8286. Retrieved 2021-03-16.
- )
References
- Bohnacker, Hartmut; Gross, Benedikt; Laub, Julia; Lazzeroni, Claudius (August 22, 2012), Generative Design: Visualize, Program, and Create with Processing (1st ed.), ISBN 978-1616890773
- Glassner, Andrew (August 9, 2010), Processing for Visual Artists: How to Create Expressive Images and Interactive Art (1st ed.), A K Peters/CRC Press, p. 955, ISBN 978-1-56881-716-3, archived from the originalon April 21, 2011
- Reas, Casey; Fry, Ben (June 17, 2010), Getting Started with Processing (1st ed.), Make, p. 208, ISBN 978-1-4493-7980-3
- Noble, Joshua (July 21, 2009), Programming Interactivity: A Designer's Guide to Processing, Arduino, and Openframeworks (1st ed.), ISBN 978-0-596-15414-1
- Terzidis, Kostas (May 11, 2009), Algorithms for Visual Design Using the Processing Language (1st ed.), ISBN 978-0-470-37548-8
- Reas, Casey; Fry, Ben; Maeda, John (September 30, 2007), Processing: A Programming Handbook for Visual Designers and Artists (1st ed.), The MIT Press, p. 736, ISBN 978-0-262-18262-1, archived from the originalon April 17, 2011
- Fry, Ben (January 11, 2008), Visualizing Data (1st ed.), ISBN 978-0-596-51455-6
- Greenberg, Ira (May 28, 2007), Processing: Creative Coding and Computational Art (Foundation) (1st ed.), friends of ED, p. 840, ISBN 978-1-59059-617-3, archived from the originalon January 27, 2011
- Shiffman, Daniel (August 19, 2008), Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction (1st ed.), Morgan Kaufmann, p. 450, ISBN 978-0-12-373602-4
- Faludi, Robert (January 4, 2011), Building Wireless Sensor Networks: with ZigBee, XBee, Arduino, and Processing (1st ed.), ISBN 978-0-596-80774-0, archived from the originalon June 12, 2019, retrieved May 18, 2011
- Vantomme, Jan (September 20, 2012), Processing 2, Creative Programming Cookbook (1st ed.), ISBN 9781849517942, archived from the originalon July 2, 2014, retrieved February 25, 2013
- Pearson, Matt (June 1, 2011), Generative Art, A practical guide using Processing (1st ed.), Manning, p. 240, ISBN 9781935182627, archived from the originalon June 24, 2019, retrieved February 25, 2013
- Jan, Vantomme (September 20, 2012), Processing 2: Creative Programming Cookbook (1st ed.), ISBN 978-1849517942, archived from the originalon July 2, 2014, retrieved February 25, 2013
- Sauter, Daniel (May 2, 2013), Rapid Android Development: Build Rich, Sensor-Based Applications with Processing (1st ed.), Pragmatic Bookshelf, p. 300, ISBN 978-1937785062, archived from the originalon October 13, 2019, retrieved July 18, 2013
- Gradwohl, Nikolaus (May 20, 2013), Processing 2: Creative Coding Hotshot (1st ed.), ISBN 978-1782166726, archived from the originalon July 2, 2014, retrieved July 18, 2013