esp32_3d_engine
A software 3D rendering engine for ESP32 microcontrollers.
Renders full 3D scenes with lighting directly on the MCU — no GPU. Full software pipeline from vertex to framebuffer, custom scene graph, revolution/extrusion mesh generation, orbital camera, directional lighting, painter's algorithm and PSRAM allocator. Published as a component in the ESP Component Registry.
- Software pipeline: transform → Sutherland-Hodgman clipping → projection → scanline rasterization → framebuffer.
- Hierarchical scene graph with ID lookup and component tree (Transform, Mesh, Light).
- Mesh generation by revolution and extrusion from 2D profiles.
- Directional lighting (ambient + diffuse) in RGB565.
- Double buffering, custom std::allocator placing large buffers in PSRAM.
- Optional thread pool with std::jthread running scene/render on separate cores.
- Pluggable LCD drivers: EK79007 (MIPI-DSI), ST7262 (RGB), ST7789 (SPI).
- Supported targets: ESP32-P4 and ESP32-S3 (main testing), ESP32 / S2 / C3 via drivers.
- C++ for 99% of the codebase. MIT license.