Swift Student Challenge
My submission to Apple's WWDC'21 Swift Student Challenge, Functional Programming with Physics, was selected as an award winner. The project is a two-page Swift Playground that introduces basic functional programming concepts to beginners, reinforcing intructional text through interactive user-controlled physics simulations. The simulation API uses natural language predicates and transforms to encourage beginner exploration. This is a unique way to approach teaching functional programming because it doesn’t make understanding closures (which are often a large conceptual hurdle for beginners) a prerequisite. Instead it abstracts them away, allowing the learner to focus on the core principles of assembling pipelines.
Block Smasher started off as an experiment to explore the limits of particle effects in SpriteKit. When I realised I was spending more time playing with the prototype than actually building it, I decided to develop it into a fully-fledged game. One month later, Block Smasher is now a vivid, charming arcade game starring three game modes, original game music, a wealth of customisation options, and—true to its origins—an awesome amount of particle effects. There are loads of behind-the-scenes details like haptic feedback, a custom Swift Collection, and grid animation techniques, which you can check out in the development thread.
I co-founded Phyxercise in 2018 with the mission to use technology to improve the physiotherapy experience for both patients and physios. It started with my EPQ project (an optional education qualification taken around age 17), which used the motion sensors in the iPhone to track a patient's limb, analysing the motion in real time to give appropriate audio guidance to the patient while they complete their physiotherapy exercise. We since won 2 government grants (SBRI/Innovate UK) to extend this technology and I led Phyxercise's techincal efforts through a clinical trial and a version 2 release on both mobile and web platforms. My work involved collaborating with physios to determine requirements, finding the most appropriate solution, and implementing it on iOS and the web while acting in a management capacity for our associated Android project.
To the patient, Physio Exerciser is a hub for their physiotherapy experience outside of appointments. Patients can perform motion-tracked workouts, receive reports on their accuracy and range of motion, take health questionnaires, and view their long-term progress over the course of their treatment.
To the physio, it provides unparalleled insight into how a patient is performing between appointments. Their wellbeing, their accuracy, their schedule adherence—it all helps the physio make informed decisions to achieve better patient outcomes in fewer appointments.
The Physio Dashboard
The Physio Dashboard is a web app that allows physios to interact with their patients remotely and use data to make decisions about patient management. Physios can view summaries of patients' recent workouts, send them messages, and even alter their prescription with changes being immediately pushed to patients' apps. Due to COVID preventing face-to-face appointments, I built in a feature allowing the physio to remotely capture the motion of a patient's workout using their phone.
The Dashboard also contains several helpful features just for physios. It allows them to save and apply templates of exercises, view and manage a teammate's dashboard if they're off for the day, transfer patients within a clinic, and export all patient-facing changes they've made for their permanent records.
You can learn more about the Physio Dashboard by taking a look at one of my related projects: the Phyxercise help page. Watch the Managing Active Patients screencast to see it in action.
ipsy is the 2D physics-based puzzle game that I always wanted to play. The goal is to guide a ball through levels of speed-altering, teleport-triggering, gravity-defying power-ups by painting the ground off which the ball bounces. The player has all the freedom: no correct solutions, no IAPs, just a relaxing soundtrack and unlimited lives. The constantly smooth animations of level objects makes the gameplay feel alive and responsive, and the player is rewarded with new themes, app icons, and obstacles every ten levels.