University Work

Here you'll find samples of my work carried out at University, primarily 3D graphics and game programming work. These are mostly unmodified from the original work, hence are more proof-of-concept rather than usable applications and may have (i.e. are bound to have) some bugs. I may update them at a later stage depending on time available and other projects. Source code is available on request (given a valid reason for wanting it, naturally).

Final Year Project: Engine Simulator

  • Version: Release 2
  • Date: October 2008
  • Requirements: Windows/Linux, SDL (included in Windows package)
  • Manual: Link
  • Download: Win32 / Linux
EnSim

EnSim is a detailed simulation and visual representation of an internal combustion engine. While the sample engine is a simple single-cylinder, 2-valve design, the simulation is flexible and can simulate different engine models, fuel types and parameters. The visualisation is written in OpenGL and generates the 3D scene and models dynamically from the engine data.

Real-Time Rendering and Animation: TigerHunt

  • Version: Release 1
  • Date: May 2008
  • Requirements: Windows, DirectX 9.0
  • Manual: Link
  • Download: TigerHunt
TigerHunt

This application is built on a provided DirectX9 framework application and investigates level-of-detail and collision detection techniques. The program aims to maintain a reasonable framerate by reducing level of detail in the 3D model with the minimum reduction in visual quality. The processing cost of collision detection for a large number of world objects is reduced through a collision prediction system based on axis-aligned bounding boxes and relative linear motion.

3D Computer Graphics

  • Version: Release 1
  • Date: December 2007
  • Requirements: Java 1.6, any supported platform
  • Manual: Link
  • Download: 3DGraphicsP2
3DGraphics

This Java application implements a 3D rendering pipeline from the ground up and displays a simple 3D scene. The scene can be viewed in wireframe mode using the Digital Differential Analyser algorithm, or in shaded mode using flat or Gouraud shading. The scene can be scaled and rotated freely, and lighting parameters adjusted in real-time.