Resources to build a Thor's Hammer device
Clone or download
seongkook Update
paper link added
Latest commit a51c6e3 Apr 22, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
3D Models Initial commit Jan 8, 2018
Firmware/RotorControl Controller and firmware files upload Jan 8, 2018
Images Readme update Feb 22, 2018
Schematic Controller and firmware files upload Jan 8, 2018
Software Controller and firmware files upload Jan 8, 2018
.gitignore Initial commit Jan 4, 2018 Update Apr 22, 2018

Thor's Hammer

What is Thor's Hammer?

Thor's Hammer is an ungrounded force feedback device that uses propeller propulsion to create 3-DOF force feedback. The device can create 4 N of force in three dimensions and it can be used to make the VR/AR interaction more immersive. You can find the paper to be published at ACM CHI 2018 here.

[Watch Thor's Hammer video on YouTube:] YouTube Video: Thor's Hammer: An Ungrounded Force Feedback Device using Propeller Propulsion

Thor's Hammer Prototype

What are in this repository?

The purpose of this repository is to share materials needed to build Thor's Hammer so that people who are interested in building one (you) can build their own hammer.

This repository has

  • 3D Models of parts to be 3D-printed, including joints, mounts, and handle.

    • EdgeJoint.stl Joints on the edges to connect three 8 mm-diameter carbon fiber tubes. Print 8.
    • MiddleJoint.stl Joints that goes in the middle of a 8 mm-diameter carbon fiber tube that connect two 10 mm-diameter carbon fiber tubes. Print 12.
    • MotorMount.stl This part holds a motor and connects four 10 mm-diameter carbon fiber tubes. Print 6. There is a hole for motor wires to come out of the hammer.
    • MeshHolder.stl This part helps the badminton strings to be uniformly apart from other strings. Print 12 / 24.
    • Handle.stl This is a part that allows you to hold the device in hand. Print one using dense infill ratio for strength (>30%, may differ by printers).
  • Firmware code for Arduino to control Electronic Speed Controllers (ESCs).

    • Thor.ino Firmware file for Aruidno Leonardo board.
  • Schematic showing the electric connections between parts.

  • Software code to test the Hammer and to connect it with Unity.

    • Unity Includes "ForceSend.cs", a Unity script to send force information to the ThorController software via UDP port 8888.

      Add the file in your Unity project and use like the following:

      ForceSend force;
      Vector3 forceVector = new Vector3(0, 1.0f, 0);
      force.SendForce(this.transform.rotation, forceVector);	// First parameter is the device rotation in quaternion.
    • ThorController A program that connects to the Arduino connected to ESCs. This program listens to packets on UDP port 8888 and delivers the force vector coming from Unity to Arduino. This program also allows testing force vectors in 3DOF. This program should be connected to the Arduino board and running to get your Unity software generate force feedback.

What else do I need to build it?

There are other parts you need to build the device. The followings are the parts we used for our prototype, but most parts can be substituted with other parts with similar sizes / specs. You will also need M3 screws to attach the motors on the motor mount.



Motor mounts


Badminton Strings

Carbon Fiber Tubes

Power Supply

Plastic Fasteners (>3mm)

  • Plastic fasteners to tie parts

Wires (18AWG)

  • Use 18AWG or thicker wires to connect motors and ESCs.

Badminton Racket Grip Tape (Optional)

  • Not essential, but this makes the device handle less slippery.


  • SR1050 Diodes to protect the power supply being burnt from reverse current from the motor.


If you have any questions, please send contact Seongkook Heo (