https://www.stjohnwa.com.au/first-aid-skills.
Title: Lead Developer
Languages: C#, C++
Tools: Unity 3D, Android Studio, XCode
Platforms: Windows, Android, IOS, WebGL
Key Concepts: Gameplay programming, VR development (Quest 2/3, Pico Neo, Vive, Rift)
Cross-platform mechanic design
UI/UX design and implementation
The First Aid Skills project was an initiative by St John WA to train users in all the elements of a basic first aid qualification, but in a modular, digital form.
This came in two main forms: a standard app for Android, IOS and WebGL, and a more complex VR experience for Quest 2 / 3, Pico Neo and some Vive headsets.
Given that the mechanics of interaction and display were so widely different for these experiences, in hindsight it was amazing we were able to design and implement systems for both within a single project.
This project was made over a 3 year timespan. This extended period was due to a few factors.
- This project had to conform to the education standards put forward by the relevant first aid authority. Due to the nature of standards evolving, throughout the project we had to return to previously complete modules in order to update them.
- Creating the mechanics for both standard and VR experiences meant that every mechanic required vast amounts more implementation, and more testing on top of that
- Publishing to IOS, Android and WebGL meant that our resource delivery systems were also duplicated, and that our minimum resource usage had to fit on extremely old phones and web pages. Not an easy task for a 3D game!
Despite the challenges, the final app was a success and a fun and rewarding experience.
The VR experience was especially hands on! For this experience we developed a proprietary version of the CPR mannequin; “Manny”. This involved embedding an ESP32 embedded processor with an IR sensor within the chest plate. This would measure how far the operator had compressed the chest.
Connecting the chip to the VR headset was challenging, but we had an advantage in that we knew the headset and the mannequins would always share a local network. I developed a system where the ESP32 chips would connect to the local network and broadcast their existence on a UDP Mesh Broadcast. The VR headsets would then allow the user to select the appropriate mannequin for their use from a list. From there the chip and the headset would open a UDP stream for transmitting sensor data. While less secure than a TCP stream, the fact were were transmitting a large amount of data, and that we didnt care about dropped / lost packets, meant UDP was ideal.
In the time since its completion, the company has chosen to cease its maintenance and remove it from the various stores, however you can still find information and media at https://www.stjohnwa.com.au/first-aid-skills.