About the project

Why I built it

My uncle - a firefighter - told me how he saved someone's life with CPR. It made me realise most people want to help but have never practised or have the confidence to, as at the time I myself had no idea how to perform CPR. Heartbeat Hero aims to change that with an easy, memorable, interactive, and accessible way to learn the essentials, feel correct rhythm and depth, and prepare for an emergency situation.

What I built

An iPhone and iPad CPR coach with four modes: Learn (the theory behind CPR), Rhythm practice, Depth practice, and AR practice (adds a 3D CPR dummy into your real physical space for AR practicing). All the training runs on device for privacy and reliability - allowing the app to function offline, with all features free of charge.

How I built it and Challenges I faced

Depth Practice is the core innovation. Tricky ARKit visual-inertial odometry, using the ceiling as an anchor point, for accurate depth tracking with just your iPhone. This allows users to perform CPR on a soft surface using their device, and recieve real-time, accurate feedback down to the mm - all without any extra equipment. Demo video: https://youtu.be/CeHAFrnlgr8

This was by far the most complex feature of the app, and took many, many sleepless nights to get working, but I am very proud and happy with how it turned out!

Rhythm Practice uses a low-latency AVAudioEngine tap for tempo detection, allowing users to simply clap to the rhythm, or, use a CPR dummy or practice surface that produces noise on compression.

Accessibility and feedback are multi-modal: haptics, voice guidance and torch pulses for hearing accessibility, plus VoiceOver labels across the UI. I built custom voice commands and voice overs throughout the entire app so users with visual or auditory needs can still use the app and potentially save a life.

What I learned

  • Building accessibility early helped everyone, as not all users can see, hear, or are able to read long bouts of text. I used VoiceOver, Dynamic Type and clear haptics, and I kept testing with those settings to make sure it was inclusive for all.
  • Planning for offline made the app simpler. I stopped assuming a signal and chose features that work anywhere, this is as not everyone has signal all the time, especially in a crowded room where one day I hope everyone is there to learn CPR using Heartbeat Hero.
  • Feedback changed the product. I removed ideas that looked clever but slowed people down, its easy to get blinded by something I want in the app, but my users do not.
  • Keeping features free matters. Just because someone can't afford the fancy stuff like a CPR course or dummy, does not mean they should not be able to have access to potentially life-saving information.
  • I did not do this alone. Firefighters, mentors, family, and friends shared time and advice, for which I am very grateful. ❤️

Why it is different

To my knowledge, no other mobile CPR trainer offers this level of depth accuracy with environment - all private and on device without the need for any extra equipment.

Whats next for Heartbeat Hero

I hope to get Heartbeat Hero into the hands of as many people as possible, doing this by partnering with training providers, foundations, charities and schools to give them the tools to share the knowledge.

Final note

Heartbeat Hero is not a substitute for certified training. It is a bridge from zero to confident action - helping anyone practise rhythm and depth, rehearse the emergency call, and step forward when seconds count.

Built With

Share this project:

Updates