ECS 177 SCIENTIFIC VISUALIZATION (4 units)
Lecture: 3 hours
Discussion: 1 hour
Computer graphics techniques for generating images of various types of measured or computer-simulated data. Typical applications for these graphics techniques include study of air flows around car bodies, medical data, and molecular structures.
Prerequisites: ECS 175
Credit restrictions /cross listings: None
Summary of course contents
- Grid Structures
Scientific data sets can be given without any given connectivity among the data (scattered data) or on a so-called structured or unstructured grid. Typical grids (rectilinear, curvilinear, prismatic, tetrahedral, etc.) are discussed and appropriate data structures and interpolation methods are introduced.
- Basic Scalar Field Visualization
A variety of techniques for the visualization of scalar fields, i.e. functions of the form f(x,y) and f(x,y,z), are discussed. Algorithms that use color and/or opacity to represent the scalar value will be presented, including slicing, and various volume rendering techniques (ray casting, 3D texture-based volume rendering in OpenGL, cell sorting and projection). Contour curves and surfaces will also be discussed.
- Basic Vector Field Visualization
A variety of techniques for the visualization of vector fields, i.e., vector-valued functions of the form [u(x,y), v(x,y)] and [u(x,y,z), v(x,y,z), w(x,y,z)] will be discussed. Algorithms that will be presented include the approximation and visualization of path, stream, streak, and time lines, surfaces, and tubes, as well as texture-based and glyph-based methods. Tensor visualization will also be briefly discussed.
- Molecular visualization: The techniques for visualizing atoms and bonds, and special glyphs for representing protein structures may be discussed.
- Animation: Methods for producing animated image sequences for visualizing time varying data, and for interpolating data in time as well as space, may be discussed.
- Tensor fields: The method of finding the principal components of a symmetric tensor may be discussed, as well as methods using them to visualize tensor fields.
- Information visualization: The distinction between scientific visualization of continuous quantitative data and information visualization of discrete or non-quantitative data and may be discussed, as well as a few examples of information visualization, for example, graph and/or tree visualization.
The three to five programming projects that are assigned in this course are meant to be used as modules of a visualization system. These may include: (1) Generation of various of data structures for both unstructured and structured grids, (2) Visualization algorithms for scalar fields in 2D and/or 3D, (3) Interpolation algorithms for regular and irregular grids, and (4) vector field visualization by glyphs or streamlines.
The individual student taking this class will design and document a visualization system that can be used to interactively analyze 2D and 3D scalar and vector fields and that includes the most common methods as described under the course outline. Students will continuously add functionality to their systems during this course. Examinations include questions based on design components of the course.
Goals: Students will learn to design and implement a variety of 2D and 3D visualization tools for the analysis of scientific data and large information systems.
Alexandru Telea, Data Visualization: Principles and Practice. A K Peters, Ltd., 2008.
The programming projects for this class are chosen to enhance the lecture material in the course.
Engineering Design Statement:
The individual student taking this class will design and document a visualization system that can be used to interactively analyze 2D and 3D scalar and vector fields that includes the most common methods as described under the course outline. Students will continuously add functionality to their systems during this course. Examinations include questions based on design components of the course.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
Science & Engineering
Justification for Visual Literacy:This course and its assignments teach students to create visual images from data, and to understand and interpret such images created by others. Assignments provide students with techniques for conveying visual evidence. Students are tested throughout on their ability to create and interpret visual data accurately and effectively.
Instructors: B. Hamann, K. Joy, K. Ma, and N. Max
History: Reviewed, revised, and updated by N. Max (2012.10.20). The illustrative reading was updated with a more modern textbook, and the topics list was modified to include more varied optional topics.
|1||X||an ability to apply knowledge of mathematics, science, computing, and engineering|
|2||an ability to design and conduct experiments, as well as to analyze and interpret data|
|3||X||an ability to design, implement, and evaluate a system, process, component, or program to meet desired needs, within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability|
|4||an ability to function on multi-disciplinary teams|
|5||X||an ability to identify, formulate, and solve computer science and engineering problems and define the computing requirements appropriate to their solutions|
|6||an understanding of professional, ethical, legal, security and social issues and responsibilities|
|7||an ability to communicate effectively with a range of audiences|
|8||the broad education necessary to understand the impact of computer science and engineering solutions in a global and societal context|
|9||X||a recognition of the need for, and an ability to engage in life-long learning|
|10||X||knowledge of contemporary issues|
|11||an ability to use current techniques, skills, and tools necessary for computing and engineering practice|
|12||an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices|
|13||X||an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity|