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 implement 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.
Vis5D
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 about 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 15 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.
McIDAS V
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, we 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.
Retirement
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.
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.