Cactus is a software 3D rendering library written in clean C/C++ and is a port of Peter Walser’s idx3dIII engine in Java (currently nowhere to be found on the internet… luckily, the Internet Archive still has a copy; original source code is available here). Although it is outperformed by 3D hardware of today, it is a nice project to learn 3D principles from.
Get the source: Cactus on GitHub
Run in the browser (new as of 2021, uses WebAssemly/Emscripten!)