Skip to main content

Architecture

Kanvas connects an ordinary Kotlin desktop application to a native rendering runtime.

Kotlin / Compose application
|
v
Kanvas Gradle plugin
|
+--> runtime provisioning
+--> diagnostics
+--> Java/Skiko interception
+--> capture / takeover
|
v
renderer model
|
v
native C/JNI
|
Metal / Vulkan / OpenGL / D3D9

Gradle plugin​

The Gradle plugin is the normal user entry point. It owns setup checks, runtime provisioning, application task integration, packaging, and configuration.

JVM instrumentation​

The integration agent attaches to supported Compose Desktop / Skiko rendering paths.

Modern Skiko support includes capturing the final picture-replay boundary so the final recorded Compose frame can be presented through Kanvas.

Renderer layer​

Kotlin-side renderer/display-list code describes higher-level drawing operations without tying application code directly to Metal, Vulkan, OpenGL, or Direct3D.

Native runtime​

The native C/JNI runtime owns platform-specific presentation, graphics APIs, native window attachment, and related lower-level behavior.

Zero-edit adapter​

The source repository also contains a compatibility adapter for testing Kanvas against another Gradle repository without permanently editing that target project. The Gradle plugin remains the normal integration path.