An interface for controlling a 1D cubic spline, continuously evaluated and stored in a lookup table.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

ofxCurvesTool is an addon for openFrameworks

ofxCurvesTool provides an interface for controlling a cubic spline that is continuously evaluated and stored in a lookup table.

LUT Access

To get access to the data stored inside the curve, just use the [] operator. For example, to make a horizontally fading gradient inside a 256x256 image:

for(int x = 0; x < 256; x++) {
    for(int y = 0; y < 256; y++) {
        img.setColor(x, y, ofColor(curvesTool[x]));


The interface only listens to mouse and keyboard events when it is drawn. It's a little magical, but if you're interested in the details see the implementation for ofxCurvesTool::drawEvent().


ofxCurvesTool stores data in an anonymous list of lists, using a severely simplified YAML representation. Call ofxCurvesTool::save() or ofxCurvesTool::load() with a .yml extension.


By default ofxCurvesTool uses 256 bins, but if you call ofxCurvesTool::setup(128) (for example) it will use 128 bins instead.


If you happen to scale or rotate ofxCurvesTool, it may get confused about where your mouse is clicking, but it's ok to translate it however you like.