← Back to projects
Heart Rate Horror gameplay footage

Heart Rate Horror: Biometric Horror Experience

2024 · Solo Project · Immersive Media Design course

Overview

An interactive horror installation that responds to the player's live heart rate, streamed in via the Pulsoid webhook API. Boid-flocking creatures move in sync with the player's heartbeat, approaching when calm and fleeing the instant the player turns to face them.

Demo

The distortion effect shown in isolation.

The final effect in action: boids creep up behind the user, moving to the beat of their heart rate, then flee the instant the user turns to look at them.

The Problem

The assignment required the use of a boids flocking algorithm. For my horror experience, I needed to find a way to make the boids feel genuinely unsettling rather than just visually novel. Once the viewer understands what they are looking at, the tension dies. So I had to create an effect that could obscure its own nature.

The Solution

My first approach used raymarched metaballs to give the boids an amorphous, blobby appearance, but performance collapsed to 20fps with only 5 boids on screen, and the effect lost its mystery once you had seen it once. I pivoted to a screen-space distortion pipeline built across a fragment shader, a compute shader, and a post-process effect, warping the image around invisible circles projected onto each boid. The biggest hurdle with the new pipeline was a GPU-to-CPU readback bottleneck that was tanking performance. I solved it by encoding circle position and radius data for each boid into a single uint using InterlockMax, then passing the compute buffer directly to the fragment shader, avoiding the GPU-to-CPU readback entirely.

Result

Solo project. A live biometric horror experience running at 90-110fps with 50 boids driven by a real heart rate monitor.

More Projects