Everything as code!
A code-first game engine built on OpenGL, empowering you to build everything from scratch with clean, simple code.
PRs and issues are welcome!
2026-09-27: I just made this for my own use.
- Skymap
- PBR shader
- Event system
- OBJ file import
- MTL material import (albedo, roughness, metallic, normal maps)
- Submesh support
- Play Audio
| Version | Objects | Model | FPS | VSync |
|---|---|---|---|---|
| 0.1.5 | 1,000,000 | notbox.obj |
1 FPS | ON |
| 0.1.6 | 1,000,000 | notbox.obj |
30 FPS | OFF |
| 0.1.10 | 1,000,000 | notbox.obj |
46 FPS | OFF |
The same scene was used for both benchmarks.
Renderer optimization improved performance from 1 FPS to 30 FPS — approximately 30× faster.
- CPU: AMD Ryzen 7 7800X3D (16) @ 5.05 GHz
- GPU: AMD Radeon RX 9070 XT [Discrete]
- Resolution: 1280×720
- Monitor: 165Hz
You will need the cmake, ninja (or make), and glfw3 (development) packages to build this project.
If you don't install third party libraries using package manager, then CMake installs libraries using FetchContent module through Git.
sudo apt update
sudo apt install cmake ninja-build libglfw3-dev build-essentialConfigure and build using CMake Presets:
# Configure (Ninja Release)
cmake --preset ninja-release
# Build the core library
cmake --build --preset ninja-release-notengine
# Build the demo executables
cmake --build --preset ninja-release-allRun the built demos:
# Default demo
./build/ninja-release/demo
# Scene file rendering demo
./build/ninja-release/scene_render
# glTF model demo (Cube)
./build/ninja-release/gltf_model
# glTF scene demo (Sponza)
./build/ninja-release/gltf_scene
# Benchmark
./build/ninja-release/benchmarkExport Blender scenes as Seno v8 with separate OBJ models, MTL materials, and
textures in one folder using the Seno exporter.
Install script/blender_seno/seno_exporter.py as a Blender add-on, then choose
File → Export → Seno Scene (folder).
- skymap: https://ambientcg.com/view?id=DaySkyHDRI001A
- test audio (wav): https://commons.wikimedia.org/wiki/File%3AAudio.wav
- test audio (mp3): https://commons.wikimedia.org/wiki/File%3AUncleSigmund_-_ahhh_(cc0)_(freesound).mp3
- test gltf models: https://github.com/KhronosGroup/glTF-Sample-Models
