About

In 2012 I built ofxUI, a popular addon for openFrameworks that streamlined the creation of graphical user interfaces (GUIs). It provided a comprehensive set of tools for widget layout, spacing, font management, settings management, and widget callbacks, making it easy to build intuitive and good looking interfaces. ofxUI had a range of customization options — such as colors, fonts, widget sizes, padding, and layout—ofxUI can be tailored to suit the needs of any project.

Reinventing The Wheel

ofxUI had a bunch of widget, each of which I hand crafted and coded. It was fun to figure out how to (procedurally) recreate fundamental UI elements and design their interactions. ofxUI had buttons, toggles, matrix buttons, drop-down menus, vertical and horizontal sliders, range sliders, rotary sliders, number dialers, 2D pads, color pickers, labels, and text inputs. ofxUI utilized openFrameworks’ native drawing calls to render its widgets, allowing it to integrate seamlessly into openFrameworks projects. Installation was as simply as dragging and dropping the addon into your project.
Slide 1 of 6
Slide 2 of 6
Slide 3 of 6
Slide 4 of 6
Slide 5 of 6
Slide 6 of 6
1 / 6

Inspiration

ofxUI was inspired by popular UI libraries such as controlP5, GLV, SimpleGUI, and influenced by the aesthetics of Apple’s User Interface, Flat UI, GMUNK, and TRON. I developed ofxUI with the goal of creating a tool that combines the minimal elegance of controlP5 (widely used in Processing) with the flexibility and integration capabilities of openFrameworks. I admired the simplicity of simpleGUI for Cinder, but since I primarily work with openFrameworks, I wanted a solution that matched my workflow while offering intuitive usage, flexibility, and ease of integration.

Motivation

When I first started programming in C++, I struggled to find a UI solution that was easy to use and didn’t require additional dependencies. Most alternatives were complicated to set up, lacked documentation, or didn’t work out of the box. This motivated me to create ofxUI — a library that is simple, elegant, and powerful, just like ControlP5 for Processing, but built specifically for openFrameworks. My aim was to create a UI library that is both functional and visually appealing, so when presenting work to clients or releasing an app, it would have a polished look suitable for non-developers and designers alike. I took inspiration from the aesthetic and usability of widgets in MaxMSP, striving to build a similar experience for prototyping interfaces in C++.