Most of this year’s creative-coding coverage has been about the browser — p5.js chasing WebGPU, Figma generating shaders from a sentence, Three.js pushing million-instance particle systems. None of that touches the tool actually running inside a lot of the physical installation work getting shown at festivals and museums right now: openFrameworks, the open-source C++ toolkit that’s been quietly iterating since 2005 and currently sits at version 0.12.1.
Watch: Getting Started With openFrameworks (C++ Creative Coding) (YouTube)
Why C++ still wins for physical work
openFrameworks was built by Zachary Lieberman, Theo Watson, and Arturo Castro specifically to give artists the same simplified interface to media, hardware, and communication libraries that Processing gave Java coders — but in C++, running directly against OpenGL. That distinction matters most exactly where browser-based tools are weakest: real-time control of custom sensors, motors, and hardware I/O with no browser sandbox in between the code and the device. A kinetic sculpture with servos, sensors, and a live camera feed needs the kind of low-level, low-latency access that a WebGL or WebGPU canvas running in a tab was never designed to provide.
What that actually looks like right now
Neil Mendoza’s Synthetic Spirits — a pair of kinetic installations shown in a historic sake store at Japan’s Setouchi Triennale — is a good example of what that combination produces. Mechanical objects (a sake bottle, a straw sandal) glide past screens on motorized rigs, each pass triggering generative AI to reveal a tsukumogami spirit understood to inhabit the object in Japanese folklore. The piece pairs openFrameworks-driven real-time control with Autodesk Fusion for the mechanical CAD and Qidi hardware for fabrication — a stack that has almost nothing in common with a browser-based generative art sketch, because the problem it’s solving (choreographed physical motion synced to live generative visuals) isn’t a browser problem.
The actual takeaway
This isn’t an argument that C++ beats JavaScript, or that openFrameworks is somehow more legitimate than p5.js — they’re built for different jobs, and most creative coders will never need to touch openFrameworks at all. It’s a reminder that “what’s getting talked about” and “what’s actually running the most technically demanding work in the field” aren’t always the same tool, and it’s worth knowing openFrameworks exists the moment a project stops being screen-bound.