I've simplified the traversal to make it faster, and swapped the visuals for a basic 3D renderer. Controls: Arrows to rotate, WASD to move. Update: fixed rendering issues, and added a simple quad filler. Ideally this would have partition occlusion, where if a partition is occluded, it would be skipped. But I don't know how to implement it yet. Also, if you can figure out how to make walls of variable sizes while still using a depth buffer efficiently, please let me know how to do it or remix this project with a implementation of such an algorithm. Maybe this could be done with a series of linked lists with intervals showing which sections of the screen still need to be written? Idk.