Inspiration

Bystander CPR is linked to higher survival, yet many people who took a course or watched a video still would not act. In a study of trained bystanders who did not perform CPR, panic was the most common reason given. The missing piece is practice: enough repetitions on a manikin that the rhythm becomes automatic.

What it does

Keep Pace is a Hands-Only CPR training coach used on a CPR manikin. It is a practice tool, not an emergency tool, and it says so on its first screen.

  • A short reminder of the real order (Call, Push, Shock) and a disclaimer, placed ahead of you before you kneel.
  • One pinch on the chest places a target. Two thin brackets beside your hands breathe at 110 per minute, with a soft click.
  • After ten compressions in the recommended 100 to 120 per minute range, the brackets fade, then the click stops. You hold the pace alone.
  • When you drift, the guidance comes back at once, with a short "Faster" or "Slower" cue and thicker brackets. When you recover, it fades again.
  • After 2 minutes, or 3 seconds without a compression, the round ends with a pulse and a tone telling you to look up. A summary waits beyond the manikin: time, rate, regularity, and from round two a comparison with the last round. Then Again or Move target.

Why glasses

During practice your hands are on the chest and your eyes are on your hands. A phone or video sits elsewhere. The glasses put the cue where you already look, then take it away.

How we built it

I planned the Lens with the Devpost Learn skill pack: an interview that produced an approved design brief, including three rules (information lives on the chest; silent when all is well; one word at most, never near the hands) and five testable done criteria. CLAD built it in Lens Studio 5.24.1 through the Lens Studio MCP with Spectacles Interaction Kit and UI Kit. The cadence logic is a pure module that only consumes a target position and a stream of compression events, so a real compression source can replace the stand-in later. Six LEAF scenarios cover the five done criteria, and all six pass in the preview. Medical values come only from the 2025 AHA and ERC guidelines, with sources in the README.

Challenges

  • A ring around the hands plus a word beyond it did not fit the view at 50 cm from the eyes, so the cue became two brackets on the wider horizontal axis.
  • There is no honest way to detect real compressions in the preview, so each pinch on the target stands in for one compression. The video says so.
  • Snap's account service was down during the build, so the spoken cues are synthesized tones for now.

Accomplishments

  • Guidance that fades while you hold the rhythm and comes back the moment you drift, all in one continuous round.
  • All five done criteria in the brief are covered by passing LEAF tests, two of them driven by real SIK pinches. What the tests cannot check (sound, the look of the brackets, comfort) is listed openly in the README.

What we learned

On glasses, less is the feature: the best moment is when the Lens shows nothing because you no longer need it. I also learned to design from the field of view, not from a screen: at 50 cm from the eyes only about 23 by 38 cm is visible, which turned a ring and a floating word into two brackets and a sound. And I learned to be honest about the preview: the logic is proven by tests, the feel on real glasses is not.

What's next

Compression detection from hand motion on device, a reliable hands-on-target check, memory across practice sessions, a shared trainer mode, and recorded spoken cues.

Code, design brief, tests and sources: https://github.com/Chinorab/keep-pace

Built With

  • clad
  • leaf
  • lens-studio
  • lens-studio-mcp
  • specs
  • spectacles-interaction-kit
  • spectacles-ui-kit
  • typescript
Share this project:

Updates

Submission history