Early-stage and moving fast

Realtime audio and GPU-native graphics, one C++20 codebase

YUP builds native applications, audio tools and audio plugins for desktop, mobile and the web. Permissively licensed foundations meet modern vector rendering through the open source Rive renderer.

YUP! audio graph editor

One codebase, every CI platform

  • Windows
  • macOS
  • Linux
  • iOS
  • Android
  • Wasm
Platforms
6
Modules
21
GPU backends
6
Plugin formats
4

Why YUP

Built for software that has to sound and look right, in realtime

Permissive by default

ISC licensed project code, with dependencies chosen for liberal licensing or public-domain availability. Ship closed or open, no fees.

GPU-native rendering

Vector graphics on the Rive renderer over Metal, Direct3D, OpenGL, WebGL and WebGPU, plus a low-level RHI for compute and custom shaders.

Audio-first stack

Devices, MIDI, file formats, DSP, an audio graph, plugin hosting and plugin client wrappers all live in the same framework.

What's inside

Everything from pixels to plugins

Depend on exactly the modules you need. Transitive dependencies are pulled in by the CMake API.

yup_graphics · yup_rhi · yup_shading

Graphics, RHI and shaders

2D drawing, fonts with variable axes, SVG and Lottie on top of Rive. Drop down to the RHI for compute, render pipelines, PBR and fluid simulations.

PBR rendering through the YUP RHI GPU fluid simulation SVG tiger rendered by YUP

yup_gui

GUI toolkit

Components, windowing, layout, text editing, popup menus, drag and drop, multitouch and 3D components, all painted on the GPU.

yup_dsp · yup_dsp_jit

DSP and YDSP

Filters and designers, crossovers, FFTs, dynamics, convolution and resampling. YDSP adds a realtime JIT-compiled DSP language.

yup_audio_graph

Audio graph

A node-based graph of audio processors for routing audio and MIDI, with an editor you can see in the examples.

yup_audio_plugin_*

Plugins, both ways

Wrap your processor as CLAP, VST3, AU or a standalone app, and host third-party plugins in-process.

yup_python

Python bindings

Create and drive YUP applications from scripts, install the wheel and iterate without recompiling.

yup_ai

AI and MCP

Chat-completion clients for OpenAI, Anthropic and Gemini, function-calling tools, embeddings and an MCP client and server.

Backends

Native where it matters

Each platform uses its own graphics and audio APIs. Dashed items are in progress.

Rendering

Metal Direct3D 11 OpenGL 4.2 OpenGL ES 3.1 WebGL2 WebGPU Vulkan

Audio I/O

CoreAudio WASAPI ASIO DirectSound ALSA JACK Oboe OpenSL AudioWorklet

Plugin formats

CLAP VST3 AUv2 AUv3 AAX LV2

Sound formats

Wav Wav64 Mp3 OGG Flac Opus AAC WMF

Developer experience

A whole app in a screenful of code

Fetch YUP with CMake, pick your modules, write your application class. The same target builds for desktop, mobile and the browser.

  • Unity-built modules, no separate library install
  • Works standalone or through FetchContent
  • Taken from examples/app
#include <yup_gui/yup_gui.h>

class Application
    : public yup::YUPApplication
    , public yup::Timer
{
public:
    yup::String getApplicationName() override {
        return "yup app!";
    }

    yup::String getApplicationVersion() override {
        return "1.0";
    }

    void initialise (const yup::String& commandLineParameters) override {
        yup::Logger::outputDebugString (
            "Starting app " + commandLineParameters);

        startTimer (1000);
    }

    void shutdown() override {
        yup::Logger::outputDebugString ("Shutting down");
    }

    void timerCallback() override {
        stopTimer();

        yup::MessageManager::callAsync ([this] { systemRequestedQuit(); });
    }
};

START_YUP_APPLICATION (Application)

Pick your path

Free for every kind of project

No tiers, no seats, no revenue caps. The same ISC license covers apps, plugins and the web.

Application

Native desktop and mobile apps.

Free ISC

  • +yup_standalone_app CMake target
  • +Windows, macOS, Linux, iOS, Android
  • +GPU UI with Rive, SVG and Lottie
  • +Audio and MIDI device I/O
Build an app

Plugin

audio

Instruments and effects for any DAW.

Free ISC

  • +yup_audio_plugin CMake target
  • +CLAP and VST3 on Windows and macOS
  • +AUv2 and AUv3 on macOS
  • +Standalone build from the same target
Build a plugin

Web

The same app, running in the browser.

Free ISC

  • +Emscripten build of your app target
  • +WebGPU and WebGL2 rendering
  • +AudioWorklet audio and Web MIDI
  • +Threads through cross-origin isolation
Build for the web

FAQ

Questions, answered

Anything else? Ask on Discord or open an issue on GitHub.

Is YUP ready for production?+

YUP is under active early-stage development and APIs may change. It is usable for experimentation, examples, prototypes and contributors comfortable with a fast-moving framework. Graphics and GUI, DSP, the audio graph and CLAP/VST3 plugins are the areas most ready for feedback.

How does YUP relate to JUCE?+

YUP started from the ISC licensed JUCE7 modules and has evolved since, with its own rendering, GUI, DSP, audio graph and plugin layers. Some APIs look familiar, but do not assume they are identical.

What does the license allow?+

Project code is ISC licensed: use, copy, modify and distribute for any purpose, commercial or not, keeping the copyright notice. Dependencies are chosen for liberal licensing or public-domain availability.

Which plugin formats can I build and host?+

You can build CLAP and VST3 on Windows and macOS, plus AUv2 and AUv3 on macOS. Hosting supports CLAP and VST3 on Windows and macOS, and AUv2 on macOS. AAX, LV2 and Linux support are in progress.

Can it really run in the browser?+

Yes. Wasm builds through Emscripten render with WebGPU or WebGL2 and play audio through AudioWorklet.

Can I use it from Python?+

The yup_python module provides bindings for creating and driving YUP applications from scripts. Run just python_install to install the Python wheel.

Turn your next idea into realtime software

Clone the repository, build the examples, and have a GPU-rendered audio app running in minutes.