Robert Kooima


Summer 2014

RAWK is a command-line tool capable of performing a variety of image processing operations on very large raw binary image files. It provides a pannable, zoomable preview of the result of the process and enables image process parameters to be tuned interactively regardless of the scale of the input and output. A manual with usage examples is included, as is a complete class hierarchy for the implementation.


Spring 2014

Panoptic is a cross-platform interactive tool for exploring giga-pixel spherical imagery. Executables for Windows, Linux, and OS X are provided. It’s capable of rendering omnistereoscopic panoramas and high resolution planetary surfaces to a standard display, a stereoscopic display, or a head-mounted display. Several gigabytes of example imagery are available for download. This represents a public release of the software underlying the panorama renderer and the Moonwall installation.


March 2014

SYNASPAN is a short C program that synthesizes an all-sky panorama of the night sky from Hipparcos and Tycho–2 stellar catalog data. While the resulting image does not include nebulae or dust, the absense of stars in the catalog does lend structure to the visible portion of the local galaxy. Both galactic and equatorial coordinates are supported. The output image is pre-distorted to wrap spherically and may be arbitrarily large.

Environment Mapping Tools

Spring 2013

The Environment Mapping Tools are a set of command line utilities that operate upon spherical images in TIFF form. These operations including remapping between common spherical projections (cube map, equirectangular, dome master, fisheye, and mirror ball) and generating diffuse irradiance maps from specular environment maps.

Spherical Harmonic Tools

Spring 2013

SHT is a basic implementation of the spherical harmonic transform and its inverse. It is supplied as a template API implementating the transform plus command line utilities for apply the transform to image data, validating the transform, and visualizing the spherical harmonics.


Fall 2012

GIGO is set of command line utilities providing basic image processing functionality and emphasizing frequency-domain operations. Using out-of-core data access, GIGO is limited only by available disk space. With a pervasive multi-core implementation, GIGO is readily capable of processing gigapixel images in short order, and terapixel images in time. C99 source code is made available under the terms of the GNU GPL.


Summer 2012

AVPan is simple command-line utility that bridges the gap between LibAV and Panotools, giving a fully open source mechanism to stitch seamless panoramic video. AVPan was most recently used to merge the output of six GoPro Hero HD cameras carried to the edge of space on a FarHorizons balloon. The image at the left is a frame from one of the resulting videos. This work was presented at the International Planetarium Society Converence 2012.

Spherical Cube Map TIFF

Spring 2012

Spherical Cube Map (SCM) TIFF is a cache file format for giga-pixel scale spherical images. It represents the database for the Stereoscopic Panorama Viewer and the Orbiter lunar visualization. The SCM TIFF toolkit resamples and reprojects spherical color maps and height maps in PNG, JPG, TIFF, and NASA PDS formats. It genenerates mip-maps and normal maps and provides basic arithmetic operations for manipulating large spherical images. C99 source code is made available under the terms of the GNU GPL.

Lightprobe Composer

Summer 2011, Summer 2012

Lightprobe Composer interactively converts high dynamic range lightprobe (mirror sphere) images to usable environment maps. The GUI is implemented in Racket 5.1 with domain-specific extensions in C and image processing in GLSL. All Racket, C, and GLSL code is available here under the terms of the GNU GPL. One or more HDR lightprobe photographs are loaded in TIFF format and their alignment is interactively tuned. Output may be produced in cube map, sphere map, and dome master forms. Here is an example lightprobe (13 MB) captured during a graphics lecture. This is converted to spheremap it the screenshot at the left.


Summer 2010

Docspin is an iOS application for Apple iPad and iPhone that enhances slide presentation with interactive real-time 3D content. I developed Docspin in preparation for the Fall 2010 offering of Interactive Computer Graphics, as I wanted an ideal mechanism for delivering 3D mathematics and source code. Course content is defined in PDF making non-interactive versions of content universally distributable, and enabling high quality mathematical typesetting with LaTeX. Docspin supports inter-document linking, embedded speakers notes, thumbnail browsing, zoom-and-pan source code listings of arbitrary length, and video-out for classroom projection.


Fall 2006

StarFlight is an Electro application based upon Total Perspective Vortex developed at the University of Chicago’s Center for the Presentation of Science. It augments Electro’s stellar render with informative GUI overlays and voice-overs in both English and Spanish. This work is on display at the Adler Planetarium and Astronomy Museum, and was on exhibit at the Laboratorio Arte Alameda in Mexico City from November 2006 to February 2007.

Electro: Mars

Summer 2006

Mars is an Electro application that displays the planet Mars using a demand-paged terrain renderer. The height data is from the Mars Orbiter Laser Altimeter (MOLA) at a resolution of 46,080×23,040. The color data is a mosaic from Viking Orbiter at 16,384×8,192. The planet is presented against the backdrop of Total Perspective Vortex. Source code is included in the Electro distribution, and the data is available upon request. This application was on display at the Adler Planetarium and at Calit2/UCSD until 2010.

Electro: Tollway Simulator

Summer 2006

Tollway Simulator is an Electro application that implements a simplified Chicago freeway driving experience. The project was commissioned by the Illinois State Toll Highway Authority as part of a study of the signage associated with Open Road Tolling. The implementation depicts a variety of signage designs under a variety of lighting conditions. The installation uses 30-inch Apple Cinema displays, giving visual acuity near the legal standard for licensed drivers. Users are asked to indicate the earliest time at which they are capable of interpreting each sign, and sign designs are evaluated on this basis. The project is described in UIC’s Engineering News.

Autostereoscopic Video Telecommunications

Fall 2005

The Autostereoscopic Video Telecom application streams the output of a pair of FireWire cameras over high-bandwidth networks, each at 640×480 at 30Hz. This video, displayed using Electro on a Personal Varrier stereoscopically depicts the remote user as a “floating head” with correct scale. Given that the Varrier does not require 3D glasses or other encumbrances to achieve view-adaptive stereoscopic virtual reality, the result is the first true two-way face-to-face VR communication medium. This technology was demonstrated at iGrid 2005 and SuperComputing 05, and documented as a part of the Global Lambda Visualization Facility.

Electro: Total Perspective Vortex

Spring 2005

Total Perspective Vortex is an Electro application capable of rendering a database of 2,533,774 stars in real time 3D. The viewer is free to navigate within a volume 1,000 light-years in extent. Each individual star is drawn with correct brightness based upon viewing distance and absolute magnitude, correct color based upon spectral type, and correct representation as a Gaussian distribution of luminance. This is accomplished in real time using GPU vertex and pixel shaders. The 88 constellations are optionally depicted by lines connecting stars in 3D, allowing users to view the true 3D shape of constellations in space. Vortex is shown in this YouTube video running on EVL’s 100-million pixel LambdaVision. Source code is included in the Electro distribution.


Spring 2005—2009

Electro is an application development environment designed for use on both cluster-driven tiled displays and desktop systems. Electro is based on the MPI process model and is bound to the Lua programming language. With support for 3D graphics, 2D graphics, audio, and input handling, Electro provides an easy-to-use scripting system for interactive applications spanning multiple processors and displays. Electro supports Linux, Windows 2K/XP, and Mac OS X. Electro has been used by students in CS426 Video Game Programming in 2005 and 2006, and has formed the basis for numerous applications and art pieces at EVL and elsewhere.