Interactive Space Engine

Yang Liu, Nadir Weibel and James D. Hollan. UC San Diego
in collaboration with Ryan Kanoknukulachai and Shimona Carvalho

Interactive Space

Interactive Space is a framework for prototyping multitouch physical desktop interaction. It is highly portable, easy to learn and to use and supports multitouch and gestural interaction on and above the desktop.

Interactive Space uses a Kinect and a projector to make any physical tabletop into an interactive surface. The framework provides an SDK to create interactive prototypes using C# and WPF. It also allows developers to exploit any GUI framework that supports the TUIO protocol.

Screenshots



Getting Started

Hardware Configuration

To use the system you'll need the following hardwares:

Software Prerequisites

You need to have the following installed:

Your First Interactive Space App

  1. Install the project template.
    1. Download the latest InteractiveSpaceApp template for Visual Studio. (Top of the page)
    2. Move the InteractiveSpaceTemplate_(ver).zip to
      %HOMEPATH%\Documents\Visual Studio 2010\Templates.
      (Change to your own case if you changed the default folder settings in VS)
      DO NOT extract the zip file!
  2. Create and build your first app.
    1. In Visual Studio, create a new "InteractiveSpaceApp" project.
    2. Build. If compiling errors happen, go to Trouble Shooting.
  3. Adjust the projector and Kinect.
    1. Connect the projector and Kinect.
    2. Use the projector as a secondary screen. Do not use it as your primary screen, nor mirror mode. Set the resolution of the projector to 1600x1200. (Sorry, it's hard-coded right now…)
    3. Run the app you just built. Wait until the control panel window appears. (Runtime error? Go to Trouble Shooting. )
    4. Click "RGB" button to see the Kinect image. Adjust the position of your projector and Kinect to make sure that the whole projected screen falls within the Kinect view.
  4. Calibration
    1. Click "Calibrate". Wait until chessboard is detected in the left video.
    2. Drag yellow marks to the chessboard corners in the right video. Use your fingers to indicate the corner.
    3. Click "Calibrate Depth Camera". The result will be saved so you don't need to do this every time.
  5. Crop noise area
    1. Open either "Depth" or "OmniTouch" video.
    2. Click "OmniTouch Crop".
    3. Drag your mouse to select noise-free area.
  6. Enjoy your first app by touching the sample buttons, you should see color changes. (Nothing happened? Go to Trouble Shooting )

Still confusing? These slides used in a class might help: Introduction to Interactive Space SDK

Trouble Shooting

Build the Engine

Please refer to this wiki page: Build the Interactive Space Engine.

Contact

You can contact the developers via Google Group Interactive Space Engine Discussion.

Contributing

Feel free to fork this project and send a pull request. We're more than happy to accept contributions.

Copyright and License

Copyright DCog-HCI Laboratary - University of California San Diego

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.