Student Projects

The VCG group comprises the teaching staff for our High Performance Graphics (HPG) courses at Leeds. This course is available as a 4 year course for undergraduates or one year postgraduate course. During the courses our students spend a substantial period of time completing an individual project – this page collects some past examples.


Joshua Crinall, George Loines, & Michael Nisbet: Gatling Games Engine (2018)

Gatling is a custom game engine for the 3rd year group project. Like the majority of coursework for the HPG course it was written in C++ for desktop computers, as well as HTC Vive virtual reality headsets. The project aimed to create a detailed game engine with many cutting edge features including physically based sky rendering, microfacet-specular volumetric fog, procedural terrain generation, tessellated water rendering and a complete resource import pipeline.

The project won first prize for game technology at the 2018 Game Republic Student Showcase and won first prize for game technology.

You can read more about the Gatling Games Engine here, and view the source code here.


Brian Law: Real-time Adversarial Gaming with a Robot in Virtual Reality (2018)

Virtual reality (VR) combined with physical simulation is a powerful platform for the development of novel interactions between humans and robots. In this project we implement a ball throwing game with a virtual robot. The project utilises an Unreal Engine 4 instance and a URDF robot description which is connected to a HTC Vive head mounted display and handsets. This configuration allows the user’s motions to be applied to a virtual character which can interact with the robot in the virtual scene directly – in this case to play catch with a virtual robot.


Ryan Needham: Preferred Shading (2018)

Preferred Shading is a rendering architecture based on work at Pixar in the 1980s to develop a rasterisation-based alternative to recursive ray tracing for the rapid offline generation of high-fidelity computer generated images. This projects implements Preferred Shading in the Vulkan graphics API, and is able to render realistic images interactively. Shading is performed in texture space before rasterisation occurs, hence why it is also referred to as Texture Space Lighting. Shading in this way also causes the entire surface of each object to be shaded, not just the visible parts, leading it to be known by some as Object Space Lighting.

Ryan has more information on his project here, including Vulkan source code.


Stavros Diolatzis: Real-Time Point-Based Rendering (2018)

This project explores a point-based rendering approach to real time applications, such as virtual museums and video games. In comparison to polygon based rendering (above, right), point based rendering (above, left) promises increased performance and a reduced memory footprint at high resolutions. To achieve PBR at an interactive frame, we take advantage of modern rendering techniques such as programmable shader stages and multi-pass rendering. Finally we applied the renderer to a virtual museum and a video game engine.

Philip Nilsson and Khen Cruzat: Virtual Reality (2018 third year project)

In this third year project, we developed a game which allowed the users to experiment with river flows over a hilly landscape. By using the controllers to manipulate the water flow, as well as the immersive VR environment to explore the consequences of each action, a playful interactive experience was created. The work involved solving graph problems to predict the water’s flow, as well as incorporating all the gameplay into the Unreal game engine.


Nikolay Slavev: Procedural Modelling of Urban Areas (2019 third year project)

renders and overview of the system

This project studies the rules applicable to architectural modelling and more specifically urban areas. Every such area poses a number of challenges encompassing population density, environmental influences, building aesthetics, and street transport modalities for which adequate planning is essential and requires data. Doing all of that manually leads to error-prone, costly and time-consuming development. Our goal here is to approach the of modelling cities procedurally as well as allowing users to make adjustments to the resulting model. This attempts to combine the benefits of both manual without the problems of automatic generation. In this way  the clumsy manual modelling and the risk of fully relying on automatic generation would be reduced. Procedural modeling systems benefit industries in the field of geographic design, urban planning, game development and film production.



Many thanks to all the students for their permission to publish their fantastic work.