A bowl of green stuff swinging and emitting particles.
A bowl of green stuff swinging and emitting particles.
Self-shadowing stencil shadows.
Shadow test.
A light in a corridor.
Self-shadowing stencil shadows.

Johans 3D is a pretty straight forward 3D engine which I wrote sometime during 2001 and 2002. The purpose of this project was for me to get started with 3D math, OpenGL and 3D graphics in general. Later its simple structure made up a solid base for testing new features and ideas which proved very useful for my own personal development.


  • Portal culling.
  • Real-time per vertex lighting.
  • Shadow volumes with self-shadowing objects.
  • Particle engine.

Along with J3D I developed a small library for creating a window with an OpenGL context and handle input independent of the underlying platform. All the applications built on J3D worked on Win32 and X11 under Linux.

Note that the airplane in the pictures above was not made by my self but by a friend of mine.

LightDemo.zip (200.2 kB)-A simple world with some lights and a particle system. Also features portal culling.
ParticleDemo.zip (693.3 kB)-Some demos featuring basic particle effects.
ShadowDemo.zip (95.1 kB)-A demo of shadow volumes using stencil buffer.