Kanvas
Kanvas is a Gradle plugin and native rendering runtime for Kotlin/JVM desktop applications. The goal is to leave application code and Compose UI intact while replacing the final rendering path underneath it.
Kotlin / Compose
│
▼
org.yurie.kanvas
│
├─ runtime provisioning
├─ JVM / Skiko instrumentation
├─ frame capture + takeover
▼
native C / JNI runtime
│
├─ Metal
├─ Vulkan
├─ OpenGL
└─ Direct3D 9
Pre-release
Kanvas 0.1.x is pre-1.0. The architecture is functional, but rendering parity and hardware verification are still being expanded.
Fast path
plugins {
id("org.yurie.kanvas") version "0.1.0"
}
kanvas {
target = ":desktop"
backend = "auto"
}
Then:
./gradlew kanvasDoctor
./gradlew kanvasRun
Why a Gradle plugin?
The renderer needs information and control from both sides of the application boundary: build/runtime artifacts before launch and JVM/native integration during launch. A Gradle plugin gives Kanvas a project-level integration point without requiring the app's UI code to be rewritten around a Kanvas-specific framework.