Rosia Evans

EPQ Project

What it is

This project was completed for my Extended Project Equalification (also known as EPQ). During the EPQ, a student will pick a subject of their choice, research it and then either write a paper or create a piece of media (an "artefact") based on what they have learnt. For my subject I originally chose physics simulation as at the time I lacked confidence in maths and wanted to force myself to relearn and become more comfortable with it. The idea of combining VR with this later came about in an attempt to make the project more modern so more primary research and testing could be done. VR was also my major interest outside of school at the time so I leapt at any chance to bring it into my work.

The end result was a system that allowed the user to interact with a virtual environment with 6 degrees of freedom, they could pick up, move and throw objects. Each object had custom authored hand poses and when objects weren't being held, the hands fingers would track the users real world hands.

I learnt blender (a skill that I still use today) and created a mass of assets for the world, including bottles, lemons, boxes and a gun. I implemented these into Unreal Engine and gave some of them custom behaviours.

Due to time restraints, the physics simulation was released separately and, although fully capable of location and force calculation, could not take rotation of objects into account. The VR interfaces became the larger focus on the project, being majorly polished and intricate.

The project was given a high A grade.

What I did

Over the course of 4-5 months I researched and taught myself a large amount of vector maths, the basics of C++, the basics of physics engines, a large portion of Blender and Unreal Engines toolset, a small amount of 3D rendering theory and the basics of game design for virtual reality. Using this I created a fully functional VR interaction system with many custom made assets, materials and classes as well as a very basic physics engine built in C++.

Webrings

<- aber_webring ->
<- fediring ->