Kotlin Multiplatform 3D graphics rendering engine based on OpenGL / OpenGL ES / WebGL.
Korender enables you to embed 3D scenes directly into Compose Multiplatform UI, making it an excellent choice for applications that combine standard UI with 3D, such as product, architectural, or scientific visualizations, interactive demos, or cross-platform games.
Korender is designed to be highly developer-friendly: there is no need to manually create scene graph objects, load and initialize assets, or attach them to nodes. Instead, you simply declare scene objects using a straightforward DSL. OpenGL knowledge is not required, although familiarity with GLSL can be helpful when writing shader plugins or custom shaders.
Live web demo: https://zakgof.github.io/projects/korender/wasm/
| Platform | 3D API |
|---|---|
| Desktop (Windows/Linux) | OpenGL 3.3 |
| Android | OpenGL ES 3 |
| Web | WebGL 2 |
- Physically Based Rendering (PBR) metallic-roughness model
- Directional and point lights
- Shadows: Variance shadow mapping (VSM), percentage-closer filter (PCF)
- Texturing with normal mapping support
- Predefined shapes and custom meshes
- Wavefront .obj and .gtlf/.glb file loading (with animation support)
- Billboards (sprites)
- Batching (instancing)
- Heightfield (terrain) rendering
- Textured or shader sky
- Environment mapping
- On-screen basic GUI
- Custom shaders support
- Multi-pass rendering and screen-space shaders (filters)
- Simple effects (water, smoke, fire)
- Deferred shading pipeline with screen-space effects: SSAO/HBAO, SSR, Bloom
- Web:
./gradlew :examples:wasmJsBrowserDevelopmentRun - Desktop:
./gradlew :examples:run - Android:
./gradlew :examples:installRelease
Korender {
Frame {
DirectionalLight(Vec3(1f, -1f, -1f))
Renderable(
base {
color = ColorRGBA(0.2f, 1.0f, 0.5f + 0.5f * sin(frameInfo.time), 1.0f)
metallicFactor = 0.4f
},
mesh = sphere(2.0f),
transform = translate(sin(frameInfo.time).y)
)
}
}- Check out QuickStart application available at https://github.com/zakgof/korender/tree/main/quickstart
- Generate a new KMP application using Kotlin Multiplatform Wizard. Select Android, Desktop and WASM platforms.
- Add Korender dependency
com.github.zakgof:korender:0.7.0 - Add the above code to commonMain
- Run on desktop:
./gradlew composeApp:run
Korender is BETA - APIs may change without notice.
Explore the Korender Wiki




