Inspiration

In emergency situations, first responders need useful patient information as quickly as possible, but collecting vital signs can take time and often requires physical contact, extra equipment, and divided attention. We wanted to explore what would happen if some of that information could be captured passively through a camera and displayed directly in a responder’s field of view.

What it does

VitaSpectra uses a live camera feed to monitor a patient and processes that video using the Presage SmartSpectra SDK. The system displays real-time physiological measurements including:

  • Heart / pulse rate
  • Breathing rate
  • Breathing waveform
  • Pulse rate trace
  • Arterial pressure-related waveform data Instead of showing these values in a traditional dashboard, we designed the interface as an EMS-style heads-up display. The patient's camera feed remains the primary view, while important measurements and graphs are displayed along the side of the screen. This allows a responder to continue looking at the patient while simultaneously monitoring their vital signs. Our longer-term goal is to run the system on a Raspberry Pi with a Pi Camera and output the HUD to wearable or AR glasses.

How we built it

We built VitaSpectra around the Presage SmartSpectra SDK, which processes video frames and generates physiological metrics from a camera feed. The application uses:

  • JavaScript / Node.js
  • Electron for the desktop application
  • Presage SmartSpectra SDK for contactless physiological measurements
  • Chart.js for displaying real-time waveforms
  • Browser MediaStream APIs for camera input
  • Raspberry Pi 5 as our target embedded platform
  • Raspberry Pi Camera for the portable version

Challenges we ran into

One of our biggest challenges was getting all of the different components to work together. SmartSpectra depends on a consistent video stream, so camera frame rate and camera configuration became important very quickly. At one point, our processing pipeline was not receiving the minimum frame rate required by the SDK, which forced us to investigate how the camera was being configured and delivered into the application.

Accomplishments that we're proud of

it works :)

What we learned

This project taught us how much work goes into connecting hardware, software, computer vision, and real-time data processing into one functioning system.

We learned how browser media APIs such as getUserMedia() work and how an Electron application interacts with hardware camera devices.

We also gained experience working with real-time event-driven data from the SmartSpectra SDK and learned how to decode, buffer, and visualize continuously arriving physiological measurements.

Built With

Share this project:

Updates

Submission history