VAMP
Overview
VAMP revives a 1987 Sega arcade motorcycle machine and fuses it with a modern VR twist. We parsed the cabinet's raw voltage signals through an Arduino, piped them into Unreal Engine 5, and dressed the result in OutRun neon.
Built for the Sony USC ETC Transmedia Challenge and awarded Best Immersive Software & Hardware. Retro cabinet, modern headset — same handlebars.
Contributions
- Pitched the concept — reviving an old arcade motorcycle with VR for Sony USC ETC.
- Co-engineered voltage parsing — Arduino signal capture integrated with Unreal Engine.
- Designed levels with OutRun and Synthwave aesthetics — city dense, highway wide.
- Programmed motorcycle mechanics in Unreal Blueprints — throttle, steering, braking.
Pitch & Aesthetic
The cabinet · 1987 Sega
Can we revive it?
The project began with a question — can we revive a forty-year-old arcade motorcycle without gutting its soul?
We pitched the concept to Sony and USC through sketches and mood boards. The answer was 80s and 90s neon retro — vibrant, immersive, warmly overdriven. I designed the visual language end-to-end: environments, UI, and overall look.
Visual aesthetic — OutRun neon
OutRun lineage
Warm magentas, electric blues, sodium orange — the palette comes straight from the era the cabinet was built in. The goal wasn't nostalgia; it was to honor a machine that was designed to feel fast in 1987 and still does in VR.
Hardware Integration
System overview
Four decades, one serial line
The pipeline runs from arcade controller to computer interface to VR headset — four decades of hardware speaking through a single serial line.
01 · Multimeter testing
01 · Multimeter Testing
Verified voltage outputs from the motorcycle controller wires using a multimeter, then established jump-wire connections to route signal into the breadboard.
02 · Wire identification
02 · Wire Identification
Identified which wires correspond to throttle, brake, and steering — ensuring accurate signal mapping before writing a line of code.
03 · Arduino parsing — live
03 · Arduino Parsing
The Arduino reads and interprets controller voltage changes into processable data, transmitting over serial to bridge hardware and Unreal in real time.
Hardware demo · live voltage to Unreal
End-to-end demo
The full loop — physical handlebar to serial to Unreal to VR headset — latency low enough that the cabinet feels like a native input device. The forty-year-old iron stays alive.
Gameplay & Levels
Level layout overview
Two feels, one cabinet
Combined city and highway sections providing balance between urban density and open-road freedom — two feels, one cabinet.
01 · City
01 · City
Players navigate a neon-lit metropolis — tight turns, glowing signage, bustling street ambiance. The city demands precision and control at moderate speeds.
02 · Highway
02 · Highway
The highway features broad lanes and high-speed stretches — invite the throttle, test maneuverability in the open.
Motorcycle Blueprints
01 · Serial data
01 · Serial Data
Raw input from the Arduino is captured via serial communication and stored inside Unreal Engine. Reading voltage data sent over the wire translates physical controller actions into in-game events.
Input processing · control flow
Input processing
Raw serial values pass through smoothing and dead-zone stages before being consumed — raw voltage from a 1987 cabinet is noisy, and the blueprints scrub it into something Unreal can trust.
02 · Chaos Vehicle — movement + brake lights
02 · Chaos Vehicle
Processed controller inputs feed into Unreal's Chaos Vehicle system — governing throttle, steering, and braking in real time. The cabinet speaks Unreal.
Debugging · calibration tools
Debug & calibration
Overlays and snippets illustrate how we compensate for controller dead zones and unstable voltage readings — ensuring smooth, reliable gameplay across a forty-year-old cabinet.