ArticleslgStudy

computer science

Processing

Processing is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Processing rather than just read about it. In short: Processing is a graphics 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. It is free and open-source software released under a GNU General Public License (GPL) and a GNU Lesser General Public License (LGPL).

Processing — main illustration
Processing — illustration

Key takeaways

  • Processing belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Processing to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Processing from memory before moving on to harder problems.

Reference excerpt

Processing is a graphics 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. It is free and open-source software released under a GNU General Public License (GPL) and a GNU Lesser General Public License (LGPL). Processing uses the Java programming language, with added simplifications such as added classes and aliased mathematical functions and operations. It also provides a graphical user interface to simplify the compiling and executing stage. The Processing language and IDE are the precursor to other projects including Arduino and Wiring.

History The project was begun in 2001 by Casey Reas and Ben Fry, both formerly of the Aesthetics and Computation Group at the MIT Media Lab. In 2012, they founded 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. Originally, Processing had used the domain name proce55ing.net, in leet spelling, because the name processing 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 used occasionally (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.

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 (formerly a subclass of Java's built-in Applet) which implements most of the Processing language's features. When programming in Processing, all added 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 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 (character), float (real number), and color (RGB, RGBA, hex).

Examples The simplest possible version of a "Hello, world" program in Processing is:

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.

Awards In 2005 Reas and Fry won the Golden Nica award from Ars Electronica 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 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

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. Since April 2022, p5.js has been led by Qianqian Ye, an Adjunct Associate Professor of Media Arts at USC.

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.

Processing.js Processing.js is a discontinued JavaScript port that enabled existing Processing Java code to run on web. It was released first in 2008 by John Resig. The project was later run through a partnership between the Mozilla Foundation and Seneca College, led by David Humphrey, Al MacDonald, and Corban Brook. Processing.js 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.

P5Py p5 is a Python library that provides high level drawing functionality to 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.

… excerpt ends here. Continue reading the full article.

Illustrations

Processing illustration
Processing illustration
Processing: p5.js Logo
p5.js Logo

Worked examples

Example 1 — a first encounter with Processing

Start with the simplest possible case. Write down what Processing claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Processing before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Processing ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Processing

In research
Processing appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Processing in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Processing is common in secondary-school and first-year university syllabi. It links to neighbouring topics 2001 software, Animation software, Computer graphics, so understanding it makes those chapters shorter.
In everyday life
Look for Processing outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Processing in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Processing means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Processing out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Processing in simple terms?

Processing is a graphics 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. It is free and open-source software re…

Why does Processing matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Processing?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Processing.

Tags

  • 2001 software
  • Animation software
  • Computer graphics
  • Creative coding
  • Cross-platform free software
  • Cross-platform software
  • Educational programming languages
  • Free computer libraries
  • JVM programming languages
  • Java (software platform)
  • Java programming language family
  • Object-oriented programming languages

Keep exploring