// the find
mosra/magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Magnum is a C++ graphics middleware library that abstracts OpenGL, Vulkan, and WebGL behind a clean API, with math, scene graph, mesh tools, text rendering, and platform integration built in. It targets the gap between 'raw OpenGL' and 'full game engine' — useful for tooling, scientific visualization, and games where you want control but not boilerplate. Actively maintained, last push was yesterday.
The modular architecture is real, not marketing — you can pull in just the math library or just the GL wrapper without dragging in the scene graph or audio subsystem. Single-header variants in magnum-singles let you drop individual pieces into any project without CMake ceremony. The documentation is genuinely good: per-platform build guides, a changelog that actually explains what changed, and inline code examples that compile. Cross-platform coverage is wide and tested in CI: desktop Linux/Windows/macOS, iOS, Android, and Emscripten/WebAssembly all get real build matrix entries, not 'should work' footnotes.
The ecosystem is spread across six separate repos (magnum-plugins, magnum-integration, magnum-extras, magnum-examples, magnum-bindings, corrade), which means getting a fully-featured setup requires coordinating multiple submodule or CMake FetchContent pins — version mismatches between them are a real pain point. Vulkan support exists but lags behind the OpenGL path in maturity and tooling; if Vulkan is your primary target you'll hit gaps. The community is small: Gitter is the main chat, the Google Group is slow, and finding answers to non-obvious problems means reading source. Python bindings are available but clearly a second-class citizen compared to the C++ core.