[ Software Research Group ]

[Home] [Projects] [Members] [Publications] [Links] [Documents] [Demos] [Videos]



See our video demos here.

We have implemented a collection of applications for our prototype Active Space, which include the following:

bulletiCalendar - schedules appointments and tasks
bulletAttendance - records participants for a task
bulletMP3Player - plays music to various speaker devices
bulletPDFViewer - displays Adobe PDF files on one or more displays
bulletPPTViewer - displays PowerPoint™ presentations on displays and handhelds
bulletmPPT - displays multiple synchronized PowerPoint presentations 
bulletTickerTape - scrolls information around the room displays
bulletFingerPrint - authenticates people through finger print matching
bulletScribble - synchronizes drawing and sketching for brainstorming sessions
bulletSpeech Engine - text-to-speech application with components running on different displays
bulletSpeech Recognition Engine - context sensitive speech command recognizer

Camera Controller - a generic service for controlling, managing, and synchronizing cameras

bulletClicky - A utility for controlling multiple devices through a handheld device, like a PDA or a mouse
bulletLocation-Based Access Control
bulletPoll Manager - Application for conducting a poll, and gathering results in real-time
bulletMine Sweeper Game - that can run on multiple displays

Below is an example of some of the applications described above:

A task is scheduled with the iCalendar application.  The time, task, script to run, and context are specified.  We use the iCalendar to schedule our seminars and meetings.
The iCalendar has different presentations for year and monthly views.
The views of the iCalendar are synchronized with the model through the application framework.
Application components are fully distributed.
Users login to the system via the authentication service through different means.
The authentication service supports fingerprint detection, USB devices, and smart watches.
Once a user has been authenticated, an event is sent to the system.  The tickertape listens to these events to provide feedback as to when a user has been logged in or logs out of the system.  The tickertape wraps around the room, moving between displays.
The attendance application also listens to the login events to record who is present during a scheduled task.  The file system associates the attendance information with the current context.  The attendance application can be used - unchanged - for different tasks (e.g., different seminars) and the file system will return the correct attendance data.
When users log into the system, their personal data gets added to the system.  They are allocated a temporary directory in the room namespace.  This allows users to move and have their data move with them to become available to local applications.  Users and applications can tag information so that the data is better organized or available only in a certain context.
The MP3 player application loads all music files that are made available to the system for the current context.  The file system determines which files should be displayed.
Applications in an Active Space may be launched on one or more of the available displays.  When launching an application (either from the application or a data file), a configuration may be selected.  User-defined configurations may also be imported into a space.
Launching an application consists of instantiating the four main components - model, presentation, controller, and coordinator.  Multiple presentation may be attached to the model.  In addition, views may be added after the application has already started.
All devices, services, applications, and users are registered in the space.
A handheld can be registered in the space by first obtaining a handle to the space via IR beacon.  
Once the beacon is received, the handheld can interact with the services in the space.  The handheld becomes another execution node in the space and can run application components.  Optionally, references to personal data can be merged into the room file system namespace.
The handheld is now registered as another device in the room.
Application components (controllers, presentations) can be moved and duplicated to different devices.  The list of available devices are queried from the Space Repository.
For example, the controller can be moved to the registered handheld device.
Similarly, a Smartphone can interact with Gaia over GPRS or Bluetooth.
The application coordinator keeps track of the application components and bindings.  Terminating an application removes all application components from the system.
Webcams can be controlled by Gaia and can be used to track users based on their locations
All this creates a seamless environment that can be programmed to support different activities.