A Kotlin multiplatform graphics engine supporting Vulkan, WebGPU, and OpenGL for desktop, Android, and web.
Kool is a multiplatform graphics engine written in Kotlin that provides a unified API for rendering 2D and 3D graphics across desktop, Android, and web. It abstracts underlying graphics APIs like Vulkan, WebGPU, and OpenGL, allowing developers to build games, simulations, and interactive applications with modern features such as PBR, physics, and a built-in UI framework.
Kotlin developers and game creators who need a high-performance, cross-platform graphics solution without managing low-level API differences. It's ideal for those building desktop games, Android apps, or browser-based demos with advanced rendering needs.
Developers choose Kool for its seamless multiplatform support, expressive Kotlin DSL for shaders and UI, and integrated physics engine—all while maintaining high performance across Vulkan, WebGPU, and OpenGL backends.
A Vulkan / WebGPU / OpenGL engine for Desktop JVM, Android and Javascript written in Kotlin
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports Vulkan, WebGPU, and OpenGL backends, enabling deployment on desktop JVM, Android, and browsers with a single codebase, as highlighted in the platform support table.
Provides 3D physics via Nvidia PhysX and 2D via Box2D with consistent bindings for JVM and JavaScript, demonstrated in web demos like vehicle and ragdoll simulations.
KSL allows writing shaders in Kotlin that automatically compile to GLSL or WGSL, ensuring cross-backend compatibility without platform-specific code, as shown in the HelloKsl example.
Features a Compose-inspired UI system that runs within the engine, enabling rich interfaces without external dependencies, evidenced by the embedded UI demo and editor.
The README admits documentation is a weak spot, which can hinder onboarding and troubleshooting for developers new to the engine.
Advanced demos like bloom, pathtracing, and vehicle physics require WebGPU, limiting functionality on browsers without support and creating fragmentation.
The built-in graphical editor is in an early state and lacks essential features, making it unsuitable for complex production-level scene design.
Running demos in IntelliJ requires manual build steps and gradle re-syncs, adding friction to the development workflow compared to plug-and-play engines.