Magic Lens

From Immersive Visualization Lab Wiki
Jump to: navigation, search


Project Overview

The project is building upon the work found in the prior project ArtifactVis with Android Device. The goal of MagicLens is to allow the user to use an android device as a "magical lens" to view the world. The device will update its perspective on the world depending on its location in the world. Additonally head tracking will affect how the world is displayed depending on how it is viewed by the user.

Significant Updates

  • June 6: Implemented core functionality based on "Generalized Perspective Projection, Robert Kooima, August 2008"
  • May 7: Enabled camera position and perspective manipulation on android client with accordance to motion trackers.
  • April 26: Sample camera tracking manipulation tested on viewer on desktop.
  • March 12: Enabled camera position manipulation on android client with accordance to motion trackers.
  • February 27: Implemented view-frustum updating on android client with accordance to motion trackers.
  • Februrary 26: Resolved several TCP/IP packet/connection issues and began transforming android client using values passed from dtrack.
  • February 14: Implemented necessary library functions from dtrack API (Angles, Position Matrices, etc.). Allowed access to shared memory location in order to pull values from the Sensors to the server.
  • Feburary 12 : Enabled access to dtrack on MagicLens CalVR plugin. MagicLens can now track and interpret movement of sensors based on dtrack's given orientation/rotation values.
  • Feburary 1 : Client-end(Android Device) can now handle custom IP addresses.
  • January 18 : Configured workspace and OpenSceneGraph for android.


  • Tweak current rotation functionality.
  • Enable headtracking to alter the perspective of view on android.
  • Enable debugging or simulator mode for android to display data and enable default position.
  • Figure out what dtrack values are scaled to
  • Pass/Calculate rotation values to client-side (Android) version of Magic Lens
  • Add the rotation matrices to Scene Graph, and watch the magic happen!

Known Bugs/Issues

  • Current version allows the camera to rotate incorrectly.
  • Connection Issues
    • Needs to open up firewall permissions (port 28888) on the computer before being able to create a connectable server
    • Server connection hangs if Android client is not forcibly quit before CalVR closes (Workaround: Always force close Android client before closing CalVR)

Additional Information

Project Goals

  • A sophisticated and intuitive user experience
  • Tracking device panning and replicating movement on CalVR
  • Heading tracking and replicating displaced object on device
  • Expand to interaction and application with Archaeological artifacts
  • Communication between other plugins


Software Developer

  • Tony Chan
  • Michael Chao

Project Advisor

  • Jurgen Schulze


Computers that can connect using MagicLens:

  • Gneiss -
  • Rubble - (Android Application Default)
  • Shale -


  • Starting and Stoping Dtrack commands
    • ps -ef | grep trackd
    • /home/calvr/trackd start
    • /home/calvr/trackd stop
  • Dtrack Memory Location
    • /usr/local/trackd/etc/trackd.conf
  • Plugin Helper Functions
    • file:///home/calvr/CalVR/doc/html/classcvr_1_1PluginHelper.html#a50da32d210cff2d68c4564cb189953a7