Lecture 1

Into to the Course and VTK

(with some noted originally from Bill Sherman NCSA, and others from my CS 422 course)


Information about the Course - Syllabus, presentations, projects etc.


How this class relates to to other similar / related CS courses

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:

  1. formation of mental visual images
  2. the act or process of interpreting in visual terms or of putting into visible form

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.


Coming Next Time

Basic Data Representation


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.


last revision 1/08/07