John Klima, Terrain Comparison (2001)
Website with HTML, Java Applets, Java files, and .a3d files
As part of a programming workshop with Professor Deena Engel in partnership with the Whitney Museum of American Art, the source files for Terrain Comparison (2001) were analyzed and documented. This two-page web artwork features now-deprecated interactive Java applets in which users can navigate the digitized landscapes of the Donner Pass in California, and the Khyber Pass on the Pakistan/Afghanistan border. Accessing the artwork with current browsers does not show the applets at all, unless special plug-ins to translate the applet content to WebAssembly are installed and activated.
The .jar Java archive file contents were accessed using Java decompiler tools, and the .class files containing code were analyzed. It was determined that Klima utilized third-party Java code by Anfy Team, called Anfy3D, to handle the visual rendering of landscape data and user navigation functions. Use of the Internet Archive’s Wayback Machine and a Windows 2000 virtual machine aided in this investigation. The Windows 2000 VM also allowed performance and documentation of the artwork in the Internet Explorer browser, a primary environment that natively supports Java applets.
The calling tree structures for .class Java files and the overall collection of artwork files were created to illustrate the relationships among files and their technical functions. These were included in a documentation package that details the tools and methodologies used, technical and art historical findings, video documentation of the work in multiple browser settings, and a risk assessment. A presentation to the Whitney curatorial and collections care staff shared highlights and concluded the project.
Terrain Comparison splash page
Terrain Comparison in 2020 Chrome browser with broken applets
Terrain Comparison in Internet Explorer 5 browser with functional applets
HTML applet code
Terrain Comparison calling tree
Java archive package diagram
Java code comparison
Java Decompiler