DEVELOPED BY EVL @ UIC

Scalable Adaptive Graphics Environment

APPLICATIONS

This page compiles a list of applications contributed by the community of SAGE users. The page contains applications that have been enhanced to work with SAGE and compiles information on any non-SAGE applications that can work with SAGE through one or more of SAGE's utilities.

Contact us if you would like to know of other applications, or if you have an application you would like us to distribute.


Applications


User Interfaces

How to interact with SAGE and SAGE applications.

SAGE User Interface

The SAGE UI is designed to be a cross-platform graphical user interface window manager for SAGE. Instead of relying on a command line tool for manipulating windows on the SAGE display, a graphical representation of the tiled display configuration and the location of the window can be directly manipulated by the user from his/her machine. One of the features of SAGE is that communication between any SAGE client and fsManager is done using text messages. By using a text-based communication method, different types of SAGE clients can interact with fsManager, thus allowing great flexibility in the programming language used to create the SAGE client. Since SAGE was designed with collaboration in mind, multiple SAGE UIs can be used to control one SAGE environment at the same time. Each SAGE UI will show the same state, being the current state of the tiled display. SAGE UI is written in Python and uses the wxWidget toolkit, so it is very portable (runs on Windows, MacOSX, Linux). It contains a panel to start/stop SAGE, a panel to configure most of SAGE services, and control over the application launcher.

Web User Interface

The SAGE web display controller is a web application built using AJAX and Javacsript that allows users to control the SAGE displays. The applications works on standard web browsers like FireFox, Internet Explorer, Safari (Mac). The current web user interface provides a minimum subset of functionality of the stand-alone version. It was primarily developed to make it easy for a user with minimal knowldege about SAGE, to use the SAGE displays for their work. It connects to multiple SAGE sessions simulatenously. Move, resize, minimize and maximize application windows functions are implemented. One can share a desktop through VNC (Note: For desktop sharing you need an VNC server running on your local machine). A server implemented with the 'Apache Tomcat Servlet Container' is required to run on a fix machine (often your frontend machine).

SAGE Widget Framework

The framework is a set of widgets (UI controls) that can be used to create user interfaces for the SAGE-driven display or applications. Applications can create widgets using a simple API exposed through SAIL and can receive events from these widgets (e.g. menu item selected). No drawing or event management is required by the application itself. Because the framework is distributed and scalable, it can be transparently used by local or remote applications and on any display size, without assigning widget parameters specific to the target display environment (and without aliasing). Initial set of widgets includes: button, icon, label, menu, panel and sizer.

Physical Interaction Devices

In order to interact with the above-mentioned widgets, one needs a physical interaction device. While a regular mouse can be used on the wall from the SAGE master, it is not very suitable for wall-sized displays because it restricts users to a hard surface. Therefore, we have integrated several other mid-air devices: Gyromouse, joysticks, trackballs, 6 degree-of-freedom magnetic trackers and Nintendo Wiimote. While each device has it's own advantages and disadvantages, the Nintendo Wiimote seems to be the preferred device because it's inexpensive, intuitive and easy to set up. However, because it was developed with home TV screens in mind, it doesn't scale very well to large high-resolution displays. Therefore, we have designed and developed a new tracking algorithm that improves Wiimote accuracy without requiring any changes to the hardware itself.
Direct Interaction Manager (DIM) allows multiple devices (not necessarily of the same kind) to simultaneously interact with any of the applications on the display. Each device can start/stop applications, manipulate windows (move, resize, maximize, minimize) and interact with the applications or their user interfaces through SAGE Widgets.