CS 419 / 553 -- Scientific Visualization

Spring Quarter 2015


Classes Projects Handouts Grades VHR

This page was last updated: June 10, 2015


What We Will Be Doing This Quarter

The goals of this course are to leave you both work-ready and research-ready for tasks that require 3D graphics to understand and gain insight into complex scientific and engineering data.

We will cover a variety of topics in advanced computer graphics and scientific/engineering visualization. Introductory courses in computer graphics emphasize converting geometry into a display. In visualization, we also need to know about converting data into geometry:

You will have access to the graphics systems in OSU's Computer Graphics Education Lab (CGEL in Batcheller Hall 244. You are also free to develop the projects on other systems. All projects will be done in C/C++ using OpenGL, GLUT (the GL Utility Toolkit), and GLUI (the GL User Interface package).

CS 419/553 topics include:


This is a C programming-intensive class. Prior experience with Linux or Windows and programming is a good idea!

You can take this course with little or no graphics experience, but please do not take it for credit if you are not a moderately experienced programmer. You don't have to know C really well to start, but you should come in having programmed in something. CS 419/553 is a tough way to learn to program for the first time ...

Learning Objectives

On completion of the course, students will:

  1. Demonstrate a proficiency with 3D interactive OpenGL programming, including a user interface.
  2. Articulate how data is characterized in terms of spatial and data dimension.
  3. Demonstrate how to geometrize scalar data using a variety of approaches such as range sliders, point clouds, colored cutting planes, contoured cutting planes, and isosurfaces.
  4. Demonstrate how to geometrize vector data using a variety of approaches such as vector clouds, streamlines, multi-streamlines, ribbon traces, and blob traces.
  5. Articulate what makes each method appropriate or not appropriate for what one is trying to accomplish.
  6. Demonstrate how to perform interactive terrain visualization, including height exaggeration, lighting, texture mapping, and displaying a moving, transparent data object on top of it.
  7. Evaluate ethical situations in the use of visualization.
  8. Articulate the theory and practice of resampling scattered data.
  9. Demonstrate how to create a simple keyframe conceptualization animation.
  10. Articulate how these and other techniques can be used in real-world applications.
  11. Evaluate the effectiveness of existing visualizations.

In addition, those taking this course as CS 553 will also have deminstrated the ability to:

  1. Read a scientific-visualization-related research paper and write a 5-page analysis paper of it. (I will make some of these available for you, or you can propose your own. It has to be a real research paper, though.)


The class is being taught by Professor Mike Bailey.

Office: Kelley 2117
E-mail: mjb@cs.oregonstate.edu
Phone: 541-737-2542
Web site: http://cs.oregonstate.edu/~mjb

Office Hours:

Mondays 12:00 - 1:00 Kelley 2117
Tuesdays 10:00 - 12:00 Kelley 2117
Wednesdays 12:00 - 1:00 Kelley 2117
Thursdays 10:00 - 12:00 Kelley 2117
Fridays 12:00 - 1:00 Kelley 2117
    or, by appointment -- send email
    or, anytime my office door is open

The Virtual Hand Raise

I recognize that it takes a certain amount of courage to ask a question in class. But, the worst decision of all is to not ask! So, this class offers a feature called the Virtual Hand Raise. Click here to get into it. It will allow you to send me a question or comment, completely anonymously. I will answer all questions submitted this way at the start of the next class.


You can use any GLUI-GLUT-OpenGL environment you can find (eg, Linux, Mac, Visual C++) for program development.
You will also have access to the College of Engineering Computer Graphics Education Lab in Batcheller Hall 244.
No matter where you work, all projects must be turned in as either Linux or PC executable files.


We take computer security very seriously. Please use intelligently-chosen passwords and protect them.


There is no required textbook for this class. However, because we will be using OpenGL for our graphics programming, it would be good to have access to the following book:

Dave Shreiner, Graham Sellers, John Kessenich, and Bill Licea-Kane, OpenGL Programming Guide, Eigth Edition, Addison-Wesley, 2013.

This is the book that all serious OpenGL programmers want to have. But, for this class, you don't need to actually own it yourself. Find someone who has one you can look at. Look at the one in the CGEL.

(If you have the fourth, fifth, sixth, or seventh edition, this will be fine.) Other course material will consist of web pages, handouts, and notes taken in class.

Class Schedule

To see an academic year calendar, click here.
Class time is: Monday, Wednesday, and Friday, 11:00 - 11:50. Unless otherwise specified, all classes will be held in Milam Hall 213.

1 March 30 Introductions. General course information.
The Visualization Process.

OpenGL-GLUT-GLUI. Geometry vs. Topology. glBegin( ) - glEnd( ).
Project #1, which is due at 23:59:59 Tuesday night.

2 April 1

Be sure to print the handouts for today. (See the Announcements section above.)
sample.cpp, the GLUI user interface library, Visual C++, perspective vs. orthographic projections.

3 April 3 Introduction to Scalar Visualization. Project #2.
More sample.cpp
4 April 6 Data visualization using color and range sliders. Project #3.
5 April 8 2D scalar visualization: 2D scatter plots, interpolated colored cutting planes.
6 April 10 Contouring (isolines).
7 April 13 Project #4.
Wireframe isosurfaces. Project #5.
Polygon isosurfaces.
8 April 15 Isosurfaces
9 April 17 Color! RGB, HSV, CMYK, La*b* color spaces. Different color scales. Mapping scalar values to colors. General rules of thumb when using color in scientific and engineering visualization. Color gamuts.
10 April 20 More color.
11 April 22 More color.
12 April 24 Vector visualization: vector clouds, particle traces, streamlines, streaklines, line traces, ribbon traces, blob traces. First order versus second order accuracy. Project #6.
13 April 27 More vector visualization.
Test #1 review.
14 April 29 Hyperbolic geometry. Project #7.
15 May 1 Test #1
16 May 4 Go over test answers.
Stereographics in 3D data visualization: binocular views, separating the images, red-cyan, ChromaDepth, ColorCode, lenticular displays, stereo projection, stereo mirror.
17 May 6 Transparency for data visualization.

Texture-mapping for data visualization.
Project #8

18 May 8 Texture-mapping for data visualization.

3D terrain mapping.

19 May 11 Prof. Bailey out of town -- No Class Today
20 May 13 3D terrain mapping. Map projections for terrain visualization.
21 May 15 Engineering Expo -- No Class Today
22 May 18 3D terrain mapping.
Project #8.
23 May 20 3D terrain mapping.
24 May 22 3D terrain mapping.
25 May 25 Memorial Day -- No Class Today
26 May 27 Volume Visualization: rendering, transfer functions, parallel texture planes, uses.
Project #8
27 May 29 Prof. Bailey out of the office -- no class
28 June 1 Stereographics
29 June 3 The Ethics of Visualization. The difference between visualization and conceptualization.
Interpolated scalar values within a triangle. Re-sampling. Delauney Triangulation. Voronoi diagrams.
30 June 5 Test #2 review.
Class Evaluations: it is important that you come today!
Books, periodicals, professional organizations, conferences.
* June 12 Test #2 7:30 - 9:00 AM, Friday, June 12 Milam 213.
If you want to confirm this sorry fact for yourself, here.


Project # Points Title Due Date
1 20 Register your Grade-Posting Alias March 31
2 40 Simple Grayscale Point Cloud April 9
3 80 Point Clouds, Colors, and Range Sliders April 14
4 100 Volume Slicing April 29
5 80 Wireframe Isosurfaces April 29
6 100 Vector field visualization May 8
7 80 Hyperbolic Geometry May 17
8 120 Terrain Visualization May 27
9 100 Volume Interaction June 8
553-Paper 100 Paper Analysis June 9

These are programming projects requiring you to use OpenGL, GLUT, and GLUI. All user interface options must be visible in a GLUI window. (You can also use GLUT pop-up menus and keyboard strikes if you want, but I am only going to grade using your GLUI window.)

The last three GLUI items in your user interface must be a Debug checkbox, a Reset button, and a Quit button.

Using Your Own Data

Where necessary, I will give you data or equations to use to generate data for the projects. What if you have some of your own data that will work for the methods being used in a particular project?

Yes! Very cool. Feel free to use it.

However, talk with me first. I want to be sure that (1) your data really is appropriate, and (2) you can import it easily so you don't spend the bulk of the time until the due date just trying to read it.


Grades will be posted through this web page. To protect your privacy, they will be posted by your alias that you give me in Project #1.

Click here to see the current grade posting.

CS 419/553 will be graded on a fill-the-bucket basis. There will be several projects, two tests, and maybe some quizzes. You get to keep all the points you earn.

Your final grade will be based on your overall class point total. Based on an available point total of 1020, grade cutoffs will be no higher than:

Points Grade
935 B+
835 C+
735 D+


These handouts are meant to go along with what we will talk about in class. It is up to you if and how you print them. The one-per-page versions are real easy to read, but consume more paper and ink. The six-per-page versions are harder to read, but consume less paper and ink. The two-per-page versions are in the middle. You can decide whether or not it is worth printing them in color.

Warning: Do not print these out until you are told to do so. I am still working on some of these. I am listing them early to show you where we are headed.

The Visualization Process PDF
glutMainLoop PDF
sample.cpp Text
GLUI Documentation PDF
Scalar Visualization 1pp 2pp 6pp
Color In Visualization 1pp 2pp 6pp
Vector Visualization 1pp 2pp 6pp
Hyperbolic Geometry 1pp 2pp 6pp
Stereographics 1pp 2pp 6pp
OpenGL Transparency PDF
OpenGL Texture Mapping PDF
Terrain Visualization 1pp 2pp 6pp
Directly Visualizing Volume Data 1pp 2pp 6pp
Resampling Scattered Data 1pp 2pp 6pp
Finding More Information PDF

Project Turn-In Procedures

Bonus Days

Projects are due at 23:59:59 on the listed due date, with the following exception:

Each of you has been granted five bonus days, which are no-questions-asked one-day extensions which may be applied to any project, subject to the following rules:

  1. Up to 2 bonus days may be applied to any one project
  2. Bonus Days cannot be applied to tests
  3. Bonus Days cannot be applied such that they extend a project due date past the start of Test #2.

Click here to get a copy of the Bonus Day Submission Form. Fill this out and turn it in the next class period after turning in your project.

Class Rules

Students with Disabilities

Accommodations are collaborative efforts between students, faculty and Disability Access Services (DAS). Students with accommodations approved through DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at 737-4098.

Other Useful Online Graphics and Visualization Information

Tell Me Who You Are!

Click here to record yourself on the CS 419/553 student roster. This is Project #1, and is worth 20 points.