Press 1 to render at low quality and be able to move around with wasd and arrow keys, press 2 to render at high quality. Turbowarp (if you want a non-negative frame rate): https://turbowarp.org/1377610361/ I was testing out shadertoy, which runs pretty much the same thing in realtime at good resolution, so I thought I would make it in scratch too. https://www.shadertoy.com/view/sfVSRG How it works, if you are wondering: For every pixel, it creates a ray pointing in that direction, calculates the distance to the nearest point of the sponge* and moves the ray along by that distance and repeats until the distance is sufficiently small, it colours the pixel using the number of steps taken to reach that distance (there is no actual lighting, its all a trick). *The distance to the nearest point, or “sdf” (signed distance function, it’s called that because it’s negative when inside objects) starts with the sdf of a cube, and subtracts the 3 cuboids (by finding the maximum of the box sdf and the negated cuboid’s sdf), then scales the position and mod1’s it so that the 27 sub cubes are all mapped to the same position as the original cube, then subtracts the cuboids again and repeats etc.