The following libraries are included with the Processing software. To add one to a project, select its name from the "Import Library..." option in the Sketch menu. These libraries are open source; the code is distributed with Processing.
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.
Contributed libraries are developed, documented, and maintained by members of the Processing community. Each must be downloaded separately and added to the "libraries" folder inside the Processing application folder. Further directions are included with each library. For feedback and support, please post to the Discourse. We strongly encourage all libraries to be open source, but not all of them are. Information about creating a library is here.
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.
This library is highly recommended for beginners. It is clear and well documented.
» p5_sc
by Daniel Jones
SuperCollider for Processing, an implementation of many core elements of SuperCollider's
client-side language.
» jm-Etude
by Daniel Dihardja
Provides functions to communicate with jMusic
for easier music composition programming.
» 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.
» Tactu5
by Alessandro Capozzo
Aids the creation of algorithmic music in real time. Consists of a set of classes focused
in defining musical elements, utility classes, and an aggregator.
» 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.
» Broadcaster
by Chandler McWilliams
Provides event dispatching and listener management.
» 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 Interface
» Most Pixels Ever
by Daniel Shiffman and Chris Kairalla
Framework for spanning Processing sketches across multiple screens.
» NXTComm
by Jorge Cardoso
Allows control of the Lego Mindstorms NXT robots.
» 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.
» Tablet
by Marcus Wendt
Drawing tablet library with access to your pressure, tilt and rotational data.
» 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.)
Animation
» Shapetween
by Lee Byron and Golan Levin
An easy way to animate elements in a variety of ways.
» gifAnimation
by Patrick Meister
Plays and exports GIF animations.
Typography / Geometry
» NextText
by Elie Zananiri / Obx Labs
Assists in making dynamic and interactive text-based applications.
» Geomerative
by Ricard Marxer Pinon
Extends 2D geometry operations to facilitate generative geometry. Includes a TrueType font interpreter.
» Vertext
by Michael Chang
Enables drawing giant, detailed typography at high frame rates.
» MovingLetters
by Ilu
Typeface of moving, jittering letters.
Computer Vision / Video
» GSVideo
by Andres Colubri
Uses GStreamer as an alternative to QuickTime for movie playback and camera capture.
» 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.
» Face Detect (Mac)
by Jaegon Lee
Face detection library made with WebCamXtra and the openCV framework. Mac only.
» Face Detect (PC)
by Bryan Chung
Face detection library made with WebCamXtra and the openCV framework. PC only.
» 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.
» LibCV
by toxi
Grabs video frames from a camera using the Java Media Framework (JMF).
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.
» P5Sunflow
by Mark Chadwick
Rendering 3D form using Sunflow, a raytracer written in Java.
» 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.
» Eliza
by Andres Colubri
Implementation of the classes A.I. bot, Eliza.
» 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.
» Cellular Autonmata
by Francis Bitonti
Simplifies making cellular automata calculations.
Graphic Interface
» controlP5
by Andreas Schlegel
Custom GUI elements with the ability to show/hide and move while the program is running. This library is highly recommended.
» proCONTROLL
by Christian Riekoff
Allows Processing to communicate with control devices like joysticks
and joypads.
» 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.
» MyGUI
by Markavian
Implements buttons, radio button, checkboxes, sliders, and scroll
bars.
» ezGestures
by Elie Zananiri
A modular gesture recognition library.
Compilations
» unlekkerLib
by Marius Watz
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.
» toxiclibs
by toxi
Code for audio (JOAL), working with geometry, image filters, optimized math functions, and more.
Data / Protocols
» bluetoothDesktop
by Patrick Meister
Send and receive data via Bluetooth wireless networks.
» 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).
» XBee
by Rob Faludi / Dan Shiffman
Interfaces with Digi’s XBee radios.
» 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.
» Cookie Monster
by Gregory Jordan
Creates and reads cookies from Processing applets.
» UDP
by Stephane Cousot
Enables simple UDP communication, as well as multicast support.
» RiTa.Wordnet
by Daniel C. Howe
Provides access to the Wordnet ontology as well distance metrics.
» 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.
