At university I got interested in creating 3D software rendering engines. I created three of them in Java and I could demo them on a web page using an applet. Unfortunately, due to security reasons, it’s almost impossible for an average user to run Java applets these days. With the arrival of HTML 5 and the canvas element it was time to port my Quiver engine to JavaScript.

quiver_javascript3

quiver_javascript3

quiver_javascript3

This is still work in progress, not all features of it’s Java big brother have been implemented, but I achieved my goals of rendering the basic stuff.

Features

  • raycasting
  • vertical texture mapping for walls
  • horizontal texture mapping for floor and ceiling
  • multiple levels of light with a CLUT (Color LookUp Table)
  • collision detection
  • objects

Demo

Below is a demo of the engine. The best performance is currently achieved in Chrome.

Controls

Walk forwards W
Walk backwards S
Turn left A
Turn right D

« other projects