controlP5 is a library written by Andreas Schlegel for the programming environment processing. Last update, 12/23/2012.

ControlP5 is a GUI and controller library for processing that can be used in authoring, application, and applet mode. Controllers such as Sliders, Buttons, Toggles, Knobs, Textfields, RadioButtons, Checkboxes amongst others are easily added to a processing sketch. They can be arranged in separate control windows, 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.

Export to Applet

The security regulations for applets are very high and strict, in order to make controlP5 work properly within an applet, you need to make fields and functions which are used by controlP5 public in your code.


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 at google code, and its repository can be browsed here.

Platform osx, windows, linux
Processing 2.0b7
Dependencies none

A selection of controllers available with controlP5, more controllers in the examples section.

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


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

Control Windows
Add separate windows to your sketch. These windows can contain controlP5 controllers or you can simply use a ControlWindow to render an additional sketch in any renderer available. ControlP5controlWindow → example.

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 Controllers
Take a look at the ControlP5diyController → example which demostrates how to create your own custom controller.

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