EIR Training Trailer
— ROLE
Programmer, Designer
— DATE
November 2021- Present
Available right now on the Meta Quest Store!
EIR Training is a Unity C# based VR Fitness experience which uses Electro-Muscular Stimulation (EMS) as well as unique gameplay to enhance user’s muscle growth and fitness. Users can do guided classes complete with voiced trainers.
EIR Training has had over 1000 monthly users and a 5 star rating.
I designed and programmed this software from the ground up with one other programmer. As the team was small, I created the base UX, the entire Fitness system including classes and exercises, an SDK for other developers to use, plenty of documentation and even a few of the early environments environments.
The app uses an AWS backend, using lambdas and MongoDB to capture player metrics, leaderboards and store classes online.
EIR Training began life as a small demo with a few different exercise mini-games.
This demo was created to show the potential of the EMS devices, so it was limited.
You could only pull resistance bands, punch a boxing bag and use a Ski-Erg machines. You were scored points but these were not stored.
I wrote many tools to make the class and exercise iteration easier.
Among the most useful were ways to show exercises in 3d space and custom inspector functionality to send and retrieve classes to the cloud.
A lot of these were written using Unity’s ScriptableObjects and custom editors on top of that.
Over the production of EIR Training, I had a hand in contributing to many pieces of the software including:
- Over 50 unique exercises
- Dumbbells, resistance bands, cable
machines.
-Custom voice lines for almost every exercise. The lines will change depending on the trainer who you are training with and the situation the player is in E.G performance or running out of time.
- Fully fleshed out voiced and filmed tutorial.
- 10+ varied classes with 3 different trainers.
- Several different backgrounds and music tracks which can be dynamically swapped during gameplay.
- Leaderboards setup via AWS
-Integrated EMS device recalibration and connection.
A single class sits atop the structure and it’s this class that passes the Update from Unity down the class heirachy to monitor the progress of the exercises. Each Fitness Class has several exercises within it.
Exercise contains metadata fields like the name, time it takes to complete and what equipment will be required. It also contains a list of Steps.
A Step is a list of positions for each limb. It also has data related to how the step is completed such as with equipment, held over time etc.
For example, if I wanted to create a squat, I’d first create a new Exercise. I would fill in the name and metadata, and then I’d begin defining steps.
A squat has two relevant positions. A standing position and a squatting position. Therefore the exercise will only need two steps, both monitoring the head position of the user. I created tooling for moving these points around in 3D space using widgets.
We want to score the player extra points for doing deep squats so we’ll add that when we declare the step.
If we wanted to use dumbbells during the squat, we’d mark them as required in the Exercise. The exercise will now automatically detect whether the dumbbells are being used correctly and will transmit this information to the active step.
Our Dumbbell Squat is now finished. It will automatically be serialised into a JSON which can be tested or sent to the cloud directly via the editor tooling.