Final Project Proposal & Progress Update

Concept

For my final project, I am creating Foot Loose, a physically interactive rhythm game where players step on large acrylic pads to hit falling arrows displayed on screen. The game draws inspiration from Dance Dance Revolution but is redesigned for the IM Fair using Arduino-based sensing, p5.js animation, and a layered LED feedback system.

The interaction is simple and energetic:

  • If the player steps at the correct moment, the system flashes a green LED beside the screen.

  • If the player’s timing is off, a red LED flashes instead.

This creates clear, readable, immediate feedback that works even in a crowded fair environment.

Each stepping pad will also have its own small, colorful LED taped beside it, lighting up the moment the player presses down. This pad-level LED provides instant, physical confirmation of the step before p5 even evaluates the timing. Together, the pad LEDs + the red/green judgment LEDs create a layered, intuitive communication system:

  • Pad LEDs → confirm the user physically stepped

  • Screen & red/green LEDs → confirm whether the timing was good or missed

The design makes the interaction active, performative, and easy for anyone to understand. Players use their whole body—not just their hands—to interact with the system.

System Overview

Foot Loose is built around a tight, responsive interaction loop:

Arduino LISTENS

Reads piezo sensors under the pads and detects steps.

p5.js THINKS

Controls the falling arrows, checks timing, displays visuals, and decides GOOD or MISS.

Arduino SPEAKS BACK

Flashes LEDs based on p5’s decision, creating physical feedback.

This two-way communication keeps players grounded in both the physical dance pads and the on-screen rhythm.

 

Arduino Design (Inputs, Outputs, Behavior)

Inputs: Piezo Sensors Under Each Pad

Each stepping pad will contain a piezo sensor mounted underneath the acrylic.
To stabilize signals, every piezo uses a 1MΩ resistor.

This week, I successfully prototyped the sensing system using:

  • A single piezo

  • Folded tissue padding

  • A hardcover book as a temporary “stepping pad”

Idle readings were stable, and step readings spiked clearly.
Arduino sends a simple message for every detected step:

“L”

Later on, each pad will have its own letter (e.g., L, R, U, D, C).

Outputs: LED Feedback (Two Types)

1. Pad-Level LEDs (instant physical confirmation)

Each pad has a small LED that lights up the moment the user steps on it.
These LEDs make the pads feel “alive” and give instant tactile feedback.

2. Main Feedback LEDs (green = GOOD, red = MISS)

Two LEDs sit next to the screen:

  • Green = correct timing

  • Red = missed timing

Arduino listens for commands from p5:

  • “G” → flash green

  • “M” → flash red

This separates physical detection from timing judgment, creating a polished interaction.

p5.js Design (Visuals, Logic, Timing)

p5 handles:

  • Falling arrows

  • Hit zone

  • Animation timing

  • Displaying GOOD/MISS

  • On-screen feedback color changes

  • Sending “G” or “M” back to Arduino

When p5 receives “L”, it records the timestamp.
When an arrow reaches the hit zone, p5 checks if the hit was within the timing window.
The logic is simple and clean:

  • Inside timing window → GOOD → send “G”

  • Any other case → MISS → send “M”

The combination of movement, visuals, and LED feedback creates the feel of a real arcade rhythm game.

System Interaction Flow

1. Player steps

Piezo spike → Arduino detects → sends “L” to p5

2. p5 evaluates timing

Compares arrow position with the timestamp

3. p5 sends result back to Arduino

GOOD → “G”
MISS → “M”

4. Arduino flashes LEDs

Green LED = good timing
Red LED = miss

5. Pad LEDs

Always flash instantly on physical step, independent of timing

 

Physical Design (Stepping Pads)

There will be five pads:

  • Left

  • Right

  • Up

  • Down

  • Center (jump)

Each pad will:

  • Be made from transparent acrylic

  • Sit above a piezo sensor

  • Have a small LED attached for instant confirmation

  • Be outlined with LED strips for visual flair

  • Use soft padding underneath for stability and shock absorption

Piezo Sensor Test

I tested the piezo sensor by creating a demo foot pad to see if it would catch onto the pressure when someone is stepping on it. 

IMG_1073

Next Steps

  • Build all five acrylic pads

  • Add LED stripes for styling

  • Integrate WebSerial

  • Create multiple arrow lanes

  • Add music

  • Final polish for IM Fair

 

Closing Reflection

This week I finalized the concept and successfully tested the core sensing system. I now have reliable step detection, a complete feedback design, and a two-way communication structure between Arduino and p5.

Foot Loose combines physical movement, sensory feedback, and visual interaction in a way that is fun, readable, and exciting for players. I’m confident in the direction and excited to build the full installation next.

Leave a Reply