Hardware Prototyping
Interaction Design
VR
Arduino + Unity
Role
Team lead; worked across hardware, code and design
Scope
Hardware prototype, Unity demo, demo video
Team
Jonathan, Michael, Piya, Yuen Ying and me
Timeline
7 weeks, university project
Outcome
Working prototype with air, heat and vibration feedback
Status
Completed
In short
Air Blaster 9000 is a VR controller attachment that makes firing a virtual gun feel physical. It adds air bursts on the back of the hand, heat on the palm that builds up as you keep shooting, and vibration.
We built it as a team of five over seven weeks at university, using a Meta Quest 2, an Arduino Uno and Unity.
001

Air Blaster 9000 in use. The Unity shooting range (left) and a player testing the controller attachment with a Meta Quest 2 (right).
The problem
VR controllers give very little physical feedback. In first-person shooter games, pulling the trigger feels much like pressing any other button, which breaks the sense of being in the game.
We wanted to make shooting feel physical while still working with the standard Meta Quest 2 controllers.
002
Ideation
After looking at existing controllers, each of us sketched ideas, from rough to detailed. We compared them as a team and chose to build around the feeling of a gun’s recoil.
003

Ideation sketches. Our individual concepts for hand-based feedback (left), and ideas grouped by sensation, from temperature to texture and touch (right).
Changing the design when the first idea didn’t work
Our first design used a nozzle at the front of the controller to blast air and push the hand up, like recoil. The compressor we had wasn’t strong enough, and a stronger one with a pressure regulator and solenoid valves was over our budget.
So we redesigned around three smaller types of feedback, all focused on the hand:
Air: a nozzle on a moving servo arm blows air across the back of the hand when you fire, stronger for bigger guns
Heat: a heating pad on the palm warms up the longer you keep shooting, then cools down
Vibration: the Quest 2 controller’s built-in motors, varied by gun type
Together, they made firing feel physical without needing full recoil.
004

The final prototype. The 3D-printed grip with heating pad, servo and air nozzle on a Quest 2 controller, and the full setup with the control box and Unity demo.
How it works
Unity runs the VR game and sends a signal to the Arduino each time a gun fires. The Arduino switches the air compressor and the heating pad on and off.
We started with a relay for the compressor, but it couldn’t switch fast enough to keep up with the trigger, so we replaced it with a MOSFET transistor. The heating pad didn’t need fast switching, so it stayed on a relay. The mount that holds everything on the controller is a mix of 3D-printed and laser-cut parts.
005

How the system fits together. The Arduino, MOSFET, relay and air compressor in the control box, connected to the servo, nozzle and heating pad on the controller.
The demo
We built a simple shooting range in Unity with three targets and two guns, a pistol and a rifle. The pistol gives a shorter, weaker burst of air and vibration, the rifle a longer, stronger one, and the controller warms up after a few shots.
006
The demo. Firing the pistol and rifle in our Unity shooting range, with air, heat and vibration feedback.

