PYTHONOPENGL3D MATHEMATICSRENDERING
Writing a renderer from Scratch
Date: 2026-06-05
A custom 3D graphics rendering engine I built from scratch, written in Python and OpenGL shaders
System Ref: renderer-from-scratch
Author: Daniel Evans
Category: SOFTWARE
Status: COMPLETED
Classification: Public Release

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 abandonding 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 Highrarchy (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