PYTHONOPENGL3D MATHEMATICSRENDERING
Writing a Renderer from Scratch
Date: 2026-07-20
A custom 3D graphics rendering engine I built from scratch, written in Python and OpenGL shaders
Author: Daniel Evans
Category: SOFTWARE
Status: COMPLETED

Project Overview
A personal project to implement photorealistic ‘ray-traced’ lighting and materials from scratch. I first started this project in 2024, and later picked it up in 2026 after abandoning it 6 months prior to develop the optimisations needed to produce a viable output.
- Realistic lighting calculations (Diffuse, Specular, Fresnel, Refraction) implemented manually in GLSL shaders for GPU parallelisation.
- Python code, transform and load 3D mesh data into the OpenGL Shader program, and for visual debugging.
- Bounding Volume Hierarchy (BVH) algorithms implemented to speed up render performance 1000x.
- Numba/NumPy JIT compilation in Python for 100x speed-up in mesh transformations.
- Final animated scene rendered across three NVIDIA 4070 Ti cloud servers for 1 week.
- Frames composited using Blender to handle f16 HDR raw files.
Details
I am currently waiting to fetch my raw files from another machine to get the images for this project. Feel free to read my LinkedIn article in the meantime - Writing a Renderer From Scratch