Categories

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

SAGE Applications

Members of the SAGE user community have contributed the following applications that either work directly with SAGE or work through one or more of SAGE’s utilities. If you have applications you would like us to distribute, please contact us.

SAGE includes various types of applications:

Multimedia

ImageViewer
This is an image viewing application based on the ImageMagick toolkit. It loads most of the commonly used image formats (jpg, png, gif, tiff…). Images are automatically converted to DXT format for streaming. A DXT copy is saved locally for later use. Use the ‘-show_original’ option to stream uncompressed data.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Download page: sage.sagecommons.org/resources/download
Last update: 03/21/2009 (maintained)

MacOSX-based Video Streamer
MacOS X libsail-based video streamer was originally developed for the Blackmagic Intensity HDMI capture card, but should work with any other Quicktime Sequence Grabber video capture device.

Developer: Douglas Kosovic
Institution: University of Queensland
Distribution mode: SAGE download
Download page: sage.sagecommons.org/resources/download
Last update: 01/21/2009 (maintained)

Mplayer (movie player)
MPlayer is a movie player that runs on many systems. It plays most commonly used movie formats. An output plugin for SAGE was written to provide video streaming. Audio is not streamed, just played locally. To use the plugin, add the ‘-vo sage’ option.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: SAGE add-on
Download page: sage.sagecommons.org/resources/download
Last update: 11/29/2008 (maintained)

VLC
VLC Media Player is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, mp3, Ogg) as well as DVDs, VCDs and various streaming protocols. It can also be used as a server to stream in unicast or multicast in IPv4 or IPv6 on a high-bandwidth network. An output plugin for SAGE was written to provide video streaming. Audio is not streamed, just played locally. Just add ‘–vout sage’ option to use the plugin.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: SAGE add-on
Download page: sage.sagecommons.org/resources/download
Last update: 11/29/2008 (maintained)

Collaboration

HDS
HDS software streams high-definition video and audio using the SAGE environment. It streams 1080i HD (1920×1080) using RGB16, RGB24, or YUV422 8-bit pixel formats. For video, it requires 995Mbps at 30 frames per second (fps), 830Mbps at 25fps, or 665Mbps at 20fps. There is NO data compression in this release. Audio is streamed uncompressed, 16-bit at 44.1KHz stereo. We use a HDMI capture card from Blackmagic (Intensity model) on Microsoft Windows. A Windows installer is provided in the SAGE distribution.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: SAGE add-on
Last update: 03/21/2009 (maintained)

i-Visto
i-Visto is a network-based multi-rate video transmission system, developed and commercialized by NTT, that can stream up to 1.5Gbps uncompressed HDTV video over IP networks. The system in configured with an i-Visto gateway, HDTV camera, media server, and manager, seamlessly connected by an IP-network based on MAPOS. A SAGE streaming module was developed for various technical demonstrations.

Developer: NTT Network Innovation Laboratories
Institution: NTT
Distribution mode: N/A
Download page: N/A
Last update: N/A

iHDTV™
iHDTV was originally developed by the ResearchChannel and University of Washington, and first demonstrated in 1999. It is a software suite consisting of modules that work with commercially available components to capture, packetize and transport high-definition video in various formats over Internet Protocol networks, spanning the range of HDTV quality levels, with the goal of providing wider access to high-definition content.

Developer: ResearchChannel
Institution: ResearchChannel
Distribution mode: Open source
Download page: sourceforge.net/projects/ihdtv/ (SAGE version N/A)
Last update: N/A

ishare
ishare is a high-speed desktop sharing program in RGB24 or DXT formats. It runs on MacOSX only, since it uses native calls to access desktop pixels. A 1024×768 desktop uses 377Mbps uncompressed or 62Mbps compressed. It uses only ~30Mbps at 10fps in compressed format.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (experimental)

SVC
Scalable Visualization Consumer (SVC) receives MPEG2 data through IEEE1394 files on disk or via a network interface and decompresses it for streaming to a tiled display using SAGE. To be viewed on a tiled display, MPEG2 data has to be decompressed, split up into sub-images and streamed to the appropriate display nodes. Decompression is required because compressed data cannot be easily split up for streaming to separate nodes. SVC was used for an iGrid 2005 demonstration to stream HD video captured by an IEEE1394 HD Sony camera. It has a 30fps frame rate and uses 650Mbps of network bandwidth.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 09/25/2008 (maintained)

UltraGrid
UltraGrid is software for real-time transmissions of high-definition video. It is a variation of the original UltraGrid developed by Colin Perkins, Ladan Gharai, et. al. This work was supported by the CESNET research grant “Optical Network of National Research and Its New Applications” (MSM 6383917201) and by the Masaryk University research grant “Parallel and Distributed Systems” (MSM 0021622419). A SAGE output module (using DXT compression) was added by the CESNET group.

Developer: CESNET / Masaryk University
Institution: Laboratory of Advanced Networking Technologies, Faculty of Informatics, Masaryk University and CESNET
Distribution mode: Open source
Download page: https://sitola.fi.muni.cz/igrid/index.php/UltraGrid
Last update: 01/05/2009 (maintained)

VNCViewer
Virtual Network Computing (VNC) graphical desktop sharing system uses the RFB protocol to remotely control another computer. We developed a VNC protocol client that allows the user to bring desktop content to the SAGE environment. Our VNCViewer application is a modified VNC viewer program that serves as a proxy between a VNC server (of any size and pixel depth) and SAGE. Once pixels are retrieved from the VNC server, the same pixels are given to the SAGE API for immediate display. Functionality is critical in a collaborative environment, where each scientist with his/her laptop needs to share information (web browser, presentations). SAGE supports any number of simultaneous VNC applications, making use of the hundreds of megapixels available on high-resolution tiled displays.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/01/2009 (maintained)

wshare
This high-speed desktop sharing application is available in RGB24 or DXT formats. It runs on Windows platforms only, since it uses native calls to access desktop pixels. A 1024×768 desktop uses 377Mbps uncompressed or 62Mbps compressed. It uses only ~30Mbps at 10fps in compressed format.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (experimental)

Scientific Visualization

bitplayer
The National Center for Supercomputing Applications (NCSA) developed a high-resolution movie playback tool that reads raw HD images from disk and displays them using OpenGL. This software was ported to the SAGE environment and used since an iGrid 2005 demonstration of HD video streaming (1920×1080) from Amsterdam and Chicago to a large tiled display wall in San Diego. bitplayer supports uncompressed (RGB24) and compressed (DXT) content at any resolution, though it is primarily used to stream HD and 4K content.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (maintained)

JuxtaView
JuxtaView is a cluster-based application to view ultra-high-resolution images on tiled displays. Through SAGE, JuxtaView enables a user to interactively zoom and pan across potentially terabytes of distributed, spatially referenced image datasets, such as those generated from electron microscopes, satellites, and aerial photography. Using large amounts of bandwidth, SAGE enables the domain scientist to bridge distributed resources, including storage, rendering, and display clusters.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 09/25/2008 (not maintained)

MagicCarpet
MagicCarpet was designed to provide interactive renderings of large datasets, suitable for fast-paced and demanding use, such as museum installations. MagicCarpet is a cluster-based ultra-high-resolution image viewer for tiled display walls. Unlike JuxtaView, MagicCarpet uses pre-processed multi-resolution images that reside on local disk. The software loads appropriate detail at different zoom levels by paging texture data to video memory on demand. MagicCarpet supports both local and remote user interfaces and the choice of interface may depend on the context. In addition to multi-resolution datasets, time-dependent datasets can also be displayed. MagicCarpet uses VTK to visualize data, and can either work as a standalone application or render to the SAGE tiled display manager.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 09/25/2008 (not maintained)

OpenGL capture
Numerous scientific applications and visualization packages use the OpenGL API, such as OpenDX, VTK, or Paraview. The success of Chromium and WireGL shows a need to support native OpenGL applications in binary mode (without source code modification). We developed an OpenGL wrapper library along the scheme used by WireGL: using a shared library mechanism, we only capture the calls to the glSwapBuffer function and add a pixel readback step. The captured pixels are then streamed to SAGE. This is an efficient and extremely easy way to port native OpenGL applications to SAGE. The performance is sufficient to run 1280×1204-resolution applications at an interactive frame rate. The new generation of PCI-express graphics card will increase this performance several times. Applications known to work: Paraview, Enliten from Ensight, iVew3D from IVS, Google Earth.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (maintained)

Vol-a-Tile
Vol-a-Tile is an interactive tool for exploring large volumetric data on tiled display walls. Hardware texture mapping and level-of-detail techniques provide interactivity while OptiStore, the data management server, provides the high-performance I/O needed to stream data from storage, over optical networks, to the cluster nodes driving the tiled display wall. Vol-a-Tile is designed to handle common data management operations, including loading data, and maintaining meta-information about the data, such as dimension and scaling. In addition, OptiStore provides data processing capabilities, such as run-time gradient/histogram generation, sampling, and cropping, by utilizing functionality in VTK. Network connectivity is provided through the Quanta network toolkit, which utilizes aggressive network protocols. Since Vol-a-Tile is an OpenGL-based application, we added a pixel read-back step at the end of the rendering phase. SAGE streams these pixels for display. This minimal modification to the source code can be added to any OpenGL application and it is an easy way to port various open-source applications to SAGE. Given the fill-limited performance characteristics of volume rendering applications (Vol-a-Tile uses OpenGL 3D textures and fragment shaders), the application runs faster on a cluster of machines where each rendering node generates a sub-portion of the final image. SAGE recombines all the streams and provides the user with a coherent picture, which can be moved and scaled on any portion of the tiled display.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 09/25/2008 (not maintained)

VRA
VRA allows scientists to render very large volumetric datasets on tiled display walls. It uses a multi-resolution octree, an image-order data distribution method, a distributed shared-memory data-management system, a multi-level cache, and hardware accelerated rendering techniques to produce a solution that is scalable in terms of input data size and output resolution.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 11/29/2007 (not maintained)

Tutorial Samples

atlantis
This is a sample OpenGL application (using GLUT toolkit). It uses the ‘glReadPixels’ call to read pixels off the graphics card and stream them for display. Versions using FBO (frame-buffer object) and MPI are also provided.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (maintained)

checker
This simple SAGE application streams a memory buffer. Buffer size and frame rate can be configured from the command line.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (maintained)

dxt
There are two sample applications that showcase the use of the DXT pixel format. One loads a DXT file. The other uses ImageMagick to load a picture from disk, compresses pixels into DXT format, and streams the resulting buffer.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (maintained)

render
This is another OpenGL example. A version for MPI is also provided.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (maintained)

yuv
This sample application makes use of the YUV pixel format, used primarily in video applications (movie player, HD video capture, etc)

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Last update: 03/21/2009 (maintained)

User Interfaces

SAGE Physical Interaction Devices
To interact with the SAGE Widget Framework (see below), one needs physical interaction devices. While a regular mouse can be used on tiled displays from the SAGE master, it is not suitable for large display walls because the mouse restricts users to a hard surface. Therefore, several mid-air devices have been integrated; notably, the Gyromouse, joysticks, trackballs, 6 degree-of-freedom magnetic trackers and the Nintendo Wiimote. While each device has advantages and disadvantages, the Nintendo Wiimote seems to be the preferred device because it’s inexpensive, intuitive and easy to set up. However, because the Wiimote was developed with home TV screens in mind, it doesn’t scale very well to large high-resolution displays. Therefore, we 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 applications or their user interfaces through the SAGE Widget Framework.

Developer: Sharp Laboratories of America and the Electronic Visualization Laboratory
Institution: Sharp Laboratories of America and the University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Restricted
Download page: N/A
Last update: 03/21/2009

SAGE User Interface
The SAGE User Interface (UI) is a cross-platform graphical user interface window manager. Instead of relying on a command line tool to manipulate windows on a SAGE display, a graphical representation of the tiled display configuration and the location of the window can be directly manipulated by a user from his/her laptop. SAGE UI is written in Python and uses the wxWidget toolkit, so it is portable (runs on Windows, MacOSX, Linux). It contains a panel to start/stop SAGE, a panel to configure most SAGE services, and control over an application launcher.

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 SAGE clients can interact with fsManager, thus allowing greater flexibility in the programming language used to create the SAGE client. Since SAGE was designed with collaboration in mind, multiple SAGE UIs can control one SAGE environment at the same time. Each SAGE UI shows the same state; that is, the current state of the tiled display wall.

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Bundled with SAGE distribution
Download page: www.sagecommons.org/resources/download
Last update: 03/21/2009

SAGE Widget Framework
The SAGE Widget Framework is a set of widgets (UI controls) that can 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 sized tiled-display wall, without assigning widget parameters specific to the target display environment (and without aliasing). The initial set of widgets includes: button, icon, label, menu, panel and sizer.

Developer: Sharp Laboratories of America and the Electronic Visualization Laboratory
Institution: Sharp Laboratories of America and the University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: Restricted
Download page: N/A
Last update: 03/21/2009

Web User Interface
The SAGE Web Interface display controller is a web application, built using AJAX and Javascript, which lets users control SAGE displays. The application works on standard web browsers like FireFox, Internet Explorer and Safari (Mac). The current web user interface provides functionality for the desktop user interface. It was primarily developed so that users with minimal knowledge of SAGE could use SAGE-driven tiled display walls for their work. It connects to multiple SAGE sessions simultaneously. Move, resize, minimize and maximize application windows functions are implemented. One can share a desktop through VNC (Note: Desktop sharing requires a VNC server running on the local machine). The server side is implemented using the ‘Apache Tomcat Servlet Container’ (often on the front-end machine).

Developer: Electronic Visualization Laboratory
Institution: University of Illinois at Chicago, Electronic Visualization Laboratory
Distribution mode: SAGE add-on
Download page: http://www.evl.uic.edu/cavern/sage/sagewebui/
Last update: 03/21/2009