(with some noted originally from Bill Sherman NCSA, and others from my CS 422 course)
CS
422: User Interface Design - Focus on developing effective user
interfaces
CS
426: Video Game Programming - Focus on creating a complete audio visual
interactive (and fun) experience
CS 488: Computer Graphics I - Focus on the basics of how computers create images on screens, OpenGL
CS 526: Computer Graphics II - Focus on modern computer graphics techniques
CS 528: Virtual Reality - Focus on immersion
CS 522: Human Computer Interaction - Focus on interaction
CS
527: Computer Animation - Focus on motion
CS
528: GPU Programming - Focus on shaders and parallel processing
Scientific Visualization
Webster defines Visualization as:
Hamming: "The purpose of computing is insight not numbers"
What are the advantages? (adapted from [Ware 2000])
How do we make good visualizations? (adapted from [Tufte 1983]) and covered as part of CS 422 (at least when I teach it)
Here are a couple simple examples where 2d visualiztion techniques in one case did have and in the second case should have had an important positive effect that I like to use as examples in the User Interface Design and Programming course:
The first was a visualization created by Dr. John Snow(1813-1858) a distinguished British Anesthesiologist who plotted over 500 deaths in central London from Cholera in September 1854.
Here
is the graphic reprinted in the Visual Display of Quantitative
Information, p24 (there is another good related map in Visual
Explanations, P30.)
A
really good book to read if you are interested in this is 'The Ghost
Map' by Steven Johnson, published in 2006.
And
more information is available online at:
http://www.ph.ucla.edu/epi/snow.html
If
you want to look at this area now, you can tell google earth to go to
'Golden Square, London, Greater London, W1F, UK'

Deaths are marked by dots and the location of the 11 water pumps in the area are marked with Xs. The deaths seemed centered around the Broad St. pump. When people stopped using the pump, the epidemic ceased. Note that at the time the infectious theory of disease was not generally accepted. Disease was believed to be caused by morbid poisons coming from dead bodies and decaying organic matter, and spread through the air.
Here
is some of his own text: (full text available at
http://bbh.hhdev.psu.edu/courses/440/SnowCholera/snow_on_cholera_exercise.htm)
Very few of the fifty-six attacks placed in the table to the 31st August occurred till late in the evening of that day. The eruption was extremely sudden, as I learn from the medical men living in the midst of the district, and commenced in the night between the 31st August and 1st September."
"The greatest number of attacks in any one day occurred on the 1st of September, immediately after the outbreak commenced. The following day the attacks fell from one hundred and forty-three to one hundred and sixteen, and the day afterwards to fifty-four. A glance at the above table will show that the fresh attacks continued to become less numerous every day. On September the 8th-- the day when the handle of the pump was removed--there were twelve attacks; on the 9th, eleven: on the 10th, five: on the llth, five; on the 12th, only one: and after this time, there were never more than four attacks on one day. During the decline of the epidemic the deaths were more numerous than the attacks, owing to the decease of many persons who had lingered for several days in consecutive fever.
"There
is no doubt that the mortality was much diminished, as I said before,
by the flight of the population, which commenced soon after the
outbreak,- but the attacks had so far diminished before the use of the
water was stopped, that it is impossible to decide whether the well
still contained the cholera poison in an active state, or whether, from
some cause, the water had become free from it."
Here is the actual data:
| Date | # of Fatal Attacks | Deaths | Date | # of Fatal Attacks | Deaths | |
| 8/ 19 | 1 | 1 | 9/9 | 11 | 24 | |
| 8/20 | 1 | 0 | 9/10 | 5 | 18 | |
| 8/21 | 1 | 2 | 9/11 | 5 | 15 | |
| 8/22 | 0 | 0 | 9/12 | 1 | 6 | |
| 8/23 | 1 | 0 | 9/13 | 3 | 13 | |
| 8/24 | 1 | 2 | 9/14 | 0 | 6 | |
| 8/25 | 0 | 0 | 9/15 | 1 | 8 | |
| 8/26 | 1 | 0 | 9/16 | 4 | 6 | |
| 8/27 | 1 | 1 | 9/17 | 2 | 5 | |
| 8/28 | 1 | 0 | 9/18 | 3 | 2 | |
| 8/29 | 1 | 1 | 9/19 | 0 | 3 | |
| 8/30 | 8 | 2 | 9/20 | 0 | 0 | |
| 8/31 | 56 | 3 | 9/21 | 2 | 0 | |
| 9/1 | 143 | 70 | 9/22 | 1 | 2 | |
| 9/2 | 116 | 127 | 9/23 | 1 | 3 | |
| 9/3 | 54 | 76 | 9/24 | 1 | 0 | |
| 9/4 | 46 | 71 | 9/25 | 1 | 0 | |
| 9/5 | 36 | 45 | 9/26 | 1 | 2 | |
| 9/6 | 20 | 37 | 9/27 | 1 | 0 | |
| 9/7 | 28 | 32 | 9/28 | 0 | 2 | |
| 9/8 | 12 | 30 * | 9/29 | 0 | 1 | |
| 9/20 | 0 | 0 |
* pump handle removed
but its not just about making a graphic, but making a _good_ graphic. A bad graphic may hide the truth.

It is perhaps also worth noting that 30 years later in August 1885 a rainstorm dropped 7" of rain on Chicago in one day, overflowing the drainage systems and causing raw sewage to flow into the lake and back into the cities drinking water - 10% of the cities population (80,000 people) died.
The second is a discussion of the Challenger disaster with refs from Tufte's "Visual Explanations" which again shows how the presentation of information can influence how it is interpreted.


sci-viz still very much an art - algorithms and routines are a starting point but it takes experience and creativity to use them effectively
So now lets get into some specifics ...
VTK
- what is it, what does it do, and why are we talking about it.
There
are quite a few packages that can do visualization (scientific,
information, medical, etc) out there. VTK is the one that we use in the
lab. Its available for free for all major computer platforms, and there
are a lot of vtk examples available on the web, so it seems like a good
package to use in this course. The basic visualization concepts remain
the same though the terminolgy and capabilities may change from package
to package.
For
this course you can use vtk, and I would encourage this if you have not
done much graphics programming in the past. If you have more experience
with graphics programming then you may want to do the work yourself.
Visualization Pipeline/Network (Chap 4 vtk)
Pretty much all of these packages have a pipeline architecture.
Data Objects - information plus methods to create, access, delete information
Process Objects - Operate on input data to generate output data
VTK has a demand driven pipeline archictecture
These various software packages work in different ways:
Explicit Execution
Implicit Execution
Memory Models
So, lets get a little more specific with an example of how we can use the vtk pipeline to go from data to a visualization.
Here is a brief demonstration of ParaView (vtk) with the Visible Woman dataset
From the virual human web page (http://www.nlm.nih.gov/research/visible/) "The Visible Human Male data set consists of MRI, CT and anatomical images. Axial MRI images of the head and neck and longitudinal sections of the rest of the body were obtained at 4 mm intervals. The MRI images are 256 pixel by 256 pixel resolution. Each pixel having 12 bits of grey tone resolution. The CT data consists of axial CT scans of the entire body taken at 1 mm intervals at a resolution of 512 pixels by 512 pixels with each pixel made up of 12 bits of grey tone. The approximately 7.5 megabyte axial anatomical images are 2048 pixels by 1216 pixels, with each pixel defined by 24 bits of color. The anatomical cross-sections are at 1 mm intervals to coincide with the CT axial images. There are 1871 cross-sections for both CT and anatomy. The complete male data set, 15 gigabytes in size, was made publicly available in November, 1994.
The Visible Human Female data set, released in November, 1995, has the same characteristics as the The Visible Human Male with one exception, the axial anatomical images were obtained at 0.33 mm intervals. This resulted in 5,189 anatomical images, and a data set of about 40 gigabytes. Spacing in the "Z" direction was reduced to 0.33mm in order to match the 0.33mm pixel sizing in the "X-Y" plane, thus enabling developers interested in three-dimensional reconstructions to work with cubic voxels."
(and let us remember that in 1995 personal computers were running at 200Mhz, with 16MB of RAM and 1 GB hard drives. Now the visible woman dataset fits on an iPod)
Here are some small jpeg images of a very few of the slices of the visible woman.




and
here is ParaView viewing the 75MB version of the Visible Woman dataset.
This version of the dataset is made up of 577 slices, 1 slide every
3mm, where each slice is 256 x 256 16-bit values. This data can
currently be found on ftp.evl.uic.edu in pub/software/andy. Once the
data is loaded in we can set up two contours - one for the skin and one
for the bones.
In
the 3.0 alpha of paraview you can read in the visible woman data as raw
data then set:
and
then create 2 contours - one transparent at 500 for skin, and one
opaque at 1200 for bone, and you will see something similar to this.

You may want to start taking a look at vtk by going to www.vtk.org
Another
very nice piece of software built on top of vtk is ParaView
(www.paraview.org) which acts like a front end to vtk and encourages
you to read in datasets and apply filters and generate visualizations.
I would suggest downloading paraview and start playing with it. Version
3 is in alpha testing and is pretty stable, though it doesn't have all
of the filters from version 2 implemeted yet.