A from-scratch JavaScript 3D engine, perspective rendering, camera controls, face sorting, near clipping, back-face culling, and dynamic point lighting. Built up across nine iterative versions.
The goal of this project was to build an environment for creating 3D games, displaying a perspective view of objects on screen and letting the user move a player's orientation and position via the keyboard. Aimed at game developers who want the novelty of in-browser 3D without setting up all the lower-level logic themselves.