Mixed-Reality Billiards


Conventional input devices are unnatural for certain forms of HCI. This project develops a system that uses a single off-the-shelf video camera and several tangible objects as user interface elements of a particular application, a pocket billiards software simulation. The mixed reality nature of this system stems from the use of physical objects as a driver of a virtual or synthetic reality. The use of a real cue stick is a compelling and more natural user interface enhancement compared with existing simulations which are restricted to mouse and keyboard use.


This is a continuation of a previously developed system.
import javax.swing.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
//import java.security.*;
//import java.rmi.*;

public class KeySpeed16_Applet extends Applet
 implements ActionListener
   private int APPLET_WIDTH = 700;
   private int APPLET_HEIGHT = 420;

   private KeySpeed16 keySpeed;

   public void init()
      java.net.URL url = this.getDocumentBase();
      String query = url.getQuery();

      //query = "Hug&Hort&Fable&1&kb&pc";    //
 test purposes

      try {
          String[] user = query.split("&");
          keySpeed = new
 KeySpeed16(user[0].toUpperCase(), user[1].toUpperCase(),
 user[2].toUpperCase(), user[3].toUpperCase(),
          add (keySpeed);
          setSize (APPLET_WIDTH, APPLET_HEIGHT);
      catch (Exception e) {


   public void actionPerformed (ActionEvent event)