A real-time 3D rendering engine that I developed as a high-school student project, at a time when I was especially fond of computer graphics. 3D graphics is actually the reason why I discovered computer programming in the first place, because while using tools like Blender I got curious about how such programs worked, and decided to learn.
I tried to design things a bit seriously, so I split the project between the engine library and a running application, which loads the engine library. The engine uses C++ and Direct3D10 to implement an extensible pipeline based on deferred rendering.
Of course, implementing a full real-time engine is a tremendous task, and things got even more complicated because following my desire to understand as many things as possible I reimplemented a lot of basic utilities. Despite this, 10k lines of code down the road I had managed to get a handful of functionalities, including an elementary pipeline and foundations for my shader library, basic resource management, scene management, a mathematics library, a plugin for Maya, a noise generator, or basic terrain generation. However, I had to put the project aside the moment it started to become really interesting, because I then began studying for my bachelor and didn't have time for side projects anymore.
Still, working on this engine proved very fun and I learnt (really) a lot while doing so, both by implementing the engine and by reading computer graphics tutorials and blogs. The passion I grew for computer science at that time definitely influenced me when I later had to choose my area of specialization while a student at École polytechnique.