Here are some of the software-related projects I've worked on.
Most of these projects involved graphics, animation and user interface design. The list below is not exhaustive.
Squidball at the SIGGRAPH 2004 Electronic Theater |
|
Squidball is a large-scale, real-time interactive video game that uses motion capture technology to create a unique and energetic gaming experience. In the world's largest calibrated motion capture volume, the game debuted on August 12th, 2004, with an audience of 4,000 people, at the Los Angeles Convention Center, as pre-show entertainment for the SIGGRAPH Electronic Theater.
I contributed to the real-time networking software that connects the various components together.
|
Reverb by Lorie Novak, shown at ArtSway, England.Interweaving photographs of significant moments from the last 50 years with personal images, Reverb places the individual within a deeply political and historical context. Viewers are enveloped by images and sound. |
Approximately 200 images images dissolve and re-eppear in an almost perpertual cycle akin to history itself. The chronological sequence contains both important and little known documentary images of historic events from the Holocaust to the current Iraq conflict. Personal imagery including Novak's family snapshots, self-portraits, and travel photographs from the same periods are interwoven with the media imagery.
I created the image authoring and rendering engine for Reverb, and also the Internet audio streaming engine.
Impersonator by Janet Zweig
|
|
|
Collected Visions by Lorie Novak,
|
Collected Visions uses family snapshots collected from over 350 people to question how photographs shape our memories. In the installation, which has music by Elizabeth Brown, selections from the photograph archive dissolve into each other in two floor-to-ceiling 17 minute sequences simultaneously projected on adjoining walls. The piece has also been installed at the Arizona Center for Creative Photography, and at the Zilkha Gallery at Wesleyan University.
The installation is computer-driven and uses two synchronized high-definition projectors, a four-channel sound track, and multi-channel streaming media authoring software I created specifically for the project.
Microsoft Expression "Sparkle Interactive Designer" at MicrosoftSparkle is the codename of a new Microsoft product for building Avalon ("Windows Presentation Foundation") user interfaces. I worked at Microsoft on the Sparkle team as a Program Manager, for just over a year, while the product was in its early formative stages. |
|
|
Hypermedia in Poplog at Integral Solutions, UKHiPWorks is a multimedia authoring environment, similar in some respects to HyperCard or SuperCard, but running on Unix Workstations, and integrated with a powerful object-oriented programming environment. HiPWorks contains a collection of rich-media widgets for animation, bitmap and vector graphics, and forms controls. It also has a powerful scripting interface. HiP was initially developed in 1992. Although HiP never shipped in great quantities, much of the code for HiP was migrated to Clementine, now a leading data mining application sold by SPSS. |
Painterly Rendering at NYU Media Research LabThis is a pure-Java implementation of Aaron Hertzman and Ken Perlin's Painterly Rendering algorithm, written for Artography Direct. The algorithm aims to combine the expressivity of natural media with the flexibility of computer graphics. I ported Hertzman's implementation to Java and tweaked the rendering code. |
|
|
Perspect - Perspective Image EditorPerpsect is a image distortion toolkit. It supports Photoshop-like layers, and allows a full range of 3D and perspective distortions of the images on those layers. Unlike Photoshop, Perspect lets the user do all of their warps in real-time on low-resolution proxies. The system uses hardware 3D acceleration to make editing operations fast. When the user is satisfied with an image, they can render it out at very-high resolution. The system makes use of high-quality implementations of filtering and warping functions, and produces great quality results. |
Emotive Virtual Actors by Ken PerlinThe goal of this project is to create a framework for procedural emotion shaders. The idea is to allow an artist/programmer to add subtleties to the movements of 3D virtual characters so that they convey mood and personality, without destroying the base moves or paths of the characters as they move through a scene. Ken Perlin developed all the animation software for the movements of the characters. I worked on some of the software architecture aspects of the system, and assisted in connecting the virtual actors to external models. |
|
|
Responsive Animated Characters at NYU Media Research LabThe Improv Animation System was developed at New York University's Media Research Laboratory as a set of tools and techniques which make it possible to create virtual worlds and applications populated with animated agents that behave, interact and respond to user input in ways that convey mood and emotion. The goal of this project was to make improvisational animation accessible to professional artists and creative amateurs with minimal knowledge of 3-D animation, biomechanics, behavioral psychology or artificial intelligence, and to enable researchers and educators to exploit these technologies without relying on expensive production efforts. I contributed to the Java and KPL software for Improv, notably in the area of rendering effects, user interface, and model import. |
Botanica Virtual at NYU Media Research LabThe Botanica is a real-time interactive environment created by the Media Research Lab to demonstrate our Improv animation system. The Botanica was premiered at the SIGGRAPH '96 Digital Bayou, in an exhibit called Spirits of the Bayou. It ran on a Silicon Graphics Onyx with RE2, using sixteen processors. Audio was generatd using Max on a Macintosh. The system had a head-mounted display with head tracking. I helped to develop the software and also assisted with the production work. |
|
|
NASA Data Visualizations with Ben BedersonWith Professor Ben Bederson of the University of Maryland, I created several zooming data visualizations for NASA. The work was funded by the Advanced Automation and Architectures Branch (Code 588) of NASA's Goddard Space Flight Center, and supervised by Chris Rouff. They were interested in effective visualizations for analyzing satellite telemetry in "Lights Out" ground systems, which involve constellations of large numbers of satellites. Our main concern was to provide a high-level overview of the entire constellation, so that an operator could quickly identify problem areas. We proposed several approaches, and developed a fisheye table and a fisheye scatterplot prototypes in Java. This work was complimentary to the work being carried out on the Web-Altairis ground system software, written using the VisAGE toolkit. |
Agile2D - Java OpenGL Graphics2D with Ben Bederson & Jean-Daniel FeketeAgile2D provides a nearly complete implementation of Java2D built using the industry standard OpenGL API. OpenGL provides a number of interesting hardware acceleration capabilities, including alpha blending, double buffering, antialiasing, and texturing, which can be used to deliver impressive two-dimensional graphical applications. The implementation is capable of rendering Swing applications via OpenGL (shown here). I created Agile2D under contract from the University of Maryland. It has since been significantly enhanced by Jean-Daniel Fekete. |
|
|
Piccolo and Jazz at UMD's HCILPiccolo is a Java 2 toolkit that supports the development of 2D structured graphics programs in general, and Zoomable User Interfaces (ZUIs) in particular. It makes it easy for Java programmers to build their own animated graphical applications with zooming, multiple cameras, layers, images, etc. Piccolo was created by Ben Bederson and Jesse Grossjean at the University of Maryland. I helped with the initial implementation of Jazz, and also acted as an advisor for Piccolo. |
Jasmin - for Java Virtual Machine with Troy Downing
Jasmin is a Java Assembler Interface. It takes ASCII descriptions for Java classes, written in a simple assembler-like syntax and using the Java Virtual Machine instruction set. It converts them into binary Java class files suitable for loading into a JVM implementation. I created Jasmin for the O'Reilly book Java Virtual Machine (now out of print), which he co-authored with Troy Downing. |
|