Libraries. Extending Processing beyond graphics and image, libraries enable audio, video, and communicating with other devices.

Core Libraries

Video

Interface to Apple's QuickTime for using a camera, playing movie files, and creating movies.

Network

Sending and receiving data via the Internet through the creation of simple clients and servers.

Serial

Supports sending data between Processing and external hardware via serial communication (RS-232).

Candy SVG Import

A minimal SVG file importer. Loads and displays vector files.

XML Import

A minimal XML importer.

OpenGL

Support for exporting OpenGL accelerated sketches. Utilizes the JOGL library.

PDF Export

Generates PDF files.

DXF Export

Lines and triangles from P3D or OPENGL rendering modes can be sent directly to a DXF file.

» Netscape.JavaScript

Methods for interfacing between Javascript and Java Applets exported from Processing.

Contributions

Sound

» Minim

by Damien Di Fede
Uses the JavaSound API to provide an easy-to-use audio library. A simple API while still providing a reasonable amount of flexibility for more advanced users.

» Ess

by Krister Olsson
Sound library that allows sound sample data to be loaded or streamed, generated in real-time, manipulated, saved, analyzed or simply played back.

» jm-Etude

by Daniel Dihardja
Provides functions to communicate with jMusic for easier music composition programming.

» Sonia

by Amit Pitaru
Audio library for sound playback and synthesis. Integrates Jsyn and requires a browser plugin for playback.

» Sonia Helper

by Marius Watz
Normalizes and damps the FFT analysis values produced by Sonia. This is built into Ess.

Import/Export

» OBJ Loader

by Tatsuya SAITO and polymonkey
Loads .OBJ files into Processing, includes geometry and texture data.

» Collada Export

by Marcus Wendt
Exports 3D geometry and material data in the COLLADA format.

» proSVG

by Christian Riekoff
Exports vector graphics in the .SVG format.

» SimplePostScript

by Marius Watz
Writing vector files in the PostScript format.

Tools

» proDOC

by Christian Riekoff
Generates documentation for Processing libraries from the source code. Requires inserting tags in the comments of the classes, fields, and methods.

» ImageAdjuster

by Dave Bollinger
Performs brightness, contrast, gamma and other such adjustments on images. Contains both high-level and low-level routines, and can be extended via user-defined transformations.

Hardware

» Most Pixels Ever

by Daniel Shiffman and Chris Kairalla
Framework for spanning Processing sketches across multiple screens.

» Apple SMS

by Daniel Shiffman
Interface to the Apple Sudden Motion Sensor in PowerBooks (and MacBooks) since 2005.

» Apple Light Sensor

by Martin Rädlinger
Interface to the Light Sensor in MacBook Pro computers.

» NXTComm

by Jorge Cardoso
Allows control of the Lego Mindstorms NXT robots.

Animation and Typography

» Shapetween

by Elie Zananiri and Golan Levin
An easy way to animate elements in a variety of ways.

» NextText

by Elie Zananiri / Obx Labs
Assists in making dynamic and interactive text-based applications.

» MovingLetters

by Ilu
Typeface of moving, jittering letters.

Computer Vision

» BlobDetection

by v3ga
Performs the computer vision technique of finding "blobs" in an image.

» reacTIVision TUIO

by Martin Kaltenbrunner
Interface to the reacTIVision vision engine for object tracking.

» LibCV

by toxi
Grabs video frames from a camera using the Java Media Framework (JMF). Does not require QuickTime or WinVDIG for Windows machines.

» JMyron (WebCamXtra)

by Josh Nimoy et al.
Camera library for motion detection, color tracking, glob distinction, and pixel addressing. Does not require QuickTime or WinVDIG for Windows machines.

3D

» OCD

by Kristian Linn Damkjer
The Obsessive Camera Direction (OCD) library allows intuitive control and creation of Processing viewport Cameras.

» surfaceLib

by Andreas Köberle and Christian Riekoff
An easy way to create different 3D surfaces. Contains a library of surfaces and a class to extend.

» Gestalt

by d3 and senor pako
Gestalt is an open structured environment, designed to prototype and develop OpenGL- and Java-based sketches and applications.

» Fog

by JohnG
Simple fog effect for Processing using P3D and OPENGL renderers.

» Vector 3D

by Dan Shiffman
The Vector3D class from The Nature of Code course.

Simulation \ Math

» Physics

by Jeffrey Traer Bernstein
Simple particle system physics engine. No collisions, just particles, springs, gravity & drag.

» AI Libraries

by Aaron Steed
A set of libraries to assist with artificial programming tasks such as genetic algorithms and the AStar algorithm.

» Cell Noise

by Carl-Johan Rosén
Explores cell noise (Worley noise), a pattern generation algorithms useful for animation.

» Oscillator

by taka
Useful for generating series of waves.

» MatrixMath

by Francis Bitonti
Helpful code for matrix operations.

Interface

» controlP5

by Andreas Schlegel
Custom GUI elements with the ability to show/hide and move while the program is running.

» proCONTROLL

by Christian Riekoff
Allows Processing to communicate with control devices like joysticks and joypads.

» MyGUI

by Markavian
Implements buttons, radio button, checkboxes, sliders, and scroll bars.

» Interfascia

by Brendan Berg
Provides a toolkit of standard interface widgets like text fields, buttons, checkboxes, sliders, etc.

» SpringGUI

by Philipp Seifried
GUI library that wraps around the java.awt components.

» JTablet

by Cellosoft
Graphics tablet access for Java applets (while this is not strictly a Processing library, it's extremely useful and easy to interface.)

Compilations

» unlekkerLib

by Marius Watz
Contains code for STL import and export, Mersenne Twister pseudo-random number generator, a TileSaver class for creating high-res images from OpenGL graphics by tiling the viewport, and for checking line intersection and collision with complex 2D polygons.

Data \ Protocols

» Yahoo! Search Library

by Daniel Shiffman
Access the Yahoo! Search API directly in Processing.

» SFTP

by Daniel Shiffman
Allows Processing to use SFTP for secure file transfer; uses JSch (Java Secure Channel).

» Switchboard

by Jeff Crouse
Web services library. Helps in extracting data from services such as Google, Yahoo, Amazon, Del.icio.us, Flickr, and many more.

» proMidi

by Christian Riekoff
Allows Processing to send and receive midi information.

» proHTML

by Christian Riekoff
Allows Processing to take an HTML document and change it from a linear string to a tree structure.

» proXML

by Christian Riekoff
Allows Processing to read and write XML files.

» Google API

by Tatsuya SAITO
Interface to query web pages through Google search.

» oscP5

by Andreas Schlegel
An OpenSound Control (OSC) implementation for Processing.

» MySQL

by Florian Jenett
Facilitates communication with a MySQL database.

» Carnivore

by RSG
A TCP/UDP packet sniffer library for the Processing programming language.

» MaxLink

by Jesse Kriss
Enables communication between Processing and Max/MSP 4.5

» Monomic

by Jesse Kriss
Enables communication between Processing and the monome 40h device.

» UDP

by Stephane Cousot
Enables simple UDP communication, as well as multicast support.

» xmlrpclib

by Burak Arikan
An XML-RPC library for Processing. XML-RPC is a widely adopted Remote Procedure Calling protocol that works over the Internet.

» EnvironmentXML

by Usman Haque
Enables simple access to and from the EnvironmentXML website, which hosts a repository of data feeds from different environments around the world.

» ID3

by Jorge Cardoso
Allows Processing to read the ID3v1.1 tags from MP3 files.

» QRCode

by Daniel Shiffman
Reads QR Code images, a two-dimensional barcode format.

» Social Networks Library

by Todd Holloway
Contains network library components, but emphasizes tools for selecting subsets and traversing the network.

 

Information about contributing a library is included in "howto.txt", located in the "libraries" folder included with the Processing software. For further information, visit the discourse.