Skip to content
GUI agnostic parameter management system for openFrameworks
C++ Makefile C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A GUI agnostic parameter management system for openFrameworks. I.e. For managing a bunch of parameters (toggles, buttons, ints, floats, dropdowns etc.) with ranges, groups, hierarchies etc. But it doesn't actually draw anything. The idea is that you can use this to manage your options or settings (or even, each of your modules can have its own parameter groups or hierarchies of options), and then you can save / load / manage presets for different groups of options, and use another lightweight wrapper addon to display on screen as a GUI (which could be on another computer as you could send the XML schema over the network).

Currently I have a custom opengl gui for this (ofxMSAControlFreakGui), but I now prefer to use ofxMSAControlFreakImGui which is a very lightweight wrapper for ImGui (using ofxImGui). I also used to have a native Cocoa GUI, but that is currently very out of date. One could easily write Cocoa, GTK, Qt, HTML5 etc. wrappers.


The main motivation is to be able to create, manipulate, save and load parameters (options / settings) as quickly and with as minimal code as possible with maximum flexibility. Goals are:

  1. Separate my data (i.e. parameters, options, settings, state etc) from displaying / visualising. So I can display using different GUIs, or send the schema to another computer for display.

  2. Add a new parameter with as minimal code as possible. E.g. params.addInt("my param") is enough and is ready to be used (will automatically be displayed, included in presets for save / load / send / receive etc).

  3. Access a parameter with as minimal code as possible. E.g. params["my param"].

  4. Allow a hierarchy where actions (save / load / display / send / receive etc) can be applied to the entire parameter group, or sub groups. Different modules can have parameters, and they can be joined or treated individually.

See the tutorial for details.


  • Add as a usual openframeworks addon (copy to your openframeworks/addons directory and add to your project)
  • Make sure addons folder (e.g. '../../../addons') is in your project's 'header search path' (I believe by default this is set)



The code in this repository is available under the MIT License.
Copyright (c) 2008-2017 Memo Akten,
The Mega Super Awesome Visuals Company

You can’t perform that action at this time.