Java goes to the extreme

Programming language lets remote users take control of lethal machinery

Picture this: A high-pressure gas launcher fires explosives, entirely obliterating objects within range. A Boeing jet engine shoots ferocious flames at a flailing robot. A claw-armed mechanism grabs at passersby, who shift nervously, barely avoiding its reach. "Must be that new Armageddon movie," you're thinking, right? Wrong. These are the latest projects from San Francisco-based Survival Research Laboratories (SRL). The real kicker? They all use Java.

Yes, Java. The word usually brings to mind the relatively innocuous -- applets running on browsers, enterprise software applications, bean components, that cool programmable ring you've been hearing so much about lately.

Of course, those of us in dire need of a caffeine fix or a trip to an exotic land may conjure more elaborate notions, but it's safe to say that images of flames, destruction, and mechanical warfare tend not to enter the mind upon hearing the word Java. Unless, of course, you're thinking of the Sun/Microsoft legal battles.

The use of Java in SRL's creations represents the latest development in the nonprofit organization's 20-year history of pushing the boundaries of humankind's relationship to technology. Indeed, over the past year, Java has been the enabling force behind the newest projects from SRL, which as you'll soon see, involve the remote operation of potentially dangerous machines. To gain insight into the ideas behind these Java-enabled works, first, let's look at the creative force behind them.

What is SRL?

Survival Research Laboratories was founded in November 1978 by Mark Pauline. With a background in visual arts and mechanical engineering, Pauline's vision was to merge the two disciplines in a form of pseudo performance art never attempted before. Pauline says that the process of arriving at his machinistic shows was deliberate and efficient; it took two weeks of concentrated thinking to devise their basic form. SRL's work to date involves looking at the possibilities of human and machine interaction in ways unlike those found in military and scientific endeavors. (For links to SRL's Web site see the Resources section.)

Pauline uses the imagery and machines of war (quite literally, some are weapons) in his performances, which he describes as "nearly life-threatening but not quite," to push his audiences to their sensory limits. Incorporating fire, noise, mechanical movement, and speed, SRL shows present a kind of technological nightmare, providing the audience, according to Pauline, with a "genuinely exciting experience" that we don't find in our everyday lives. The result is cathartic.

The Arm has appeared in many SRL performances. It's controlled remotely by an apparatus that attaches to the arm and hand.

SRL's Java projects

When SRL initially registered its Web site in 1993, its intention was to use the Internet as a means of self-promotion. But, Pauline notes, it soon became clear that the Web could be used "as a good tool for making something extreme." Java is one of the technologies that has allowed SRL to realize this vision.

Karen Marcelo and Eric Paulos are the Java programmers at SRL. Marcelo is a 3D programmer who works mainly in Java, VRML, and SQL, and has served as a volunteer at SRL since 1996. Paulos is a graduate student in the Computer Science Department's Experimental Interaction Unit at U.C. Berkeley. His research interests lie in the areas of robotics and what he terms "Web-based telepresence."

Since 1997, SRL has used Java for a number of "telerobotic systems." Consistent with the earliest shows by SRL, these newer systems coopt military (and business) technology and recast it in a new image.

According to Marcelo, Mark Pauline is the creator of the machines and directs the setup of the machine scenarios. She writes the interfaces and network portions of the systems, and Paulos is responsible for writing the interfaces to the machine's controllers and architecting systems to allow for their operation over the Web.

Java in Japan

SRL made its first foray into the world of Java with a project called "Increasing the Latent Period in a System of Remote Destructibility," which took place on July 13, 1997, in two locations: the InterCommunications Center (ICC) in Tokyo, Japan, and the Survival Research Laboratories homebase in San Francisco, CA.

That project used the Air Launcher and the Track Robot, two machines that continue to appear in SRL's shows today. The Air Launcher is a high-pressure gas launcher that can fire a round of explosives at a target within a 1-mile range. Not only is this machine remotely controllable through the Internet via a Java applet interface, but, equipped with video and audio feed, it can communicate realtime data back to remote users. The Track Robot has an arm that can be manipulated to strike objects within range, and has a camera that delivers live imagery of its activities. As demonstrated with the performance in Japan, the Track Robot can be directed to push buttons on a nearby panel array, activating the remotely located Air Launcher, which then fires its shot.

Marcelo fills in the details of the scenario, pinpointing the ways Java enabled this performance:

Mark [Pauline] and Eric [Paulos] were in Japan driving the Track Robot via a Java applet. I was in San Francisco with the Air Launcher engineers manning the "server" side of the system. The Track Robot would punch buttons in a panel attached to another robot (the Epileptic Bot), causing it to flail around as well as send commands to the Air Launcher located in San Francisco. Java was also used for writing the "server" that listened for connections from the client app (Track Robot/Air Launcher user interface) via sockets, and communicated with the physical Air Launcher through the serial port on the PC.

Java as the interface by which remote and largely anonymous users can control what Pauline terms "lethal machinery" certainly represents a new use of the programming language!

Java in Germany

The next Java project from the creative minds at SRL was staged on October 18, 1997. This one bore the title, "Further Explorations in Lethal Experimentation," and was held simultaneously at a gallery called ZKM (the German acronym for "The Center for Art and Media Technology") in Karlsruhe, Germany, in Chicago, and at SRL's homebase in San Francisco.

From Chicago, Pauline initiated the show by clicking a button on a Java applet, sending a command through the Net to the San Francisco-based Air Launcher, which fired an explosive at a target. Participants in Germany were then able to fire the next shots -- at least for the 30 minutes allotted to the show. The event could be experienced remotely via live video and audio.

As with the show in Japan, the client/server setup was written entirely in Java.

On its Web site, SRL offers a provocative description of the October '97 performance, emphasizing the fact that the software is freely available to anyone, and evoking images of anonymous control, not to mention danger:

In this experiment, the second in a continuing series of teleoperated lethal experiments, anonymous participants will establish a direct link using publicly available software over the Internet into the control circuitry of one of the most dangerous devices at Survival Research Laboratories (SRL) -- the Air Launcher.

Why Java?

Asked why SRL chose Java for its projects, Java programmer Marcelo cites the organization's interest in exploring "the implications of widespread, anonymous, and ubiquitous control over [...] teleoperated machines." To this end, "we had to pick easily available and possibly free technologies like Java, the Web [...] and free HTTP servers [...] running on ubiquitous machines (PCs)."

Java's built-in support for threading and networking makes it uniquely suited to SRL's purposes, Marcelo says:

The server was written to allow multiple, asynchronous control over these machines for maximum chaotic effect. Systems such as these, requiring remote control over firing mechanisms, are typically coded to "queue operator" commands and have tight security checking on the identity of the users. We purposely did not do this.

Marcelo also mentions Java's cross-platform capability, which is a big advantage for the SRL programmers. The write-once, run-anywhere tenet proved invaluable, in one example, when five minutes before an event problems cropped up on a PC running Linux. The programmers were easily able to switch to a PC with Windows 95. The ability to switch machines with different OSs without having to recompile "allowed the show to go on seamlessly," she says.

The Web: Not so warm and fuzzy anymore

SRL recently showcased its Java experiments at the Web Design & Development Conference and Exposition (held June 22-25 at Moscone Convention Center in San Francisco). Mark Pauline and Eric Paulos were on the conference's keynote panel, discussing their experiments in human and technological interaction. (For more on the keynote panel, see Resources.)

Leading into Pauline's presentation, Paulos introduced the keynote audience to the concept of "teleterrorism." We tend to think of the Internet as a relatively innocent, innocuous place, a warm and friendly enabler of virtual communities. But what's to stop anyone from using the Web as a forum for antagonistic, violent, illegal activities?

Pauline addressed that question as well, saying, "While it's not true that just anyone can control these machines, it's also not true that this is a safe virtual world. It's becoming easier and easier to take off-the-shelf stuff and build [potentially dangerous] devices."

The SRL panelists treated the keynote audience to a live demo of one of their Java-enabled Web works: The Air Launcher, operated from the computer right there in the conference hall, actually launched missiles at a real target within SRL's building. By clicking on the screen -- represented by a Java applet as shown in the figure below -- one of the panelists fired a shot in realtime while conference attendees viewed and heard this activity via live video and audio feed.

The Java applet for the Air Launcher interface

Throughout the week-long Web conference, SRL (which had a booth on the show floor) staged a number of Java-enabled "performances," using much of the technology from the previous year's projects in Japan and Germany. The recent shows used Java specifically for the 2D and 3D interfaces to the machines.

The Track Robot

The Track Robot featured a wireless network, which allowed it to roam freely along Market Street in San Francisco, interacting with pedestrians.

Marcelo describes the technology behind the Web conference's Track Robot:

Users in Moscone controlled the robot and could see what was going on via NetMeeting (from a camera and video capture card on the robot and on the laptop strapped to it). Because of the addressing scheme used in the wireless setup, the client couldn't connect to the server, which was a laptop attached to the mobile track robot. So the client applet (with the UI for Moscone users) was started by first listening for the server to "connect" to it. Once it connected, they communicated using I/O streams. In order to get around security violations, we ran the applet as a standalone application instead of within a Web browser.
The Java applet for the Track Robot interface

The Boeing and Epileptic Bot

Also featured in the Moscone presentation were the Boeing (a jet engine) and the Epileptic Bot. The Boeing was connected to a piercingly loud police whistle that users, viewing a VRML-generated model, could blow at the press of a button. In addition, participants were able to direct the Boeing to fire an arc of flame at the nearby Epileptic Bot. Through a 3D model, users activated motors that made the Epileptic Bot's arms flail wildly.

According to Marcelo, "The VRML interface to the Boeing and Epileptic Bot used VRML's EAI (External Authoring Interface), which is a Java API that allows communication between a Java applet and the 3D objects within the scene."

The downside to Java

Marcelo told JavaWorld that the use of Java technology didn't really pose a problem for SRL, but she admits, "we found the Web browsers' security restrictions excessive. Also, extra time was spent compensating for the differences between AWT functionality in Microsoft's and Netscape's browsers."

Anonymity and ubiquity

The folks at SRL talk a lot about anonymous and ubiquitous control of potentially lethal equipment through the Internet. At the Web '98 keynote, Pauline described his shows as providing an "extreme experience -- as close as you can get to danger," saying that the experiments allow you to "take control of the Net and do extreme things." Obviously, there are security controls -- for example, the angle of rotation for the Air Launcher is limited so that users can only fire at the target area. Also, the machines' launch states are always clear.

1 2 Page 1
Page 1 of 2
How to choose a low-code development platform