Where Ideas Find Their Ember.

Features#

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#

  1. Install python from the website *verified version: 3.12.7

  2. Create a directory, then download and extract the codebase there.

  3. Open a terminal in the fresh copy of the codebase and install the requirements

    pip install -r requirements.txt
    
  4. Download binary dependency Assimp

    1. Move Release\assimp-vc143-mt.dll from the zip to one of the PATH folders listed in your system variables

  5. Open project folder in your preferred IDE and set main.py as startup item

Build local docs#

  1. Open a terminal of your choice in the root of the codebase

  2. Install sphinx and theme requirements

    pip install sphinx sphinx-design myst-parser pydata-sphinx-theme
    
  3. Build the docs

    python -m sphinx -b html docs/source docs/build
    
  4. Open docs/build/index.html in the browser

Documentation#

See Engine Docs