Thanks to @codingbio for fixing the culling :) Instructions: -Arrow keys to rotate camera and WASD to move -Space to jump -Try changing the options So, why culling? Culling more than halves the lag of rendering cubes, which can significantly improve speeds. Please note this is just testing and still a bit of a work in progress, though I will probably implement this in a future 3d engine. THERE ARE bugs and problems which I still have yet to fix or resolve, but I will eventually. Variable list: wireframe - toggles filled triangles and wireframe triangles light y - changes lighting of y faces (only a bit on xz faces) ambient lighting - lighting of faces facing away from light sun direction - direction of light and shadows shadow stretch - how stretched shadows are v1.1 - Fixed ground credits: 2d tri filler: @dadofmrlog New sorting method: @iammediot2_studios Sorter: @MegaApuTurkUltra z clipping for triangles: @s_tutorials @jamohyperturbopro - front-face detection @scratch-minion - lighting Everything else: me ;) Thanks for @mathmathmath for his tutorial which got me into 3d #new #3d #perspective #engine #triangles #filled #triangles #collision #z-sorting #culling #lighting #pen