Skip to content
visual programming UI for openFrameworks
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.


ofxDuct is a proof of concept for a visual programming UI for openframeworks libraries and addons. ofxDuct follows the usual interface style for visual programming, the node graph, but uses different execution semantics (!!). ofxDuct is neither event based nor object oriented. Nodes represent functors, and the edges between the nodes indicate the data dependencies of these functors. These functors can represent any c++ function or functor, and the edges are strongly typed, and can represent any non abstract c++ type (and yes, that includes function pointers!). Execution of the graph is strict, executing each functor exactly once per cycle in order of data dependency between the nodes. serialization is done in json, and functors can have their own custom data fields for saving state between sessions.

I have implemented only a few functors here to show a working system, but I will keep adding to these myself, and gladly welcome any contributions. Adding stateless functions is actually super simple (checkout the unaryOp<> examples in the addPrototype section at the top of testApp.cpp to see what I mean).

building for current version of openFrameworks:

get ofxTimeline, and its dependencies, from

checkout my branch of ofxMSAInteractiveObject from

keyboard reference: s: save space: startup the timeline n: new functor d: show execution order at stdout

You can’t perform that action at this time.