Where Ideas Find Their Ember.
Features#
Export to Binary
Export a runtime scene to a Windows executable
Script Behaivior
Write and attach scripts to objects. Including attribute exporting to the Inspector.
Hierarchy
Organize objects by dragging them into parent-child relationships and control how they move together.
Viewport Gizmos
ImGuizmo: Allowing for easy object transform manipulations.
PyBullet Integration
PyBullet: Real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
OpenGL and PyGame
PyGame controls window context and event handlers, Native OpenGL is used for rendering.
Working With Scenes
Scenes are stored as serialized JSON, making it easy to create, save, and switch between them.
Integrated IDE
ImColorTextEdit: Scripts can be edited directly in the Engine.
GPU Driven Pipeline
If OpenGL extensions are available, use compute shaders and SSBO’s to compose model matrices, build the instance buffer and fill the indirect buffer
Educational#
Built for educational purposes
Design Philosophy
Modern AAA 3D engines are like sparks –Powerful, instant and designed to ignite a fire of ideas.
They’re packed with optimized tools that turn a concept into an inferno of graphics and performance
Ember Engine is diffrent. Its not the spark at the start of the fire, but the ember at the end of one.
It burns slower, softer and with less intensity.
3D Engines are rarely written in Python. –And for good reason. Python is interpreted, resulting in runtime overhead and efficiency loss
It simply cannot match the raw speed offered by AAA Engines.
But an ember has its own purpose. It’s warm, safe and approachable.
Yet holds the power to grow and rekindle itself.
Python at its Core
The Gui, Physics, Renderer back-end, and Scripting are implemented in Python.
Though C++ -> Python bindings are used. –The core logic that connects everything is pure Python.
“How controversial it may be. it provides a nice way to explore engine design and development concepts hands-on.
I value that as a good exercise!”
Showcase#




Development#
Install
pythonfrom the website*verified version: 3.12.7Create a directory, then download and extract the codebase there.
Open a terminal in the fresh copy of the codebase and install the requirements
pip install -r requirements.txt
Download binary dependency Assimp
Move
Release\assimp-vc143-mt.dllfrom thezipto one of the PATH folders listed in your system variables
Open project folder in your preferred IDE and set main.py as startup item
Build local docs#
Open a terminal of your choice in the root of the codebase
Install sphinx and theme requirements
pip install sphinx sphinx-design myst-parser pydata-sphinx-theme
Build the docs
python -m sphinx -b html docs/source docs/build
Open docs/build/index.html in the browser