2D and 3D, together
Draw primitives, text, sprites and glTF models through the same compact rendering API. Automatic batching keeps the common path fast.
A small, batteries-included C library for 2D and 3D graphics, physics, spatial audio, input and assets. Built for simple, enjoyable development of apps and games - link one library, or start with Lua.
One codebase
Cross-platform. By default.
Fully native. By design.
One library, one header - nothing else to assemble. A C API with an official Lua runtime, and one rendering API over every graphics backend.
Built as one system
Draw primitives, text, sprites and glTF models through the same compact rendering API. Automatic batching keeps the common path fast.
Write one NSL shader. Natiny compiles it for Vulkan, Direct3D 12, Metal, OpenGL or WebGPU at load time.
Models, rigid bodies, cameras and sounds share the same entity system. Parent them once; movement stays in sync.
Rigid bodies, mesh colliders, impulses and raycasts are built in with Box3D. A rendered mesh can also become its collider.
Sources live in the scene and feed a third-order ambisonic mix, with binaural HRTF output for headphones.
Windows, input, cameras, fonts and asynchronous resource loading are part of the engine-not another integration job.
Small surface area
local natiny = require("natiny") natiny.backend.init() local window = natiny.window.create("Hello, Natiny!", 800, 600) natiny.backend.loop(function() natiny.window.bind(window, function() natiny.render.clear(0.90, 0.92, 0.96) natiny.render.set_color(0.776, 0.871, 0.376, 1) natiny.render.clear(0.07, 0.09, 0.13) natiny.render.set_color(0.66, 0.76, 0.22, 1) natiny.render.circle(400, 300, 80) end) end)
Use it your way
Link libnatiny into your executable, or load the shared library beside it, from C, C++, Rust, Zig, Go, or any toolchain that speaks C. The API stays explicit and the engine stays behind it.
The same engine through a direct Lua interface. Fast startup, short edit-run cycles, and no second-class scripting layer.
Start with LuaNatiny 0.12.1
Still growing - see what we are building next.