PoC: Compose Multiplatform (CMP) UIs via child process

Greetings to the community.

Inspired by another forum user’s desire to embed Flutter for running UIs, I started my own project but targeting Kotlin + Compose Multiplatform (CMP) instead.

The full rationale for choosing CMP over Flutter is out of scope here, but the primary driver is the strength of the Java/Kotlin ecosystem compared to Dart. Since KMP already compiles to native code on iOS, there might be a path to do the same on desktop in the future (see: https://youtrack.jetbrains.com/issue/CMP-1923). Meanwhile Bitwig Studio uses a JVM for its UI, so why not.

This is a completely vibe-coded proof of concept. Credits to Claude Opus 4.5, which compressed what would have been days of development into just a couple of hours.

The next steps are: swapping the standalone Cocoa app for a JUCE app, adding Windows support, and implementing a form of message passing between the JUCE environment and the UI running in the child process.

Repo: GitHub - lucianoiam/cmp-embed

PS: If anyone is looking for a developer experienced in this stack, I’m currently available for work on the native side and building Compose UIs.