Mosaic, an openFrameworks based Visual Patching Creative-Coding Platform

A very commonly used quote from Albert Einstein goes like this: « If I can’t picture it, I can’t understand it. ». Following that thought, we’ll eventually enter the realm of visual thinking, where complex ideas can be communicated in a simple way.

Mosaic is a visual thinking toolkit made by artists, for artists.


Emanuele Mazza started the Mosaic project in 2018, in strict relation with the work of ART+TECHNOLOGY research group Laboluz from the Fine Art faculty of the Universidad Politécnica de Valéncia (Spain). From the very beginning, the source code was released on the Github development platform with a focus on making the code modular and simple to read, in order to encourage potentially interested coders in participating and collaborating on the project. Recently in 2020, digital artist Daan de Lange became a contributor of Mosaic code, actively participating in code development and restructuring.

Mosaic is a livecoding programming/patching environment for creating real-time audio-visual compositions. It’s principally designed for live needs, as can be teaching in class, live performing in an algorave, or running a generative audio-visual installation in a museum.
It aims to empower artists, creative coders, scenographers and other creative technologists in their creative workflow.
It’s a FLOSS, Free/Libre and Open Source Software with multi-platform support, and it’s written in C++, offering high performance.

Mosaic is shipped with an internal code editor, non-blocking system dialogs, a programmable non-linear interactive timeline, an included patch video exporter with subtitler for easy tutorial creation, lua/python/glsl/bash live-coding and pure data live-patching capability, a good selection of audio synthesis modules, multiple fullscreen output windows capabilities ( as many as your system can have ) with an independent warping for each window, a map-map style integrated mapping module, and an easy to use osc sending/receiving objects/nodes for network communication.

The idea behind Mosaic is to facilitate human-machine communication, to amplify imagination and to speed up the creative workflow, without sacrificing the spectrum of possibilities. To achieve this, it bundles together various creative-coding tools, acting as an interactive bridge between them.
It includes a collection of audio-visual objects that can be easily connected together using a nodal-based graphical interface, defining a custom dataflow.

Mosaic is mainly based on two frameworks : OpenFrameworks and ImGui. OpenFrameworks is an open source C++ toolkit for creative coding.
Dear ImGui is a bloat-free graphical user interface for C++ with minimal dependencies.
Together with the latter ones, Mosaic bundles comes with other 3rd party libraries such as PureData Vanilla and numerous ofxAddons.
It also embeds various programing languages for live-coding purposes : Lua with OF-bindings, Python 2.7 scripting interpreter, live compiling of GLSL shaders and editing/execute Bash scripts (macOS & linux) capabilities.

Mosaic is extendable : you can easily add custom objects.
While this involves writing and compiling code, requiring some C++ knowledge, we aim to make this process as easy as possible. Thus, Mosaic is flexible and devoted to grow over time.
For example, any Openframeworks project can be easily ported to Mosaic Objects, exposing them to the live-patching environment. This way, working with OF becomes way more modular, and you can make run-time adjustments. Possibilities are endless.
Once created, plugins can either be statically compiled into Mosaic, or if you wish, there’s also support for dynamically loading them, making it easy to share and distribute your objects with others.

Mosaic is still under development and in Beta release, but has been already successfully used for 2 years at the Fine Arts faculty of the UPV university, Valencia, Spain. It has been deployed in multiple student projects presentations, and in some interactive installation in public cultural spaces.

Today, Mosaic has sufficiently grown to be tested by a wider group of people.

If you’re curious, please try out Mosaic and don’t hesitate to get in touch.
Mosaic is open to anybody, contributions of any kind are welcome.

Mosaic development team is composed by Emanuele Mazza, Daan de Lange and Maria José Martínez de Pisón

More information can be found here:

A small video here and here

And some screenshots here:


Wow, very cool! Nice UI too.

Thank you for sharing!

This looks really good! :slight_smile:

hot dang. that looks lovely. well done :kissing_heart::+1:

This is great!
Having a few issues with Projection mapping, but it might just be the learning curve.
Pretty excited to start creating plugins.

1 Like