George Mason University

Skip Navigation

CSI 703 - Spring 2011:
Scientific and Statistical Visualization


Fernando E. Camelli
Phone: 703-993-4073
Office Hours: Before class (3:00 - 4:00), and by appointment


  • Fluency with at least one of the following computer languages: C/C++, or Fortran
  • Fluency with Unix/Linux operating system
  • Or Permission of Instructor


This course brings together material from many disciplines to provide an overview of scientific visualization. The scope is interpreted broadly to include contributions from the fields of information visualization and the emerging field of visual analytics.

The goals of visualization include data description and analysis, discovery, hypothesis generation, analysis, understanding, presentation and education. In this class the active agent is the analyst not passive user. A graphics design challenge is to engage the analyst. Toward this end the class begins by stressing human cognition and perception as a foundation for graphics that are useful for analysts. This is followed by topics from several disciplines. Topics from computer graphics cover some of the basics of image transformations and rendering. Topics from geography, cartography and earth systems address visualization in a geo-spatial and temporal contexts.

The course will present basic algorithms used to visualize scientific data sets. These algorithms can be interpreted as operators that transform the data into different forms and at the end of the process it can be rendered. The class will cover scalar field visualization (iso-surfaces, volume rendering), vector field visualization, tensor visualization, large scale data visualization. The class stresses the importance of data (observational data or/and simulation data) and data models in driving the graphics. Student final project presentations and sometimes guest lecturers help to provide coverage of different domains.


  • Quantitative Graphics Design Guidelines, R, and basic graphics: human perception and cognition; introduction to R syntax.
  • Computer Graphics and Interaction: introduction to OpenGL, OpenGL drawing techniques, GLUT, event managements, and mouse control.
  • Advanced Computer Graphics: color perception review, graphic pipeline, shading, illumination, texture, GPU programming.
  • Data Structures: tree structures, quadtree, octree, interval tree, segment tree, Kd-tree, range tree, structured and unstructured grids.
  • Contouring, iso-surfaces, volume rendering, marching cubes, etc.
  • Vector and Tensor Fields: mathematical description of a vector and tensor field, arrow plots, streamlines, line integration convolution (LIC), particle tracing methods, vortex visualization, and medical images.
  • Python and Prototyping: basic Python, numerical computing in Python, GUI programming, VTK and Python, software overview: VTK, Vis5D, ParaView, ITK, etc.

Recommended Bibliography

  • The Visualization Handbook,
    edited by C. D. Hansen and C. R. Johnson
  • Information Visualization, Perception for Design,
    by C. Ware
  • The VTK User's Guide,
    by Kitware, Inc.
  • The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics,
    by W. Schroeder, K. Matin, and B. Lorensen
  • Python Scripting for Computational Science,
    by H. P. Langtangen
  • OpenGL Programming Guide: The Official Guide to Learn OpenGL, Version 2.1,
    by OpenGL Architecture Review Board, D. Shreiner, M. Woo, J. Neider, and T. Davis
  • OpenGL SuperBible: Comprehensive Tutorial and Reference,
    by R. S. Wright, B. Lipchak, and N. Haemel

  • Visualization and Processing of Tensor Fields,
    edited by J. Weickert and H. Hagen
  • Scientific Visualization: The Visual Extraction of Knowledge from Data,
    edited by G-P. Bonneau, T. Ertl and G. M. Nielson
  • Geometric Data Structures for Computer Graphics,
    by E. Langetepe, and G. Zachmann
  • Computer Graphics: Principles and Practice (2nd edition),
    by J. D. Foley, A. Van Dam, S. K. Feiner, and J. F. Hughes

Honor Code

As in any class, you are allowed to study with other students. However, tests and homework assignments (unless otherwise specified) must be completed on your own. SPECIFICALLY - YOU MAY NOT COPY ANY TEXT OR MATERIAL AND REPRESENT IT AS YOUR OWN WORK. For both papers and for code, you may reference or link to other peoples work (if it is consistent with the assignment), but you MUST cite the source it came from. Failure to follow these guidelines will be considered a violation of GMU's academic honor code and will be treated as such.

Class Material


  • Homework assignment - 35%
  • Paper presentation - 10%
  • Final project - 35%
  • Final exam: Take Home - 20%
    I will give the exam on 05/03/11.
    The exam is due 05/10/11.

Office hours

Tuesdays before or by appointment.

Useful Links