One Flutter app.
Many real windows.
Morphic turns a single Dart codebase into a runtime of sovereign native windows — authored entirely in Flutter.
Flutter desktop stops at one window.
Real desktop software is many windows — inspectors, palettes, detached panels, whole workspaces. Morphic gives a Flutter app that same vocabulary, without leaving Dart.
- Real native windows
- Every surface is an actual OS window — taskbar, Alt-Tab, owner chains and all.
- Independent engines
- Each surface runs its own Flutter engine, isolated yet sharing one app state.
- Deterministic orchestration
- Grouping, docking, extraction and z-order governed by a semantic runtime.
Not a mockup. The real thing.
Surfaces grouping, docking and extracting live — with owner-aware z-order and deterministic activation across genuine native windows.
Example apps, end to end.
Reference apps that pressure-test the runtime — drop your own recordings into each window.
Native by default. Spatial when you want more.
Start with real OS windows — the free, default mode that works today. Reach for the spatial runtime when you want GPU-composited surfaces, materials and a persistent shell.
Native
Real OS windows, orchestrated.
- Genuine native windows per surface
- Multi-window orchestration & ownership
- Deterministic z-order and activation
- DWM shadows, rounded corners, dark chrome
- Available today, out of the box
Spatial
GPU-composited surfaces on a shared plane.
- GPU-composited surfaces & materials
- Acrylic blur, shadows, arbitrary shapes
- Persistent spatial shell
- Shared composition plane & scene zoom
- Available for experimentation now
Spatial mode is currently available for experimentation — explore it freely as the compositor matures.
Three commands to a multi-surface app.
Add the package, initialize the native runner, and run on desktop. No platform glue to write by hand.
$flutter pub add morphic$dart run morphic:init$flutter run -d windowsThen point your existing app at the runtime. A single entrypoint spawns and orchestrates every surface:
import class="tok-str">'package:morphic/morphic.dart'; void main() { class=class="tok-str">"tok-cmt">// One entrypoint. The runtime spawns and class=class="tok-str">"tok-cmt">// orchestrates every sovereign surface. runMorphicApp(app: MyApp());}Your widgets stay yours. runMorphicApp wraps them — it doesn't replace them.
A runtime, evolving in the open.
Where Morphic is and where it's going. Native is stable today; spatial composition and cross-platform support are next.
- 01Shipped
Native runtime stabilization
Deterministic orchestration, owner-aware z-order, activation coherency.
- 02In progress
Spatial runtime
GPU-composited surfaces, materials and a persistent spatial shell.
- 03Up next
Linux & macOS
Bring the multi-surface runtime to the rest of the desktop.
- 04Planned
Runtime tooling
Inspect surfaces, sessions and the topology graph at runtime.
- 05Planned
Ecosystem & plugin APIs
Reference apps and extension seams for third-party surfaces.
Build the multi-surface desktop with us.
Morphic is developed in the open. Contributions, feedback and experiments are welcome — whether you're shipping with it or just exploring what a Flutter runtime can become.