A modular UI stack. Host, Graphics, and Toolkit are separate layers you can use, replace, or skip. One Scene graph carries paint, native views, and semantics — renderer, hit-test, and accessibility walk the same tree.
It targets a wide range of platforms: macOS, iOS, tvOS, Android (phone, TV, AAOS), Linux (Wayland); Windows and the web are next. Apple is Metal. Android and Linux are Vulkan. Later: WebGPU. No GPU: the same draw rasters CPU.
- Host — window, vsync, GPU natives, events. Swap the shell (AppKit, UIKit, Wayland, NativeActivity, or embed).
- Graphics — compositor: record a scene, merge compatible groups into one pass, isolate only when opacity or a tilt needs it. 2D with slight 3D. Not a game engine.
- Toolkit — UI controls that record that same scene (coming; language TBD). Hello stays toolkit-free.
Layers compose: a UI block, raw paint, and semantic ids can share one graph — any mix, or none.
- In-process:
drawthe scene. No packet, no extra copy. - Embedded: a sandboxed guest (WASM, out-of-process UI)
encodes one frame packet per vsync; a native hostsubmits it. The OEM keeps the swapchain and the run loop.
pnpm install
pnpm test
pnpm exec nx run hello:run