Keel is distributed on PyPI under the nameDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/VKSFY/keel/llms.txt
Use this file to discover all available pages before exploring further.
keelpy. The import name inside your code is keel. This distinction — PyPI name vs. import name — is the single most common source of confusion for new users, so keep it in mind as you work through this page. The rest of the install is a standard pip one-liner.
Requirements
Before installing, make sure your environment meets both requirements:- Python 3.10 or newer — Keel supports Python 3.10, 3.11, and 3.12. Pre-built wheels are available on PyPI for all three versions on Windows, macOS, and Linux.
- OpenGL 3.3 Core — a GPU and driver that support OpenGL 3.3 Core Profile. This covers any discrete GPU from the last decade and most integrated graphics from Intel (Haswell, 2013+), AMD, and Apple Silicon via MoltenVK. Headless CI typically needs a software renderer such as Mesa’s
llvmpipe.
Install the base package
The base install covers everything you need for 2D games: sprite rendering, 2D physics (pymunk), text, audio, tilemaps, and the CLI.This pulls in the following transitive dependencies automatically:
| Package | Purpose |
|---|---|
numpy | Component storage (structured arrays) |
moderngl | OpenGL rendering backend |
glfw | Window creation and input |
Pillow | Image loading (PNG, JPG, BMP, TGA) |
watchdog | Asset hot-reload file watcher |
pymunk | 2D physics engine |
freetype-py | Font rasterization |
miniaudio | Audio playback |
Choose optional extras (if needed)
Keel ships two optional extras for features that require heavier or platform-restricted dependencies.
physics3d installs pybullet>=3.2 for the 3D physics bridge (setup_physics_3d). pybullet currently has pre-built wheels on Windows and a few older Python/platform combinations only. On Linux and macOS it must be compiled from source, which requires a C++ toolchain.tools installs imgui-bundle>=1.5 for the ImGui-powered world inspector (F1), frame profiler overlay (F2), and physics debug draw (F3). Keel supports both the 1.5.x and 1.9x+ module layouts of imgui-bundle, so pip installs whichever wheel is available for your Python version.Install from Source
If you want to contribute to Keel, use a pre-release build, or run the example scripts directly from the repository, install from a local clone:-e flag installs the package in editable mode, so changes you make to the source are immediately reflected without reinstalling. To include both optional extras when working from source:
Platform Notes
| Platform | Base install | physics3d | tools |
|---|---|---|---|
| Windows | ✅ | ✅ (pre-built wheels) | ✅ |
| macOS | ✅ | ⚠️ Source build required | ✅ |
| Linux | ✅ | ⚠️ Source build required | ✅ |
Upgrading
Keel follows semantic versioning. Patch releases (e.g. 0.8.4 → 0.8.5) are backward-compatible bug fixes. Minor releases may introduce new APIs; deprecated APIs are kept for at least one minor version before removal.
