Processing river herrings.jpg
   HOME

TheInfoList



OR:

Processing is a
free Free may refer to: Concept * Freedom, having the ability to do something, without having to obey anyone/anything * Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism * Emancipate, to procur ...
graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming in a visual context. 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 Arduino and Wiring.


History

The project was initiated in 2001 by
Casey Reas Casey Edwin Barker Reas (born 1972), also known as C. E. B. Reas or Casey Reas, is an American artist whose conceptual, procedural and minimal artworks explore ideas through the contemporary lens of software. Reas is perhaps best known for having ...
and
Ben Fry Benjamin Fry is an American designer who has expertise in data visualization. Early life and education Fry was born in 1975 in Ann Arbor, Michigan, Ann Arbor, Michigan (born 1975)."Inside design now: National Design Triennial", by Ellen Lupton ...
, both formerly of the Aesthetics and Computation Group at the MIT Media Lab. In 2012, they started the Processing Foundation along with
Daniel Shiffman Daniel Shiffman (born July 29, 1973) is a computer programmer, a member of the Board of Directors of the Processing Foundation, and an Associate Arts Professor at the Interactive Telecommunications Program (ITP) at New York University Tisch Scho ...
, who joined as a third project lead.
Johanna Hedva Johanna Hedva (born 1984) is a Korean Americans, Korean American contemporary artist, writer, and musician. They are the author of the 2018 novel ''On Hell'', and ''Minerva the Miscarriage of the Brain'', a collection of poetry, plays, and essays ...
joined the Foundation in 2014 as Director of Advocacy. 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. 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. In 2012 the Processing Foundation was established and received 501(c)(3) nonprofit status, 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 Processing is a free graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming ...
.


Features

Processing includes a ''sketchbook'', a minimal alternative to an integrated development environment (IDE) for organizing projects. Every Processing sketch is actually a subclass of the PApplet
Java class A Java class file is a file (with the filename extension) containing Java bytecode that can be executed on the Java Virtual Machine (JVM). A Java class file is usually produced by a Java compiler from Java programming language source files ( fi ...
(formerly a subclass of Java's built-in Applet) which implements most of the Processing language's features. When programming in Processing, all additional classes defined will be treated as inner classes when the code is translated into pure Java before compiling. This means that the use of static variables and
methods Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scien ...
in classes is prohibited unless Processing is explicitly told to code in pure Java mode. Processing also allows for users to create their own classes within the PApplet sketch. This allows for complex data types that can include any number of arguments and avoids the limitations of solely using standard data types such as: int (integer),
char Char may refer to: People *Char Fontane, American actress *Char Margolis, American spiritualist * René Char (1907–1988), French poet *The Char family of Colombia: ** Fuad Char, Colombian senator ** Alejandro Char Chaljub, mayor of Barranquilla ...
(character), float (real number), and color (RGB, RGBA, hex).


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 is a better example of the look and feel of the language. // Hello mouse. void setup() void draw()


Awards

In 2005 Reas and Fry won the Golden Nica award from
Ars Electronica Ars Electronica Linz GmbH is an Austrian cultural, educational and scientific institute active in the field of new media art, founded in Linz in 1979. It is based at the Ars Electronica Center (AEC), which houses the Museum of the Future, in the ...
in its Net Vision category for their work on Processing. Ben Fry won the 2011 National Design Award given by the
Smithsonian Cooper-Hewitt National Design Museum Cooper Hewitt, Smithsonian Design Museum is a design museum housed within the Andrew Carnegie Mansion in Manhattan, New York City, along the Upper East Side's Museum Mile. It is one of 19 museums that fall under the wing of the Smithsonian Ins ...
in the category of Interaction Design. The award statement says:
"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."


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

Processing is not a single language, but rather, an arts-oriented approach to learning, teaching, and making things with code. There are several variants and related projects:


Design By Numbers

Processing was based on the original work done on
Design By Numbers Design By Numbers (DBN) was an influential experiment in teaching programming initiated at the MIT Media Lab during the 1990s. Led by John Maeda and his students they created software aimed at allowing designers, artists and other non-programmers ...
project at MIT. It shares many of the same ideas and is a direct child of that experiment.


Processing.js

Processing.js is a discontinued JavaScript port of Processing, a framework designed to write visualisations, images, and interactive content. It allows web browsers to display animations, visual applications, games and other graphical rich content without the need for a Java applet or
Flash plugin Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is Software, computer software for viewing multimedia contents, executing rich Internet applications, and streaming media, streaming audio and vide ...
. Processing.js was originally created to allow existing Processing developers and existing code to work unmodified on web. Processing.js used JavaScript to render 2D and 3D content on the HTML canvas element, and was supported by browsers that have implemented this element (the latest versions of Mozilla Firefox, Opera, Internet Explorer,
Safari A safari (; ) is an overland journey to observe wild animals, especially in eastern or southern Africa. The so-called "Big Five" game animals of Africa – lion, leopard, rhinoceros, elephant, and Cape buffalo – particularly form an importa ...
and
Google Chrome Google Chrome is a cross-platform web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS ...
). The development of Processing.js was started by John Resig and then picked up by the CDOT group at Seneca College after its initial release in 2008. A team of students and professors finished the porting work to get Processing.js to parity with the Processing v1.0 API, fixing more than 900 bugs, shipping 12 releases, and creating a vibrant community in the process. The project was run through a partnership between the Mozilla Foundation and Seneca College, led by David Humphrey, Al MacDonald, and Corban Brook. Processing.js development was moved to GitHub in February 2010, receiving contributions from 58 individuals, and was kept at parity with Processing up to its API version 2.1 release. The project was discontinued in December 2018, two years after its active development had stopped. Processing.js is also used to advocate very basic programming to Students of all ages on Khan Academy by creating drawings and animations. Learners showcase their creations to other learners.


p5.js

In 2013,
Lauren McCarthy Lauren McCarthy is a Chinese-American artist and computer programmer based in Los Angeles. McCarthy creates artworks that use a variety of media and techniques, including performance, artificial intelligence and programmed computer-based interact ...
created
p5.js Processing is a free graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming ...
, a native JavaScript alternative to Processing.js that has the official support of the Processing Foundation.


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.


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.


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.


Wiring, Arduino, and Fritzing

Processing has spawned another project, Wiring, which uses the Processing IDE with a collection of libraries written in the C++ language as a way to teach artists how to program
microcontroller A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
s. There are now two separate hardware projects, Wiring and Arduino, using the Wiring environment and language.
Fritzing Fritzing is an open-source initiative to develop amateur or hobby CAD software for the design of electronics hardware, intended to allow designers and artists to build more permanent circuits from prototypes. It was developed at the University o ...
is another software environment of the same sort, which helps designers and artists to document their interactive prototypes and to take the step from physical prototyping to actual product.


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.


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.


Spde

Spde (Scala Processing Development Environment) replaces Processing's reduced Java syntax and custom preprocessor with the off-the-shelf Scala programming language which also runs on the Java platform and enforces some of the same restrictions such as disallowing static methods, while also allowing more concise code, and supporting functional programming.


JRubyArt

JRubyArt (formerly named ''ruby-processing'') is a wrapper for Processing in the Ruby language, that runs on the Java platform using JRuby.


Quil

Quil is an interactive animation library for Clojure and ClojureScript based on Processing.


Media

The music video for " House of Cards" by
Radiohead Radiohead are an English rock band formed in Abingdon, Oxfordshire, in 1985. The band consists of Thom Yorke (vocals, guitar, piano, keyboards); brothers Jonny Greenwood (lead guitar, keyboards, other instruments) and Colin Greenwood (bass) ...
was created using Processing combined with data from
lidar Lidar (, also LIDAR, or LiDAR; sometimes LADAR) is a method for determining ranges (variable distance) by targeting an object or a surface with a laser and measuring the time for the reflected light to return to the receiver. It can also be ...
technology, along with using acrylic glass and mirrors to create scenes in which the image appears distorted, partially disappears, or disintegrate as if being carried by wind. Processing has also been used to create illustrations for publications such as '' Nature'' and '' The New York Times'', to output sculptures for gallery exhibitions, to control huge video walls and to knit sweaters.


See also

* Cinder (C++) *
OpenFrameworks openFrameworks is an open source toolkit designed for creative coding founded by Zachary Lieberman, Theo Watson and Arturo Castro. OpenFrameworks is written in C++ and built on top of OpenGL. It runs on Microsoft Windows, macOS, Linux, iOS, ...
(C++) * JavaFX * Max (software) *
Codea Codea.io is a code editor for iPad made by Two Lives Left. It is designed for prototyping visual ideas, primarily games and simulations. Finished projects can be exported directly from the app to Xcode. It is closely related to the Processing pro ...


Footnotes


References

* * * * * * * * * * * * * * *


External links

* {{Authority control Programming languages Animation software Computer graphics Cross-platform software Educational programming languages Free computer libraries Java platform Java programming language family JVM programming languages Object-oriented programming languages Physical computing Software using the LGPL license 2001 software Cross-platform free software Programming languages created in 2001 Creative coding