atsuya edited this page Sep 13, 2010 · 12 revisions
Clone this wiki locally


English | 日本語

What is MultiTouchJ?

MultiTouchJ is a framework that provides capabilities needed to develop multitouch applications.

  • Runs on Mac OS X / Linux / Windows.
  • Uses Wii Remote and infrared pens.

MultiTouchJ retrieves positions of infrared pens using infrared camera embedded in Wii Remote. The most convenient way to try MultiTouchJ is to use laptop, locate Wii Remote facing a display of the laptop, and then use infrared pens on the display.

How to Use

Preparing Hardware

In order to use MultiTouchJ, Wii Remote and infrared pens are at least necessary. Following shows a picture of my hardware configuration.

Wii Remote

Infrared camera is embedded in Wii Remote, and it is used to detect positions of infrared pens. Wii Remote should be available in many of video game stores.

Infrared Pen

Infrared pen is used as a pointing device. You can either search for how to make one by yourself or buy one from site like penteractive.


Projector is used to project a desktop image from connected computer onto any flat surface. The projector is not a necessary component, however, it is useful to touch what you see.


Plexiglass is used as a projection surface. The surface that a pen actually touches is this surface. It is covered by tracing paper on top to keep the projection stay on the surface rather than going through it.


Mirror is used to reflect a projection from the projector. It is not necessary to do so if you can project it to the surface without one.

Install JRE

MultiTouchJ is written in Java. Download JRE 1.5 or above from Sun and install.

Install MutiTouchJ

Installation of MultiTouchJ is just a matter of downloading and extracting the file. Download MultiTouchJ, extract it, and then the directory structure should like following:

MultiTouchJ has dependencies on other software. Download and copy them to location that MultiTouchJ can recognize.


LWJGL is a Java binding for OpenGL / OpenAL. Download LWJGL and copy them to “Library” directory.


motej is a Java library enables to communicate with Wii Remote. Download motej and copy them to “Library” directory.


BlueCove is a Java library enables Bluetooth communication. motej uses BlueCove to communicate with Wii Remote. Download BlueCove and copy them to “Library” directory.

After installing those depended software, “Library” directory should look like following:

How to Run

Few applications are provided with MultiTouchJ and following scripts can be used to run them:

  • Whiteboard
    • UNIX: RunWhiteboard.sh
    • Windows: RunWhiteboard.bat
  • RunTouchPong
    • UNIX: RunTouchPong.sh
    • Windows: RunTouchPong.bat

How to Develop

Following is the fact sheet about MultiTouchJ that may help developing MultiTouchJ:

  • It is entirely written in Java, and runs on Mac OS X / Linux / Windows.
  • It accomplishes multitouch by using Wii Remote and infrared pens.
    • It is in TODO list to use OpenCV to detect fingers to do multitouch.
  • OpenGL is used to render anything visual. LWJGL is used to access OpenGL capability from Java.
  • motej is used to communicate with Wii Remote.

Get Involved

Contact me if you want to be involved in developing MultiTouchJ!

Use of MultiTouchJ

Let me know if you used MultiTouchJ for your project!


I worked on MultiTouchJ as thesis for my master’s degree, and the thesis is available.

MultiTouchJ is heavily influenced by following people and projects:

  • Wii Remote Projects from Johnny Lee
    • He video of his research on Wii Remote on YouTube made this type of multitouch famous.
  • Wiimote Whiteboard
    • He has also rewritten Whiteboard from Johnny Lee in Java. MultiTouchJ is not using his code, but his project is also really interesting.