TNM067 - Scientific Visualization - 2015


Ingrid Hotz email

Lab Assistants: 

Sathish Kottravel email, Rickard Englund email

Course abstract:

The purpose of visualization is to allow the user to gain insight into data by representing the data through images. As data can originate from various sources, e.g., medical CT scanners, weather simulation or stock trading logs, different visualization metaphors are needed to represent the data in a meaningful way. Traditionally, visualization is split into two subfields: information visualization and scientific visualization. While information visualization deals with the representation of abstract data often stored in spreadsheets, scientific visualization deals with data which has an inherent spatial component. Within this course we will focus on scientific visualization and learn how to transform spatial data - which might also have a temporal component - into meaningful visual representations. We will learn how the image representations generated through this transformation process can be both, expressive and - in order to allow interactive visualization - also be generated rapidly.
The course starts with an introduction to visualization, before it focuses on the basics of visualization, such as the visualization pipeline, data representations and fundamental algorithms for scalar and vector visualization. Volume rendering, which exploits besides color also transparency, is covered in an extra block, as it is an essential part of scientific visualization. Finally, perceptual and cognitive aspects are reviewed as knowledge about the human visual system is essential in order to generate expressive visualizations.


  • Additional lecture "volume rendering" by Anders Ynnerman, Time: Wed, Sept 30th, 13:00-15:00,  Location: visualization arena at the visualization center.
  • No lecture on Friday October 2nd


Some notes about the exam:
There will be be one task for almost every chapter of the lecture also about topology. In general it is more important to understand the concept then knowing all details. 
  • You should be prepared to sketch the most fundamental interpolation methods and know how to compute them. There will also be an example, where you have to determine the interpolated value.
  • There will be some figures from the lecture without annotations, that have to be annotated or completed.
  • There will be some questions, where you have to reason about definitions from the lecture. This includes the basics for differential operators. This means e.g. deciding whether some given statements are true.
  • Some visualisation methods for the basic data types have to be described with 1-3 sentences including related challenges. Some of the algorithms have to be sketched for simple examples. You don’t have to know the details about the contour tree computation, but should be able to sketch the tree for an example. 


Course slides:


< <
Lab Content Files

This lab is completely voluntary but very useful if you need to refresh your C++ programming skills and introduce you to CMake.


1 Introduction to VTK. You will interact with the VTK pipeline, create a scalar data set and write it to a file.


2 In this lab you will visualize both scalar and vector data. The scalar you created in the previous lab will be visualized using iso-surfaces. The vector data will be visualized using for instance stream lines.


3 In this lab you will extract iso-contours from scalar datasets.


4 In this lab you will implement your own GPU-based raycaster.