{"data":{"slug":"bgfx","name":"bgfx","tagline":"BSD-2 cross-platform rendering library: bring your own engine","category":"libraries","categoryName":"Libraries","url":"https://bkaradzic.github.io/bgfx/overview.html","github":"https://github.com/bkaradzic/bgfx","pricing":"open-source","hook":"bgfx is a long-running C/C++ rendering library that hides the graphics API: you write against one interface and it runs on Direct3D 11/12, Metal, Vulkan, OpenGL, OpenGL ES, WebGL 2 and WebGPU, from Windows and consoles to Android, iOS and the browser via Emscripten.","whatsGood":"BSD-2-Clause (bkaradzic/bgfx), actively pushed (2026-10-19) since 2012. It is the renderer, not an engine, so it fits custom engines and tools that need one code path across platforms. A shader compiler, texture and geometry tools and dozens of examples come with it, and bindings exist for C#, Rust, Zig, Python and more. Used by a long list of shipped games and apps. ★~17.6k.","theCatch":"Low-level by design: no scene graph, physics, audio or editor, so you are building an engine, not a game. It uses its own GENie build setup and the companion bx and bimg repos, which takes a while to get comfortable with. No tagged releases; you track the main branch. For a ready engine, Godot or Raylib are the faster start.","verdict":"The proven way to put one renderer on every platform — for people building their own engine.","addedAt":"2026-10-19","featured":false,"domain":"Libraries","subSpecialty":"Libraries","subcategory":"Libraries","tags":["api","sdk","self-host","permissive","graphics-3d","active"],"capabilities":["webgpu","webgl","api"],"surfaces":["API","Self-host"],"ecosystem":["Node.js"],"licenseModel":"BSD-2-Clause","githubStars":17571,"starsPerWeek":23,"access":"free","archived":false,"repo":{"createdAt":"2012-04-04","pushedAt":"2026-10-19","license":"BSD-2-Clause","archived":false,"checkedAt":"2026-10-19"}},"related":[{"slug":"hono","name":"Hono","tagline":"Tiny TypeScript web framework that runs on every runtime"},{"slug":"phaser","name":"Phaser","tagline":"MIT HTML5 2D game framework with scenes, physics, and tilemaps"},{"slug":"pixijs","name":"PixiJS","tagline":"MIT 2D WebGPU/WebGL renderer, not a game engine"},{"slug":"babylonjs","name":"Babylon.js","tagline":"Apache-2.0 3D engine for the web, now on v9"},{"slug":"playcanvas","name":"PlayCanvas","tagline":"MIT WebGL2/WebGPU engine plus an optional hosted Editor"}],"links":{"self":"/api/gems/bgfx","html":"/gems/bgfx","markdown":"/gems/bgfx.md","category":"/api/gems?category=libraries","categoryPage":"/stacks/libraries"}}