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

The following libraries are included with the Processing software. To include a library, select its name from the "Import Library..." option in the Sketch menu. These libraries are open source; the code is distributed with Processing.

Video

Read images from a camera, play movie files, and create movies.

Network

Send and receive data over the Internet through simple clients and servers.

Serial

Send data between Processing and external hardware through serial communication (RS-232).

PDF Export

Create PDF files. These vector graphics files can be scaled to any size and printed at high resolutions.

DXF Export

Create DXF files to save geometry for loading into other programs. It works with triangle-based graphics including polygons, boxes, and spheres.

» Minim

Uses JavaSound to provide an easy-to-use audio library while still providing flexibility for more advanced users.

» Arduino

Directly control an Arduino board through Processing.

» Netscape.JavaScript

Methods for interfacing between Javascript and programs exported from Processing.


Contributions

Contributed Libraries must be downloaded individually. Select "Add Library..." from the "Import Library..." submenu within the Sketch menu. Not all available libraries have been converted to show up in "Add Library...". If a library isn't there, it will need to be installed manually. Follow the How to Install a Contributed Library instructions on the Processing Wiki for more information.

Contributed libraries are developed, documented, and maintained by members of the Processing community. For feedback and support, please post to the Forum. For development discussions post to the Libraries and Tool Development topic. Instructions for creating your own library are on the Processing Google Code site.

 



Top Sound

» p5_sc

by Daniel Jones
SuperCollider for Processing, an implementation of many core elements of SuperCollider's client-side language.

» 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.

» Beads

by Ollie Bown
A realtime audio library for computer music and sonic art in realtime performance, installation artworks, web content and more.

» 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.

» ttslib

by Nikolaus Gradwohl
ttslib is a wrapper around freetts and can be used to give your sketches a voice.

» Sonia

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

SoundCipher

by Andrew R. Brown
SoundCipher provides an easy interface for playing 'notes' on the JavaSound synthesizer and for playback of audio files.

» Echonestp5

by melka
A wrapper to simplify the use of the Echo Nest API.

 

Top Import \ Export

» OBJ Loader

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

» supercad

by Guillaume Labelle
Lets you export code to many 3d formats such as AutoCAD, Rhino, or SketchUP.

» blinkenlights exporter

by ruin & wesen
This Processing library is designed to export sketches to the Blinkenlights BML file format

» IgnoCodeLib

by Paul Hertz
A library for exporting Bézier geometry to Adobe Illustrator.

» sDrop

by Andreas Schlegel
A drag and drop implementation for Processing.

» unzipit

by Yonas Sandbaek
Reading Bytes, Strings, PFonts or PImages from a Zip-File.

» postToWeb

by Yonas Sandbaek
Upload files to a web server, supported formats are pdf, png, jpeg, gif and tiff.

» Collada-Loader

by Markus Zimmermann
Collada-Loader allows you to import dae or kmz files into Processing.

» povwriter

by Martin Prout
Export Processing Sketches to Povray.

» MRI3DS

by Victor Martins
Load 3d studio .3ds files into your processing sketches.

» ObjImport

by Victor Martins
This library imports .obj files and supports groups, material references, vertex-, normal-, and texture-coordinates.

» fluid forms libs

Stephen Williams
Fluid Forms Libs aims to provide functionalities to processing that are often require when creating physical forms with code.

 

Top 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.

» fullscreen api

by Hansi Raber
A library for fullscreen support, including dual screen.

» Timeline

by D. Rifkin
The timeline tool is a graphical tool that allows you to draw curves representing variables over time.

» gwoptics

by Daniel Brown and Andreas Freise
This library provides a set of tools for drawing graphs in 2D or 3D for simple scientific simulations or data displays.

» Unfolding

by Till Nagel, Felix Lange, et al.
A tile-based map library enabling you to rapidly create interactive maps. Basic interactions such as Zoom & Pan are included. Other functionality such as Overview+Detail, or multitouch gestures can be easily added.

» Proclipsing + P5Exporter

by Brian Ballantine, Daniel C. Howe and Matt Parker
Development tools to facilitate using the Eclipse IDE to write Processing applications. Proclipsing allows you to easily create and maintain a Processing project in Eclipse. P5Exporter mimics Processing's PDE export code in an Eclipse plugin for simple export of applications and applets.

» Keystone

by David Bouchard
A video projection mapping library which allows to warp sketches onto any flat surface by using corner pin keystoning.

» napplet

by Adam Smith
A library for creating and managing sketches that can be embedded in other sketches and share their display space.

» layers

by Michael Krumpus
Create sketches with multiple layers that are drawn independently of one another.

» TimedEvents new

by Jason Gessner
A couple of classes for firing off timed events at regular or random intervals.

» Mother

by Ilias Bergstrom
A program that allows VJing with Processing sketches.

» terrapin

by George Bashi and Ollie Glass
Designed with LOGO's educational principles in mind, terrapin provides a turtle drawing object for Processing.

» picking

by Nicolas Clavaud
Picking aims at providing an easy-to-use library to enable picking in Processing sketches.

» Nest

by Eric Socolofsky
Scenegraph and mouse event handling system based loosely on ActionScript3.

» P8gGraphicsSVG new

by Philippe Lhoste
It is used in a way similar to PGraphicsPDF, as a renderer / recorder. It uses the Apache Batik library.

 

Top 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.

» proCONTROLL

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

» Gamepad

by Michael Heuer and Iain Lobb
A port of the Gamepad ActionScript library for Flash.

» Ketai new

by Daniel Sauter and j.duran
Android library for working with sensors, cameras, multi-touch, networking, Bluetooth, WiFi Direct, Near Field Communication, and SQLite.

» 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.

» novation launchpad

by Tobias Bielohlawek
This library provides an interface to access novation's launchpad programmatically.

» touchatag

by Augusto Esteves
A library to read from touchatag RFID readers.

» dmxP512 new

by Henri David
DMX output for ENTTEC DMX USB Pro and LanBox LCE.

» 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.)

» ProTablet

by Andres Colubri
A library that encapsulates the JPen package to access graphic tablets in Java.

» codethread

by Diatom Studio
Make GCode for the MakerBot with this Processing library.

» Frappuccino new

by James Caska
Develop 'Arduino' applications directly from Processing using the full power of the Java language and cross-platform driverless USB HID deployment to V18'O development boards.

 

Top Animation

» Shapetween

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

» ijeomamotion

by Ekene Ijeoma
A cross-mode Processing library for sketching animations with numbers, colors vectors, beziers, curves and more.

» gifAnimation

by Patrick Meister
Plays and exports GIF animations.

» Ani

by Benedikt Groß
A lightweight library for creating animations and transitions.

» motion

by Yonas Sandbaek
Motion simplified.

» sprites new

by Peter Lager
Sprite control and animation for games and graphic applications.

 

TopTypography / 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.

» point2line

by Carl Emil Carlsen
Basic tools for calculating geometry in two dimensions.

» MovingLetters

by Ilu
Typeface of moving, jittering letters.

» wordookie

by Michael Ogawa
A library to create wordle like word clouds.

 

Top 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.

» OpenCV

by Stephane Cousot and Douglas Edric Stanley
An OpenCV implementation for processing including blob detection, face recognition and more. This library is highly recommended.

» integralhistogram

by Giovanni Tarducci and Alessio Barducci
The integral histogram method allows to obtain the color or intensity histogram of all possible target regions in a Cartesian data space.

» flob

by Andre Sier
Fast multi-blob detector and simple skeleton tracker using flood-fill algorithms.

» blobscanner

by Antonio Molinaro
A library for blob detection and analysis in image and video streams.

» jmcvideo

by Angus Forbes
A simple wrapper for playing videos and grabbing video data for any of the formats that the JMC library supports.

» Face Detect (PC)

by Bryan Chung
Face detection library made with WebCamXtra and the openCV framework. PC only.

» TUIO Client

by Martin Kaltenbrunner
Client library for the simple creation of tangible interactive surfaces, receiving TUIO data from object and multi-touch trackers such as reacTIVision.

» P-SURF

by Claudio Fantacci and Alessandro Martini
An implementation of the SURF (Speeded Up Robust Features) feature detector to search for discrete image correspondences.

» openkinect

by Daniel Shiffman
A kinect implementation for Processing.

» simple-openni

by Max Rheiner
A simple OpenNI and NITE wrapper for Processing.

» 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.

» tuioZones

by jLyst
tuioZones provides a way to set zones within a multi-touch screen to respond to TUIO messages sent from a tracking application.

» CbModel

by Federico Bartoli
CbModel is a library for motion detection based on background modeling and subtraction.

» dLibs

by Thomas Diewald
This kinect library is based on the libfreenect-software, it currently only works on windows.

 

Top 3D

» OCD

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

» SuperPoint

by JohnG
Use large numbers of points and/or triangles in an OpenGL sketch.

» UnwrappingLib

by Martin Fuchs
Unwrap low polygon models for reconstruction and digital production.

» Shapes 3D

by Peter Lager
Create 3D shapes such as Helix, Cone, or Tube. Shapes are supported in P3D and OpenGL mode.

» marchingcubes new

by Andre Sier
Marching cubes implementation after Paul Bourke polygonize voxel.

» 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 Patrick Kochlik and Dennis Paul
Gestalt is an open structured environment, designed to prototype and develop OpenGL- and Java-based sketches and applications.

» anar

by LaBelle and Nembrini
A set of libraries for parametric modeling including simple a 3D scenegraph, geometric datastructures, export to various CAD formats, particle physics system and more.

» proscene

Jean Pierre Charalambos
Highly customizable and full featured yet simple to use camera library.

» Hemesh

Frederik Vanhoutte
Hemesh is an implementation of a half-edge datastructure for manipulating 3D meshes.

» PeasyCam

by Jonathan Feinberg
A mouse driven camera-control library for 3D sketches.

» Patchy

by Jonathan Feinberg
Renders 3D shapes known as "bicubic patches".

» VolTron

by Joseph Scully
VolTron allows you to plot 3D volumetric forms from .img and .raw.gz data sets as voxels or pixelclouds.

» GLGraphics

by Andres Colubri
GLGraphics is a library intended to extend the capabilities of the OPENGL renderer in Processing. It includes classes to handle opengl textures, image post-processing filters, 3D Models, and shaders in GLSL, Cg and CgFX.

 

Top Simulation / Math

» Physics

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

» MSAFluid

by Memo Akten
A library for solving real-time fluid dynamics simulations.

» AI Libraries

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

» papaya

by Adila Faruk
A collection of utilities for performing some statistical and matrix-related manipulations.

» cellularautomata new

by Andre Sier
Cellular automata in 1,2,3 dimensions.

» Cell Noise

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

» Eliza

by Andres Colubri
Implementation of the classes A.I. bot, Eliza.

» LSystem Utilities

by Martin Prout
A library for exploring and creating Lindenmayer Systems in 2D and 3D.

» fisica

by Ricard Marxer Pinon
A wrapper for JBox2D, a 2D physics engine.

» dna new

by Andre Sier
Simple dna library with mutation and crossovers from Karl Sims' paper.

» MatrixMath

by Francis Bitonti
Helpful code for matrix operations.

» Cellular Automata

by Francis Bitonti
Simplifies making cellular automata calculations.

» BoxWrap2D

by ewjordan
BoxWrap2D runs on top of JBox2D enabling simple integration of JBox2D with Processing.

» Combinatorics

by Florian Jenett
Generate combinations, variations and permutations.

» boids new

by Andre Sier
Simulation of autonomous agent behaviors in 2D, 3D.

 

TopGraphic 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.

» ezGestures

by Elie Zananiri
A modular gesture recognition library.

» $1 Unistroke Recognizer new

by Darius Morawiec
Implementation of the $1 Gesture Recognizer, a template based gesture recognition.

» Interfascia

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

» GUIDO

by Florian Jenett
A simple cross mode GUI library.

» G4P

by Peter Lager
Provides a set of 2D GUI controls and multiple window support. Controls include buttons, sliders, knobs, labels, textfields, timers, combo boxes, option buttons etc. and multiple windows.

» Piccolo2D

by Michael Heuer
Processing integration for Piccolo2D, a structured 2.5D graphics API for building ZUIs.

 

Top Compilations

» ModelBuilder

by Marius Watz
ModelBuilder focuses on computational 3D modelling for digital fabrication. Once a model is built ModelBuilder provides convenient methods to centering it around origin, scaling to given dimensions and outputting to STL format.

» gicentreUtils

by gicentre.org
A library to assist creation of data visualization sketches. Includes color utilities, statistical graphics, morphing classes, spatial utilities and map projections, text input/output and multi-sketch tools.

» toxiclibs

by toxi
Code for audio (JOAL), working with geometry, image filters, optimized math functions, and more.

» victamin

by Victor Martins
Code for using GLSL/Cg/CgFX shaders, FBOs, import 3DS and OBJ files, sending and receiving SMS message.

» Hermes new

by Ryan Lester, Chris Novello, Sam Eilertsen, and Jen Kovnats
Experimental game framework and engine for rapid prototyping of games and simulations.

» generativedesign

by Hartmut Bohnacker, Benedikt Groß
This library belongs to the book Generative Gestaltung. It supplies various classes and functions for 3d-surfaces, simple physics (nodes, springs, attractors), graphic tablets, ASE-export or asynchronous loading of xml, html and images.

» iGeo

by Satoru Sugihara
A 3D modeling software library for computational design in architecture, product design, interaction design and more. It includes libraries of vector math operations, NURBS curve and surface geometries, polygon meshes and 3D model file I/O.

 

Top 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.

» themidibus

by Severin Smith
Handles real time inbound/outbound MIDI in a simple way.

» 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.

» romefeeder

by Bruno Nadeau
facilitates the management of syndicated feeds.

» MapThing

by Jon Reades
A collection of classes for reading ESRI-compliant Shape files (a.k.a. shapefiles) and displaying them as part of a sketch.

» Share new

by Maxime Walzberg (Nucky)
Classes to create a poll in a Processing sketch, and to read/send string messages to a server from a sketch.

» oscP5

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

» SQLibrary

by Florian Jenett
A library to facilitate communication with MySQL or SQLite databases.

» Carnivore

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

» Monomic

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

» XlsReader

by Florian Jenett
Lets you read data from xls (Excel) files.

» ical4p

by Nikolaus Gradwohl
This library allows the simple access of calendar events stored in a ical file.

» colorlib

by Andreas Koeberle, Jan Vantomme
Makes it easy to import color palettes from different files like .act and .cs or webservices like colr, kuler and colourLovers.

» Tweet Stream

by Mark McBride
The Tweet Stream library provides a simple way to access the Twitter streaming API from within Processing.

» gml4u

by Jérôme Saint-Clair
A Graffiti Markup Language library for Processing. GML is an open file format designed to store graffiti motion data.

» proJMS new

by Hauke Altmann
Publish and consume text messages to create peer-to-peer communication between Processing applications.

» UDP

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

» RiTa

by Daniel C. Howe
A library for experiments in natural language and generative writing.

» 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.

» EEML Library

by Usman Haque
Extended Environments Markup Language (EEML) is a protocol for sharing sensor data between remote responsive environments, both physical and virtual.

» 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.

» Arduino Library

by David A. Mellis
This Processing library communicates with Arduino boards that are running a standard firmware called Firmata.

» GoogleWeather

by onformative
Framework for including weather data into Processing.