My Career at SSEC
Bill Hibbard April 2006
This is the candid story of my career at SSEC. It is a story of second chances: the second chance at a career that SSEC gave me after I ruined my life with alcohol, and my second chance to make McIDAS better after SSEC management kicked me out of the project. It is also the story of what I learned from Verner Suomi, SSEC's founding director and the father of weather satellites. He showed us how to make the world better through his curiosity, inventiveness, commitment, and respect for the people who worked for him.
My Life Before SSEC
There are two relevant facts about my childhood. First, our family was unhappy. My parents had a shouting match over dinner every night for 50 years. At least they didn't divorce. Second, I was the best math student in the history of my high school. I taught myself calculus while in the 8th grade, analytic function theory and general relativity while in 9th grade.
I enrolled at the University of Wisconsin-Madison in 1966 where I continued to excel in math, for example employed by the Math Dept. as a paper grader in their graduate analysis course (Math 721) during my sophomore year. But I also developed a real taste for drugs and alcohol. For math grad school I was accepted by Princeton, Stanford, Michigan and Wisconsin, and enrolled at Princeton in 1970 because the guidebooks said it was the best math school in the US. I found young love while at Princeton but was still unhappy enough there to leave before the end of my first semester. If I had applied and gone to Harvard, where my love was a student, or to MIT, my life might have turned out quite differently. Returning to Madison, I got deeper into drugs and alcohol, and almost incidentally picked up a masters degree in Computer Science in 1974. During the 1970s I lost my love, my friends and my career to alcohol. This was hard on the people close to me, and in the years since I have apologized to many of them. In 1976 I had a very scary experience that convinced me that I would soon lose my life to alcohol. Years later I described my experience to a nurse who worked with alcoholics and she informed me that I had had alcohol seizures. I finally quit drinking on 18 January 1977, two months before my 29th birthday. It was the hardest thing I ever did. Unlike the AA guidance of giving control over your life to a higher power, I quit alone and the great lesson was that I did have the power, and the responsibility, to take control of my life. I spent a year exercising to regain my health and was overcome with the sheer joy of being alive.
Here's a quick list of my computer hardware/software jobs before SSEC. During my college summers of 1968 and 1969 I developed and installed an iron "batching" system, based on a DEC PDP‑8/S (the first computer available for under $10,000), for a Central Foundry in Saginaw, MI, under the employ of the Modern Equipment Corp of Port Washington, WI. Later I maintained and programmed PDP‑8 computers in a UW Psychology lab, developed spooky radar projects at MIT Lincoln Labs, developed hospital lab systems for Laboratory Computing Inc of Madison, graded papers for the UW Computer Science Dept, and worked on two different occasions as research assistants for UW Computer Science professors.
SSEC and McIDAS
In March 1978 I came to work at SSEC as a computer programmer on the McIDAS system, and quickly got to know its director, Verner Suomi, as the finest person I ever met. As a recovering alcoholic it was my good fortune to come to work for Suomi, who had such a positive effect on the lives of his employees. I had lost some intelligence to alcohol, but was still able to serve McIDAS well. I developed software for the FGGE experiment for ingesting data from GOES weather satellites, and software for processing images of Jupiter and Saturn from Voyager spacecraft. Verner Suomi was the Principal Investigator (PI) of these projects (and almost all projects at SSEC) but my FGGE work was managed by Fred Mosher and my Voyager work was managed by Bob Krauss. They were both good people to work for.
In 1979 SSEC had a project to deliver a McIDAS system to the WTVT TV station in Tampa, but personality conflicts between managers and programmers created a problem with getting a McIDAS operating system (OS) installed at WTVT. So three days before system installation management asked me to take care of the OS. It was an interesting challenge, but also got me into the middle of the personality conflict. There was no written documentation about the McIDAS OS but I did manage to get one day of tutoring about it before I left for 10 difficult days in Tampa. The installation was mostly successful but there was one piece of interface equipment that I couldn't get to work with the system (this equipment had never been interfaced to McIDAS before and was poorly documented). The customer was angry and when I returned there had been a management shakeup at SSEC. I never did learn the whole story behind this strange occurrence.
There was a new manager and I became the new McIDAS OS programmer. McIDAS had graduated to a network of Harris minicomputers (each had about 200KB of memory organized in 24‑bit words). The network needed faster communications between computers, so Fred Mosher asked Bob Norton to design the hardware (named the "burn box") and me to design the software for 10 Mbit/sec communications using direct memory access (DMA). Our network of eight minicomputers included two central data managers (they ran satellite ingest software), which we named "mom" and "dad", and six application processors (each ran two scientist workstations), which we named "sue", "liz", "eva", "ken", "rex" and "abe" (had to be 3 characters each). This cute family naming scheme was written up in several news articles.
During this period I created several pieces of useful mathematical software for McIDAS. I invented an algorithm for a fast approximation to the Barnes objective analysis and implemented it as the fbarn function in the McIDAS library. I also created general-purpose image remapping software, for example to transform an image from its native satellite viewpoint to a polar stereographic map projection. This software used only 50 KB of memory and could remap a 320 KB image in about 20 seconds, quite a feat on a Harris minicomputer. I named the software hapy65 (limit of 6 characters) in honor of Verner Suomi's 65th birthday. Just for fun, I wrote a program on McIDAS for playing the board game Othello (aka Reversi). This used min-max search with alpha-beta pruning, and machine learning to optimize the weights for various factors in its board evaluation. It was so strong that no one at SSEC could beat it (some people played two computers against each other to learn ways to beat it). We had delivered a McIDAS to NOAA's Severe Storm Forecast Center, and when we measured the frequency of use of various system commands, my Othello player turned out to be the most frequently used command (this fact was deleted from our report to NOAA).
Idetik and DHMN&P
I left SSEC in December 1980 to be part of Idetik, a commercial venture by ex-SSEC employees to market McIDAS-like systems. I was out of favor with SSEC management, which helped motivate me to leave. At Idetik Bob Norton and I designed a piece of equipment named the Digital Video Storage System (DVSS) for the Air Force Geophysics Lab (AFGL), and a couple simpler systems for other customers.
Despite these projects Idetik failed financially after about a year, so I led an alternate commercial venture with much lower overhead named Davis Hibbard Mayer Norton and Phillips, Inc (DHMN&P). At DHMN&P I wrote graphics software for a TV weather company in Washington DC, and we designed a system based on IBM PCs (the original model, without any hard disk) for simulating GOES Mode AAA satellite signals (simulating the 2 Mbps GOES signal on a 4.77 MHz computer required a pretty clever design). We sold a number of these satellite simulators and with our low overhead actually made money, but this wasn't really what I wanted to do. While Bob Norton, Chris Davis and I designed a number of interesting systems at Idetik and DHMN&P, leaving SSEC was an error in judgement on my part. Rather than trying to get rich, I was happier in the creative atmosphere at SSEC created by Verner Suomi.
The 4-D McIDAS
Fortunately Verner Suomi wanted me back, even if his management team didn't. In October 1983 Fred Mosher asked me to return to work on a new project at SSEC, funded by NASA/MSFC, to produce animated 3-D graphics of the weather. I had enjoyed the graphics programming I did at DHMN&P, and it was great fun to extend this into 3‑D.
During my absence McIDAS had migrated from Harris minicomputers to IBM mainframes, and was being marketed to large government agencies and corporations. The emphasis shifted from research and development to operations. In any case the mainframes were beyond the budgets of university researchers. Cutting McIDAS off from research led to its declining influence in the world of interactive meteorology systems.
As part of the price of returning to SSEC I had to develop software for managing the tape archive of GOES satellite images, named GARS. I was glad to eventually hand this project off to someone else so I could concentrate on graphics.
When I joined the 4‑D graphics project the emphasis was on binocular stereo for creating the 3‑D illusion, but we started three experiments with 3‑D rendering techniques such as were being developed within the Siggraph community. Two of the experiments, by Dave Santek and Bob Krauss, used commercial 3‑D graphics libraries, and I developed software for our own graphics library. Mine evolved into the 4‑D McIDAS, running on IBM mainframes and producing time sequences of 3‑D depictions of weather data. Dave Santek joined my effort.
In 1984 Fred Mosher left SSEC and I asked Verner Suomi if I could take over as program manager of the 4-D McIDAS project. He consented, which made the other McIDAS managers angry. They didn't respect programmers. As program manager I controlled the budget and had a great deal of freedom to determine the direction of the 4‑D McIDAS research. Dave and I experimented with 4‑D displays of a wide variety of weather data.
There was a detour in my 4‑D graphics work at SSEC. A group at SSEC built spacecraft instruments, and their astrophysics project called the Diffuse X-ray Spectrometer (DXS) went badly off the rails. There were 4 microprocessors in the instrument, and the project had hired a programmer to lead their software effort who had never written any assembly language or real time software (when they hired him in the early 1980s assembly language was standard for spacecraft instrument firmware). The 4‑person panel that hired this DXS programmer included a McIDAS programmer recommended by SSEC management, and this McIDAS programmer had not objected to hiring a programmer without the necessary skills. This bad hire led to the DXS software repeatedly missing its schedule milestones and in 1985 NASA created one of its "tiger teams" to investigate and manage this problem. It was determined that SSEC needed a programmer to rewrite the firmware. Rather than asking the McIDAS programmer who had failed to object to the bad hire to do this, SSEC management asked me. This same pattern was repeated a decade later on the XSD satellite ingestor project, where they asked a programmer to fix a problem but had excluded him from the decisions that led to it. Management knew who to come to when they were under the gun to fix a mess, but they couldn't bring themselves to show that implicit respect when it could have prevented the mess. I took a year-long detour from the 4‑D McIDAS project to rewrite the DXS firmware with some help from Gail Dengel, an excellent programmer. SSEC management refused to reward my effort with a raise or title promotion, but at least Verner Suomi thanked me personally for saving the project. Our instrument firmware performed perfectly when DXS flew on a Space Shuttle mission in 1993.
1988 - Life Begins at 40
After DXS I was back to work on the 4‑D McIDAS. We used the system to produce videos of weather data. One good example was a video study of the "President's Day Storm" for Louis Uccellini of NASA. Louis showed this video at meteorology conferences, where it was seen by Daniel Soderman, deputy director of the European Centre for Medium-range Weather Forecasts (ECMWF) in Reading, UK. He invited me to a 1988 conference at ECMWF and began my long association with that excellent organization.
I had presented a paper at the 1986 Workshop on Interactive 3‑D Graphics at the University of North Carolina in Chapel Hill, saw their Pixel Planes system capable of rendering shaded 3‑D graphics in real-time, and knew that this rather than binocular stereo was the key to the utility of 3‑D weather graphics. In fact, they produced a video on Pixel Planes using data I sent them, and I showed the video during a talk at the January 1988 American Meteorology Society (AMS) meeting. Later in 1988 Stellar introduced their GS 1000 system, the first commercial system capable of real-time shaded 3‑D rendering (I had once owned a very fast Suzuki motorcycle with this same model number: GS 1000). My videos helped convince a federal agency to finance our purchase of a Stellar GS 1000, delivered in late October 1988 (but the federal agency never came up with the money so the purchase ended up coming out of SSEC overhead). After about six weeks of feverish programming, I had a version of the 4‑D McIDAS ported to the GS 1000 and used it to produce a video of real-time graphics that I showed at my first ECMWF talk in December 1988. This made a good impression and led to many years of collaboration with ECMWF and others in Europe.
In the spring of 1988 there were a series of meetings at SSEC to decide the future of McIDAS. Finally recognizing that it needed a platform other than IBM mainframes, there had been an effort to port McIDAS to DOS on IBM PCs. But DOS wasn't adequate, so the first issue for the 1988 meetings was to choose a real operating system for McIDAS on reasonably priced systems. The second issue was whether SSEC should continue to build scientist workstations, or should base them on commercial systems. McIDAS management was in favor of OS/2 and continuing to build our own workstations. But Stellar and other coming 3‑D graphics systems all ran Unix, so I argued strenuously for Unix and basing McIDAS on commercial workstations like the GS 1000. Even though I argued alone, Suomi's respect for me made it hard for McIDAS management to ignore my arguments. So I had lunch with SSEC management, during which we agreed that there would be two families of McIDAS: one based on OS/2 and the other based on Unix.
Thus when we purchased the Steller GS 1000 I ported McIDAS to Unix, exploiting the work others were doing in porting McIDAS to OS/2. But my port included new commands for 3‑D and highly interactive graphics - way beyond what was possible on OS/2. These not only made a good impression via video tape at ECMWF, but also in live demos at the January 1989 AMS meeting. Stellar provided a GS 1000 for our exhibit booth, and Greg Tripoli came along to help present the demos and talk with the meteorologists (my first demos used data from his UW-NMS model). The response to the live demos was terrific. Most of the top meteorologists in the world were at the meeting, and they had never seen anything like our interactive, 3‑D displays of weather simulations. We had another highly interactive demo, with dynamic pan and zoom, of a time sequence of large (as I recall, 4000 by 4000 pixels) GOES satellite images that also made a good impression.
Before purchasing the GS 1000, we produced a video of Bob Schlesinger's thunderstorm simulation, using the mainframe 4‑D McIDAS, that was shown at the 1988 Siggraph conference (the first of many videos we had at Siggraph). Our 1988 video was very similar to the much more well known 1989 Siggraph thunderstorm video produced by NCSA. The NCSA video had better rendering quality, but otherwise was essentially a copy of ours. While they concentrated on improving rendering quality, our 1989 Siggraph video showed real-time interaction in 3‑D.
During the meeting at ECMWF in 1988 I made contact with a French scientist, Isabel Schmidly. She organized a 6-month visit in 1989 by a talented engineering student from the Ecole Central in France, Marie-Francoise Voidrot, who helped Dave and me with the early development on the GS 1000. I have visited Marie-Francoise and her growing family several times in Paris and Toulouse, and learned to love France and its people. They really do have the best food in the world. I think it's healthy for a society to have a strong dose of hedonism.
1988 was also pivotal in my personal life. John Moore, a friend from childhood, and his wife Carla invited me to dinner on a Saturday night in February to meet their friend A. J., with the intention of match making. We were both about to turn 40 and neither of us had ever been married, but we got married on Saturday exactly six weeks later. We stopped by the Black Hills on our honeymoon, where we made contact with a park ranger who sent me survey data of Wind Cave. I used the 4‑D McIDAS to make a video of Wind Cave, which was shown at a caving conference. Now, 18 years later, A. J. and I live happily on our farm with dogs, cats and way too many horses. And we've never had a shouting match over dinner.
Verner Suomi had been gradually withdrawing from events at SSEC since his heart bypass operation in 1980. In September 1988 he retired as director, although he retained an office and an interest in projects until his death in 1995. He greatly improved the lives of everyone at SSEC and we wish he could have remained healthy and our leader forever. He led us by his inspiring example and by his obvious interest in and appreciation for our work.
We were accomplishing wonderful things with McIDAS on the GS 1000. Not just with interactive 3‑D graphics, but also with interactive exploration of large images and time sequences. Based on this I prepared two papers for the January 1990 AMS meeting with the titles: Unix and X Windows: the Right Choice for Interactive Systems, and A Unix and X Windows Implementation of McIDAS. When SSEC management heard about these papers they got angry because they were still promoting OS/2. The upshot was that in January 1990 the new SSEC director ordered me to stop using the name "McIDAS" to refer to my work. This would not have happened while Verner Suomi was director. He would have welcomed my efforts to improve McIDAS and regarded the debate between Unix and OS/2 advocates as a normal part of research. So I renamed my work as Vis5D and dropped all the ported parts of McIDAS that weren't necessary for supporting interactive 3‑D or interaction with large images.
This incident was based on the lack of respect that SSEC management had for me (and for many other employees). Despite my lack of a PhD, the university allowed me to become a PI when NASA said they had money for our work but only if I was the PI, since they knew that I was leading the research. Based on my role as PI of this work, on my agreement with management in spring 1988 about two families of McIDAS workstations, and on the general knowledge within SSEC that I had ported McIDAS to Unix on the GS 1000, I had the right to publish this work. But management refused to respect that right. By kicking me out of the McIDAS project, SSEC management was once again severing the system's connection with research, just as they had done in 1981 when they migrated McIDAS to IBM mainframes.
Dave Santek elected to stay with the McIDAS project when I was kicked out, so I needed to hire a new helper. Even before I met Brian Paul I could tell by his resume that he was a hidden gem. A recent computer science graduate with a strong interest in graphics, he was having trouble finding a programming job and was working at a Farm and Fleet (they sell mostly to farmers in Wisconsin, sort of a hardware store on steroids). I hired Brian and he made a great reputation in the graphics community.
McIDAS management eventually realized that their choice of OS/2 had been a mistake and ported the system to Unix (named McIDAS X, where the "X" is for UniX). They asked Dave Santek to do the port, and he started with the port we had done before I was kicked out. Rather than acknowledging that I had been right about Unix, the SSEC director warned me to never mention it to management.
Our experiments during the 1980s with 4‑D McIDAS indicated that the easiest weather data to display in 3‑D was the output of weather models, so Vis5D was targeted specifically at this type of data (the name of the system reflects the fact that weather model output data essentially form a five-dimensional array). This made the system interesting to ECMWF and other weather prediction centers. We copyrighted Vis5D under the GNU public license and made it freely available on an ftp server. It was undoubtedly the first open source visualization system. It developed a large user community, including many who modified its source code to make custom versions of the system.
I presented a paper about Vis5D at the first IEEE Visualization conference, in October 1990, just the third paper during the opening plenary session. I was a member of the program committee of the IEEE Visualization conferences from 1990 until 2002. I also presented a paper at the 1989 Chapel Hill Workshop on Volume Visualization, titled Interactivity is the Key. In this paper I gave the first description of the now widely used method of volume rendering a regular 3‑D grid by a series of transparent planes along the grid axes, and where the choice of which planes to render changes as the user rotates the view. It always uses the planes in the grid most nearly perpendicular to the user's line of sight. We had implemented this technique in the 4‑D McIDAS in 1987, shortly after Pixar introduced volume rendering at the 1987 Siggraph conference.
We used Vis5D to produce videos of real-time interaction for Siggraph starting in 1989. These were accepted for the Siggraph Animation Screening room for a number of years, and in 1992 and 1995 our videos were accepted for the Siggraph Electronic Theater. These are evening shows in large theaters, dominated by videos from Hollywood studios. It was a strange experience to sit in a large theater and listen to my own voice boom out, as narrator of the video.
During the 1990s I started teaching courses on a regular basis at the Siggraph, IEEE Visualization and Supercomputing conferences. Most of these were organized by my good friend Theresa Marie Rhyne.
In 1990 Larry Landweber of the UW Computer Science department came to SSEC looking for applications for his role in the Gigabit Network Testbed project, and the new SSEC director suggested that I work with Larry. This led to five interesting years in the Gigabit project and chance to know Robert Kahn and Vinton Cerf, the inventors of the Internet Protocol. We developed a version of Vis5D distributed between a part running on a supercomputer at NCSA (typically a Cray YMP) and a part running on our workstation at SSEC, connected via a 622 Mbps line (very fast for the early 1990s). By this time Vis5D had been ported to SGI and several other brands of workstation, after Stellar merged with Ardent to form Stardent, which then went out of business. I had known Larry when I was a Computer Science student in the 1970s and he urged me to complete my computer science PhD. He introduced me to Charles Dyer, who served as my advisor. I knew that getting a PhD would help me find funding, and would have the nice effect of reducing the embarrassment to the university of my role as a PI without a PhD.
VisAD and my PhD
At the Siggraph 1990 conference I had participated in a workshop, organized by Lloyd Treinish of IBM, on the topic of data models for scientific visualization. The workshop was notable because its approximately 25 participants included representatives of almost all the major scientific visualization systems and file formats of the 1990s. This workshop really got me thinking about the problem of extending our Vis5D visualizations to data much more general than produced by weather models. This became the theme of my PhD research with Charles Dyer, in a new system named VisAD. While Vis5D was a mix of C and Fortran (the Fortran being left over McIDAS code), VisAD was pure C. It had an object-oriented design, but I rejected C++ for VisAD because its mix of pointer arithmetic and operator overloading made it too easy to write a mess that would be hard to debug. Brian helped with VisAD development, although he mostly worked on Vis5D. During his spare moments he eliminated the Fortran from Vis5D, so that it was eventually pure C (however, the Vis5D distribution package included ancillary programs for managing data and skeletal programs to help users get their data into Vis5D, and there were Fortran versions of the skeletal programs for users who preferred Fortran).
It is inappropriate to describe the ideas of VisAD here, but numerous papers and my PhD dissertation are available on-line. Given my interest in mathematics earlier in life, this work was a pleasant opportunity to return to abstract thinking. There was also a grubby side to VisAD, as it ended up being more code than Vis5D and much more complex and difficult to debug. Furthermore, while Vis5D developed a large user community, VisAD only had a few users and they found it frustrating to use. The users included astrophysicists analyzing the data from DXS, the instrument whose flight firmware I had rescued in the mid 1980s.
I finally finished my PhD in May 1995, after numerous rewrites of my dissertation. It was not a very good dissertation, and the C version of VisAD was not a very good system. But this work was an attempt to solve a hard problem, and it laid the groundwork for a much more successful redesign of VisAD in Java. I should add that Tom Defanti warned me that many students ended up hating their PhD advisors, but Charles Dyer is a great guy and I never had a negative thought about him. I was older than every member of my committee - healthy humility for a former whiz kid.
In the mid-1990s, when the World Wide Web (WWW) appeared, I created web pages for Vis5D and VisAD. With these two major systems I felt that our project deserved an overall identity, so created another web page for our "SSEC Visualization Project". This project page listed our systems, our print publications, our video publications, and other relevant information. I wanted official looking web addresses for these pages like "http://www.ssec.wisc.edu/vis5d/" but the SSEC web server was initially under the control of the McIDAS project and they told me the only web addresses I could use had to be personal (i.e., include "~billh"). Now, after those addresses been established for more than ten years, it would be harmful to change them.
Cave5D and the Vis5D API
Tom Defanti organized an area at the 1992 Siggraph conference where academic graphics projects could demonstrate their software, and we used that to demonstrate Vis5D and VisAD. Then for the 1994 Siggraph Tom organized the VROOM (Virtual Reality ROOM) where visualization projects could demonstrate their software running in the CAVE immersive virtual reality system, developed by his Electronic Visualization Lab at the University of Illinois-Chicago. In order to take advantage of this opportunity, Brian and I created Cave5D, a version of Vis5D running in the CAVE. Siggraph 94 was held in Orlando, so we arranged with Greg Tripoli for his group to use their UW‑NMS model to create daily weather predictions for Florida during the conference. Early every morning I ftp'ed the model output down to the CAVE computer (an SGI workstation), for our Cave5D demo that we called the Siggraph 94 Daily Weather Forecast. Hard work but great fun. We met Glen Wheless and Cathy Lascara of Old Dominion University (ODU) at the VROOM, where they also had a demo. They decided to drop their previous effort and start using Cave5D.
For the 1995 Supercomputing conference Tom, along with Rick Stevens and others, organized the Global Information Infrastructure (GII) Testbed. This consisted of a CAVE and two ImmersaDesks (the CAVE's little brothers) at the conference in San Diego, connected to about fifteen 155Mbps lines that fanned out over the US to various supercomputers (during the week of the conference there was more bandwidth coming into the San Diego Convention Center than into Manhattan). We adapted Cave5D to use a network connection to an IBM SP‑2 supercomputer at Argonne National Lab (ANL). Certain user manipulations with the wand (the CAVE equivalent of a mouse) triggered a request to the SP‑2 to send new model data for display in the CAVE. The technical difficulties for all demos were immense, and on the first day of CAVE demos ours was the only one that worked with the network. Glen and Cathy used Cave5D for an ImmersaDesk demo at the GII. I was skeptical about actual utility of immersive virtual reality to scientists in their work (other than to impress each other with technology demos), so was happy to hand off development of Cave5D to Glen and Cathy after the GII. Eventually they left ODU and Cave5D development passed to a group at ANL.
1995 was the only year I attended a Supercomputing Conference, but it was wonderful. In addition to our Cave5D demo in the GII, I taught a course organized by Theresa Marie Rhyne, was crushed in two chess games against IBM's Deep Blue (the machine that eventually beat Gary Kasparov, but there was so little interest at the conference that I could have played as many games as I liked), and attended by far the best corporate conference party ever, which was given by IBM at the Topgun school at Miramar Naval Air Station.
While I thought Cave5D a not-very-useful novelty, there was an important development in Vis5D at about the same time. Fritz Hasler of NASA/GSFC funded us to incorporate Vis5D into his Interactive Image Spread Sheet (IISS). I decided to do this by creating an API for Vis5D that could be used by other systems to incorporate Vis5D. The API functions invoked the Vis5D data management and 3‑D display functionality, and were invoked by the Vis5D user interface. This enabled the user interfaces of other systems to invoke Vis5D's data management and display via its API. It was a difficult job for Brian and me to take the existing Vis5D code, without an API, and "saw it in half" to create the API. We also incorporated a TCL interpreter into Vis5D and added TCL functions for invoking all the API functions. This enabled users to create Vis5D images and animations via automated TCL scripts.
The API and TCL scripting triggered a big increase in the Vis5D developer community. For example, Vis5D was adapted by the NOAA Forecast Systems Lab (FSL, now called the GSD) as D3D for use in the National Weather Service's AWIPS workstations (much thanks to Paula McCaslin and Phil McDonald for this great work). In 1998 I became an employee of the ECMWF for two months to adapt Vis5D as part of their Metview workstation software. My boss at ECMWF was Jens Daabeck, the head of their graphics group and a great guy to work for. I did the work with Baudouin Rault, a very talented programmer. Don Middleton of NCAR produced a version of Vis5D that employed binocular stereo (available on SGI workstations) and 64-bit addressing (for access to more than 2 GB of memory). Don and his team produced some amazing Vis5D demos and videos. There were several organizations, such as the US Air Force and the Slovakian Weather Service, running operational weather models that wrote Vis5D TCL scripts that ran after model runs finished to generate images and animations for their model output web pages.
There were several other interesting developments involving Vis5D. We made it much smarter about managing memory, so it could intelligently move data between disk and memory to work with very large data sets. We were funded by the US Environmental Protection Agency (EPA) to adapt Vis5D to display their atmospheric chemistry data. This involved a few subtle differences with weather (i.e., physics) data, such as the typically larger number of distinct interesting fields in a chemistry dataset and the greater dynamic range of such fields. We added capabilities to Vis5D for displaying satellite images and point data (such as generated by ground-based weather instruments). But in light of the much more general approach of VisAD, we never put much effort into supporting non-model data in Vis5D.
In order to run Vis5D on a greater variety of workstations, we gave it compile options to use a freeware implementation of OpenGL that did not require 3‑D graphics hardware. However, all the freeware implementations had problems, which motivated Brian to develop his widely used Mesa implementation. This gave him a reputation as a leader of the OpenGL community and he left SSEC to pursue new opportunities (we are still good friends).
I hired Johan Kellum to replace Brian. Johan modified Vis5D to manage and display multiple model output datasets simultaneously (for example, to compare members from an ensemble forecast). Datasets can be displayed in the same 3‑D window, or side-by-side in a spreadsheet of multiple 3‑D windows. We also had two visits to SSEC by Andre Battaiola of Brazil's INPE/CPTEC. Andre made significant contributions to Vis5D.
Vis5D was used all over the world, which got me lots of perks as its primary author. I was invited to Japan in 1991 by Hiroyoshi Ishibashi, CEO of Weather News Inc, and in 2000 by Itsushi Uno, a professor at Kyushu University. I fell in love with Japan and its people. They have an esthetic sense that pervades everything, and they have great food. Any time I got a bit lost on the street, a beautiful Japanese woman would materialize, as if I had rubbed a magic lamp, and offer to help. I had great time at a Sumo match in Fukuoka. I went alone on a Saturday, but made lots of friends in the grandstand where they eat, get drunk (none for me, thanks) and gamble on each pairing.
Daniel Soderman, who first invited me to ECMWF, moved on to a scientific center in Erice, a medieval mountaintop town in Sicily. He invited me to visit this wonderful place in 1989. Then in 1992 John Paul II got a Vis5D demo in Erice. They sent me a photo of the Pope looking at a Vis5D display, which I put on a batch of t-shirts. I entered the t-shirts in the Siggraph 94 t-shirt contest, and was one of the winners.
I was invited to visualization seminars at Schloss Dagstuhl in Germany in 1991, 1994 and 1997. I participated in 1994 and 1997, but turned them down in 1991 due to lack of travel funds, something I have always regretted. Of course, I participated in a large number of meetings of all sorts and sizes in the US, presented many papers and gave many demos. When my talks included live Vis5D demos, I liked to ask for a volunteer from the audience to give the demo (with a little coaching from me), just to show how easy Vis5D was to use.
In the late 1990s we stopped development on Vis5D, and it was taken over by the Vis5d+ project on SourceForge. We also hear of researchers adapting Vis5D for virtual reality experiments and other projects. NCAR has taken over serving the Vis5D mailing list.
VisAD Redesigned in Java
In January 1996 Sun released Java version 1.0 out of beta test. John Anderson, an associate director of SSEC and a very smart young guy, suggested that I should rewrite VisAD in Java. I had rested up from finishing my PhD and was avid to redesign VisAD to vindicate the utility of my ideas. As an interpreted language Java would initially be very slow for visualization, but, based on my experience with Vis5D, I thought that advancing hardware technology (i.e., Moore's Law) and improving Java implementations would fix the performance problem by the time the Java version of VisAD was mature. Years of working with McIDAS and other visualization systems showed that they eventually died when they ran up against limits in their designs. VisAD's general data model and general display architecture provided a good start on a system without such limits (at least as far as possible). Furthermore, Java is designed for the networked computing environment, and proper exploitation of Java's network abilities and object oriented architecture could eliminate more potential limits. Thus a major goal for the VisAD redesign was a system with minimal design limits and hence a very long life. The passage of time would decrease its weaknesses (performance) and play to its strengths (generality and extensibility).
About 18 months into the redesign, Dave Fulker, director of the Unidata Program Center (part of UCAR responsible for distributing meteorological data and software to US universities), called to ask what I thought about Java. We quickly realized we thought alike, so we started a series of VisAD design reviews by Dave, Russ Rew, Glenn Davis and others at Unidata. These reviews greatly improved my design. Also, Dave contributed the time of Steve Emmerson to help with the design and implementation. Steve brought his units (e.g., km, kg, m/sec, etc) package to VisAD, developed a general architecture for an interface between various data file formats and the VisAD data model, and an implementation for Unidata's netCDF file format.
In the late 1990s I was particularly successful with funding proposals and so hired several people to help with VisAD. Curtis Rueden started as a freshman student, and Dave Glowacki and Tom Rink came over from the McIDAS project. Tom Whittaker was a long-time McIDAS programmer who had created that system's non-satellite data graphics during the mid 1970s, but was unhappy in his role as a McIDAS manager. He wanted to get back to more direct involvement in creating innovative software. I helped him understand that given his history and talents he could simply leave the McIDAS project, even though that would anger SSEC management. He and I made the argument together to SSEC management that he should become independent of McIDAS, and there was no way they could refuse (if they hadn't tried to fire me, they certainly weren't going to fire Tom). He was the perfect person to bridge the gap between the programmers who worked on VisAD and the meteorologists who might use the system. Furthermore, McIDAS management could see my growing collaboration with Unidata and were trying to interfere. If Tom was working with me rather than them, they would have no conceivable role. Finally, Unidata contributed the time of a second programmer, Don Murray. These people constituted a dream team for VisAD development. Later Jeff McWhirter, an extremely talented Unidata programmer, replaced Steve Emmerson, and Tommy Jasmin of SSEC started contributing some effort to VisAD.
VisAD gave me the chance for a wonderful collaboration with the Australian Bureau of Meteorology (BOM). James Kelly of BOM understood the need for more modern software for their workstations, and invited me for three long visits to Melbourne (one of my favorite cities) and also invited Tom Whittaker for a visit. Andrew Donaldson of BOM also took a leading role in their use of VisAD. Tom and James, along with Don Murray, have given VisAD the ability to read all types of data from McIDAS servers, known as ADDE. My visits to Melbourne gave me a chance to do some of the most interesting work in VisAD. These include interaction techniques like a rubber band box and the ability for users to draw freehand curves, which BOM needed for their applications.
One of the most useful features of VisAD is the ability to write applications in Python rather than Java. Ray Garcia of SSEC recommended that we use Python, via its Java implementation named Jython. I asked Curtis Rueden to give VisAD a text editor and link to Jython, and I added methods to a number of VisAD classes to work with Python infix arithmetical notation and array accessing notation. I also added a number of utility methods for easily reading files and displaying data from Python scripts. Tom Whittaker added more utility methods and wrote a nice tutorial for VisAD Python programming.
In addition to the contributions to VisAD by programmers at SSEC, Unidata and BOM, programmers at several other institutions have helped. In particular, Ugo Taddei of the University of Jena created a wonderful on-line tutorial.
There are a large number of other projects using VisAD. Curtis Rueden is now using it to develop a biological visualization tool, named VisBio, working for John White at the UW Microscopy Lab. Other application areas include astronomy, finance, land mine detection, and text analysis.
In 1998 Tod Elvins invited me to write an article for his VisFiles column in Computer Graphics, Siggraph's quarterly newsletter, and I wrote about VisAD. In 1999 Tod asked me take over the column, which I did. I wrote about one article per year and solicited three more from other visualization researchers. A column is a great opportunity to get things off your chest. Frustrated with Microsoft's war against Java, in 2003 I wrote a column with the title: Should Standard Oil Own the Roads? In addition to the monopoly issue, this column addressed other public policy issues relevant to the Siggraph community, such as the horrible Digital Millennium Copyright Act (DMCA) and the continuing extensions to the copyright term to keep Mickey Mouse and friends out of the public domain. In one column I expressed skepticism about virtual reality, volume rendering and visual programming. In another I wrote about the way VisAD can be used to define 3‑D user interaction "widgets" embedded in visualizations. In 2004 I turned the VisFiles column over to Kwan-Liu Ma, one of the young stars of visualization.
Despite my VisFiles column about VisAD, I felt the system deserved an article in a major magazine. There are two major professional organizations for computer scientists: the IEEE Computer Society and the Association for Computing Machinery (ACM). I had articles in the IEEE's Computer magazine in 1989 and 1994, so felt the time had come to write one for the Communications of the ACM (CACM). Our article was submitted and accepted by the CACM in 1998. ACM rules prohibited us from resubmitting our accepted article to another magazine, so we waited patiently for publication. In 2001, after waiting 3 years, the CACM sent me an email to inform us that our article would not be published in the CACM, but on-line in what they called their virtual extension. Nothing in the guidelines for authors or their acceptance letter suggested this possibility. After the CACM refused to reconsider I wrote to the ACM President and every member of the ACM publication board explaining how their behavior violated the ACM code of ethics. The head of the pubs board acknowledged that we had been abused but refused to reconsider publishing our article in the CACM. After two years a new ACM President, Maria Klawe, took office and I wrote a letter about our situation to her. She asked the CACM to reconsider, and our article was finally published in the CACM in March 2005. I am grateful to Maria Klawe for her help, but I would never again consider submitting an article to the CACM. Their actions reflected a lack of respect for me as an author.
Unidata decided that eventually they would need a replacement for McIDAS X, as software to provide to universities. Their replacement software, based on VisAD, is now pretty mature and named the Integrated Data Viewer (IDV). In about 2002, Tom Whittaker gave IDV demos at SSEC and showed that it had pretty thoroughly replaced the functions of McIDAS X. SSEC management had changed radically in 2000, with Hank Revercomb as the new director leading a new management team (a breath of fresh air). Based on Tom's IDV demos, I made the argument to Hank that this was an opportunity to radically redesign McIDAS based on VisAD and the IDV (both are open source under the LGPL license). McIDAS X was clearly on a gradual decline, the result of years of suppressing research in favor of operations. So Hank and the new McIDAS managers agreed to a new version, McIDAS V ("V" for Visualization), based on VisAD and the IDV.
This is very important to me personally. I never wanted to leave McIDAS to create my own systems - I wanted to make McIDAS better. It is finally happening. There have been preliminary demos of McIDAS V at the annual meeting of the McIDAS Users Group (MUG), with very positive reactions from the user community. My old collaborator Dave Santek is one of the new McIDAS managers, and its nice to be working with him again. Dee Wade, manager of the MUG and McIDAS operations, has also been very supportive. She understands that the alternative to this radical redesign is the gradual decline of McIDAS X. And McIDAS V brings me back together with Gail Dengel, my collaborator in saving DXS.
SSEC's primary scientific emphasis is hyperspectral satellite data (with thousands of spectral channels). This data exceeds the limits of the McIDAS system, so I wrote the visad.paoloa.Nasti (for data from the NAST-I instrument) application in collaboration with atmospheric scientist Paolo Antonelli to explore how VisAD could be used to visualize hyperspectral data. Tom Whittaker and Tom Rink evolved this into the HYDRA system. Now Tom Rink is incorporating HYDRA into McIDAS V, which will enable scientists to visually compare their hyperspectral data with all the traditional types of atmospheric data.
By 2003 a confluence of events convinced me the time had come to retire. I was having trouble finding funding and for the first time in my career at SSEC was charging my time to overhead. The Java version of VisAD was close to the ultimate expression of my ideas about visualization. I had neither the inspiration nor the energy to try to improve on it, whereas the young programmers working on the project, Curtis Rueden, Tom Rink and Jeff McWhirter, all had the necessary inspiration and energy. And finally, given the university's generous retirement benefits and my own frugality, I could afford to retire. So in July 2004 I retired, at the age of 56. If you think that's too young, you should have funded my proposals.
Hank and the new SSEC managers did what they could to make retirement easy. For example, they successfully requested that the university give me emeritus status, and they continue to give me office space and computer access. I am still advising the McIDAS V project, and also serve on a review panel for the IceCube neutrino observatory being developed at UW (Dave Glowacki now works on the IceCube project).
I am happy to report that none of the programmers who worked with me on VisAD lost their jobs as a result of my retirement. They all found projects to work on, and almost all applying VisAD.
Looking back on my career, it seems to be a natural progression of three distinct stages. In the first stage I created the 4‑D McIDAS to produce 3‑D animations from weather data. In the second stage I created Vis5D to enable other people to easily produce their own 3‑D animations. In the third stage, I created VisAD to enable other people to easily produce their own programs like Vis5D and McIDAS.
Ideas are power. Good managers value their employee's ideas, especially in a university. It was my bad luck that some SSEC managers saw my ideas as a threat to their power.
Since college I have been thinking about the possibility of machines more intelligent than humans, and in 2000 started to seriously investigate the technical and social issues. This resulted in my book, Super‑Intelligent Machines, published in 2002, and several articles. There are some very smart people working on the problems of neuroscience and machine intelligence, and it is a pleasure to study their research. It is clear that the technology of intelligence will bring enormous changes to the world, which can be for good or evil. The public needs to understand and exercise collective, democratic control over this technology. You can read my writings on this subject at http://www.ssec.wisc.edu/~billh/g/Singularity_Notes.html.