controlP5 is a library written by Andreas Schlegel for the programming environment processing. Last update, 07/30/2015.

Controllers to build a graphical user interface on top of your processing sketch include Sliders, Buttons, Toggles, Knobs, Textfields, RadioButtons, Checkboxes amongst others and can be easily added to a processing sketch. They can be arranged in separate control PGraphics contexts, and can be organized in tabs or groups. → read more.


Unzip and put the extracted controlP5 folder into the libraries folder of your processing sketches. Reference and examples are included in the controlP5 folder.


Keywords gui, ui, controller, interface, user interface

Reference. Have a look at the javadoc reference here. a copy of the reference is included in the .zip as well.

Source. The source code of controlP5 is available on github, and its repository can be browsed here.

Platform osx, windows, linux
Processing 2.2.1
Dependencies none

User interface for the 'vulcano generator'. project synthazards, syntfarm.

A complete list of features can be found on controlP5's github page.


Automatic controller-event detection
ControlP5 offers a range of controllers that allow you to easily change and adjust values while your sketch is running. Each controller is identified by a unique name assigned when creating a controller. ControlP5 locates variables and functions inside your sketch and will link controllers to matching variables or functions automatically ControlP5toggle → example. Controller changes can easily be captured within your sketch by implementing the controlEvent function ControlP5controlEvent → example.

Show, hide, load, save
Controllers that have been added to your sketch can be arranged in tabs and groups to keep your controller sets organized. All controllers are drawn on top of a processing sketch by default. Several key combinations allow you to show and hide the user interface, and to saved and loaded ControlP5 properties, ControlP5properties → example. The position of a controller can be adjusted during runtime by moving a controller while the ALT-key is pressed.

ALT-mouseMove move controllers
ALT-h show and hide controllers
ALT-shift-s save controller setup in an properties-document
ALT-shift-l load a controller setup from a properties-document

Custom Fonts
By default controlP5 uses a bitFont to render text. To display text in PFont-format, controlP5 uses a wrapper called ControlFont ControlP5controlFont → example.

Custom Buttons
Create controllers which use image based states instead of the default controlP5-look ControlP5button → example. experimental


Find a list of examples in the current distribution of controlP5, or have a look by following the links below. If you want to share any examples, please let me know (andi at sojamo dot de).