Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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 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 or Battery

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 contact Seongkook Heo (


Resources to build a Thor's Hammer device




No releases published


No packages published