COSC 6344 Visualization

Fall 2020





Basic info:

Instructor: Guoning Chen

Email:  gchen22@central.uh.edu or gchen16@uh.edu 

Lecture time: Tu/Th 1~2:30PM
                     Online Synchronous Lectures via MS Teams (check your Teams calendar for the link)

Office hours: Tu/Th 2:30pm-3:30pm will take place on MS Teams (check your Teams calendar for the link)


Please signup on the Piazza of the course using the following link!
http://piazza.com/uh/fall2020/cosc6344fa202015914

Course Delivery Format and Exam:
This course is being offered in the Synchronous Online format. Synchronous online class meetings will take place according to the class schedule. There is no face-to-face component to this course. In between synchronous class meetings, there may also be asynchronous activities to complete (e.g., discussion forums and assignments). This course will have a mid-term exam. The exam will be delivered in the synchronous online format, and the specified date and time will be announced during the course. Prior to the exam, descriptive information, such as the number and types of exam questions, resources and collaborations that are allowed and disallowed in the process of completing the exam, and procedures to follow if connectivity or other resource obstacles are encountered during the exam period, may be provided.


Camera-on Policy: You are required to turn on your camera during lectures and exam. Use background effect to protect your privacy!

Syllabus (pdf)

    Visualization has been established as a powerful means to help domain experts from various disciplines or general audience to MAKE SENSE and PRESENT their data, for decision making. Techniques and knowledge from different sub-fields of computer science (including computer graphics, image processing, data structures and algorithms, high performance computing, machine learning, and human-computer interaction), mathematics, cognitive and perception science, and specific application domains are often adapted for various visualization problems. This introductory course covers topics from a number of sub-fields of visualization and aims to show students how data visualization can help find solutions to a wide range of practical data interpretation problems arising in many areas. Through this course, students are expected to (1) get familiar with important concepts, principles, and techniques/methods for the visualization of different types of data, and (2) foster the ability to select the proper visualization techniques when given a practical data visualization problem. This course serves as one of the core introductory level graduate courses, and it helps build a complete course catalog in the direction of visual computing with courses like image processing, computer graphics, and computer vision.

    You are expected to have basics knowledge on linear algebra, linear systems, calculus, geometry, numerical analysis, and programming languages.  Homework assignments and course projects will require knowledge and experience of C++ and/or Python. Visualization Toolkit (VTK) will be used with either C++ or Python to complete the programming assignments. You need to have solid grasp of data structure and algorithm design. Minimal familiarity with computer graphics principles and techniques is assumed. Having taken COSC 6372: Computer Graphics is ideal but not required.

    Visualization techniques are highly application dependent and highly diversified! There is currently no a good texxtbook that can summarize all available techniques. However, the following textbooks provide a good introduction to some well-established techniques for a number of fundamental visualization problems.

        A student needs to score on average at least 60% in total to pass the class.
        Grading scale (tentative): A: >92%; A-: >88%; B+: >84%; B: >80%; B-: >74%; C+: >68%; C: > 60%.

Regular class attendance, participation, and engagement in coursework are important contributors to student success. Absences may be excused as provided in the University of Houston Undergraduate Excused Absence Policy and Graduate Excused Absence Policy for reasons including: medical illness of student or close relative, death of a close family member, legal or government proceeding that a student is obligated to attend, recognized professional and educational activities where the student is presenting, and University-sponsored activity or athletic competition.  Additional policies address absences related to military service, religious holy days, pregnancy and related conditions, and disability.
Students may not record all or part of class, livestream all or part of class, or make/distribute screen captures, without advanced written consent of the instructor. If you have or think you may have a disability such that you need to record class-related activities, please contact the Center for Students with DisABILITIES. If you have an accommodation to record class-related activities, those recordings may not be shared with any other student, whether in this course or not, or with any other person or on any other platform. Classes may be recorded by the instructor. Students may use instructor’s recordings for their own studying and notetaking. Instructor’s recordings are not authorized to be shared with anyone without the prior written approval of the instructor. Failure to comply with requirements regarding recordings will result in a disciplinary referral to the Dean of Students Office and may result in disciplinary action.
Late assignments will be marked off 20% for each weekday that it is late. Submissions made 5 days after deadline will not accepted unless due to causes out of control of the students.
Please do your own work. The default consequence for academic dishonesty is a failure for the course. It is okay to discuss with other students general ideas about implementing a program. It is NOT okay to copy another student's program. It is okay to discuss possible program bugs. It is NOT okay to debug another student's program.
Students may be asked to sign an honor code statement as part of their submission of any graded work including but not limited to projects, quizzes, and exams: “I understand and agree to abide by the provisions in the University of Houston Graduate Academic Honesty Policy. I understand that academic honesty is taken very seriously and, in the cases of violations, penalties may include suspension or expulsion from the University of Houston."

Due to the changing nature of the COVID-19 pandemic, please note that the instructor may need to make modifications to the course syllabus and may do so at any time. Notice of such changes will be announced as quickly as possible through UH email, Blackboard, course webpage, and course Piazza.
Students with documented disabilities who may need accommodations, who have any emergency medical information the instructor should be aware of, or who need special arrangements in the event of evacuation, should make an appointment with the instructor as early as possible, and no later than the first week of the semester. Class materials will be made available in an accessible format upon request.
The University of Houston is committed to student success, and provides information to optimize the online learning experience through our Power-On website. Please visit this website for a comprehensive set of resources, tools, and tips including: obtaining access to the internet, AccessUH, and Blackboard; requesting a laptop through the Laptop Loaner Program; using your smartphone as a webcam; and downloading Microsoft Office 365 at no cost. For questions or assistance contact UHOnline@uh.edu.
Email communications related to this course will be sent to your Exchange email account which each University of Houston student receives. The Exchange mail server can be accessed via Outlook, which provides a single location for organizing and managing day-to-day information, from email and calendars to contacts and task lists. Exchange email accounts can be accessed by logging into Office 365 with your Cougarnet credentials or through Acccess UH. They can also be configured on IOS and Android mobile devices. Additional assistance can be found at the Get Help page.
Access to a webcam is required for students participating remotely in this course. Webcams must be turned on during lectures and the mid-term exam to allow the monitoring of attendance and to ensure the academic integrity of exam administration.

Counseling and Psychological Services (CAPS) can help students who are having difficulties managing stress, adjusting to the demands of a professional program, or feeling sad and hopeless. You can reach CAPS (www.uh.edu/caps) by calling 713-743-5454 during and after business hours for routine appointments or if you or someone you know is in crisis. No appointment is necessary for the “Let's Talk” program, a drop-in consultation service at convenient locations and hours around campus. http://www.uh.edu/caps/outreach/lets_talk.html

Lecture Slides


Timeline
Lectures
Additional Reading Materials and Resources
Week 1 (08/25, 27)
Course introduction, visualization introduction [slides]

Visualization pipeline [slides], different data types and data storage [slides]
(08/27 lectures were pre-recorded which can be found on Teams)
Week 2 (09/01, 03) Cognition and perception, what need to be considered [slides]
(Please watch the recording about Gestalt principles on Teams)

Elementary plots-principles and practices [slides]
(Please watch the recordings for the introduction on some simple plots and a short tutorial for plotting using Python+matplotlib/seaborn on Teams)

(Assignment 1 out)
Instruction on installing Anaconda for coding with Python
Week 3 (09/08, 10) Colors in visualization [slides]

VTK introduction [slides]
(A simple vtk demo program can be found here. You can run it in Spyder or via command line in the powershell of your conda. You can use the data sets for Assignment 2 for this demo.)

VTK resources:
Week 4 (09/15, 17) 2D scalar field visualization - color plots [slides]
2D scalar field visualization - iso-contours [slides]
  (Assignment 2 out)
Final project introduction (make your choice earlier) [see assignment tab]
  • Chapter 1 of the "Visualization Handbook"
  • Chapter 6 of "Data Visualization: Principles and Practice" by Alexandru C. Telea, 2nd Ed.
Week 5 (09/22, 24) 3D scalar field visualization - iso-surfacing [slides]

3D scalar field visualization - DVR - Raycasting [slides]

 (Assignment 3 out)
  • Chapter 6.3 of the "Introduction to Scientific Visualization"
  • Chapters 7, 8, and 9 of the "Visualization Handbook"
  • "Real-Time Volume Graphics", by Klaus Engel, Markus Hadwiger, Joe Kniss, Christof Rezk-Salama, and Daniel Weiskopf.
Week 6 (09/29, 01) 3D scalar field visualization - DVR - Splatting and texture-based [slides]

Transfer functions - principles and practices [slides]
Final project proposal due (10/01)
Week 7 (10/06, 08) 2D vector field visualization - direct method and geometric-based method [slides]

2D vector field visualization - texture-based methods [slides]
 
 (Assignment 4 out)
Week 8 (10/13, 15) 2D vector field visualization - Feature-based (phyiscal features) [slides]

2D vector field visualization - Feature-based (topological features) [slides]
  

Week 9 (10/20, 22) 3D vector field visualization - integral surfaces, texture-based [slides]

Unsteady vector field visualization - theory and practice [slides]

(Assignment 5 out)
Week 10 (10/27, 29) Mid-term exam; IEEE VIS 2020 (FREE for attendees!!! Attend one session of the talks to earn extra credits!)
 

Week 11 (11/03, 05) Mid-term exam review

Tensor field visualization - overview [slides]

Week 12 (11/10, 12) Tensor field visualization - glyphs [slides]

Tensor field visualization - geometric-based, texture-based methods [slides]
Week 13 (11/17, 19) Graph visualization I [slides]

Graph visualization II and tree visualization [slides]
Week 14 (11/24, 26) High-dimensional data visualization - introduction [slides]

Thanksgiving holiday on Nov. 26
(no class)
Week 15 (12/01, 03) Final project presentation (Sign up here)


Assignments

Assignment 1: Effective plots and graphs [description] [data]
Assignment 2: 2D scalar field visualization [description] [data] [vtk python skeleton code]
      [vtk_demo, use the data files for assignment 2] [ vtk python skeleton code WITH QT GUI, a short tutorial]
Assignment 3: 3D scalar field visualization [description] [data] [vtk_python_skeleton_code] [sample rendering configuration file] (Due: 10/07/2020!)
Assignment 4: 2D vector field visualization [description] [data] [vtk_python_skeleton_code] (Due 10/23/2020)
Assignment 5: 3D vector field visualization [description] [data] [Use the modified skeleton code for Assignment 4. See details in the description] [arrow3d-Ex.py] (Due 11/11/2020)

Final Projects

The structure of the presentation  (8 mins + 2 mins Q&A, a stopwatch will be used!!!): The final project presentation will take place on Dec. 1 and Dec. 3 in the class.

- Problem definition (especially what is the visualization problem you are addressing)

- Describe your technique (mostly on algorithm and visualization/interface design)

- Results and/or demo (Show your current results. Provide necessary interpretation of your visualization. How do you know you have resolved the problem?)

- Future Work (If your results are half-cooked, what else do you still need to do to make it complete before the deadline? If the results are ready/finalized, what do think you can improve further in the future)

Requirements of final project submission

You will need to submit your source code, your final project presentation (.pptx or .pdf), and your report (see below) in a single .zip file via the blackboard system by December 6!

For the final report, please write it in the IEEE TVCG style (4-8 pages including figures and illustrations). You can find the template of this format in the following link (you can find the downloadable templates, words or Latex, on the webpage):

https://www.computer.org/web/tvcg/author

The final report should include the following components:


Final project topics

The final project is an individual project. No group project is allowed. Please select from ONLY the following provided topics!

- Cong Feng, Minglun Gong, Oliver Deussen, and Hui Huang, Treemapping via Balanced Partitioning

- J. F. Kruiger, P. E. Rauber, R. M. Martins, A. Kerren, S. Kobourov, A. C. Telea, Graph Layouts by t-SNE

- Yunhai Wang, Yanyan Wang, Yingqi Sun, Lifeng Zhu, Kecheng Lu, Chi-Wing Fu, Michael Sedlmair, Oliver Deussen, Baoquan Chen, Revisiting stress majorization as a unified framework for interactive constrained graph visualization

- Danny Holten, Jarke J Van Wijk, Force-directed edge bundling for graph visualization

- Sebastian Eichelbaum, Mario Hlawitschka, and Gerik Scheuermann, LineAO—Improved Three-Dimensional Line Rendering

- Tobias Günther, Christian Rössl, Holger Theisel, Opacity optimization for 3D line fields

- Frida Hernell, Patric Ljung, and Anders Ynnerman. Local Ambient Occlusion in Direct Volume Rendering,

- Daniel Jönsson, Erik Sundén, Anders Ynnerman, and Timo Ropinski. A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering

- Guoning Chen, Konstantin Mischaikow, Robert S. Laramee, Pawel Pilarczyk, and Eugene Zhang. Vector Field Editing and Periodic Orbit Extraction Using Morse Decomposition

- Matt Edmunds, Robert S. Laramee, R. Malki, I.Masters, T.N. Croft, Guoning Chen, and Eugene Zhang. Automatic Stream Surface Seeding: A Feature Centered Approach

- Mathias Hummel, Christoph Garth, Bernd Hamann, Hans Hagen, and Kenneth I. Joy. Iris: Illustrative rendering for integral surfaces

- Tobias Günther, Maik Schulze, Janick Martinez Esturo, Christian Rössl, Holger Theisel. Opacity Optimization for Surface

- Jin Huang, Zherong Pan, Guoning Chen, Wei Chen, and Hujun Bao. Image-Space Texture-Based Output-Coherent Surface Flow Visualization

- JJ van Wijk, Image based flow visualization for curved surfaces

- Xiaoqiang Zheng and Alex Pang. HyperLIC,

- Eugene Zhang, James Hays, and Greg Turk. Interactive Tensor Field Design and Visualization on Surfaces

- Gordon Kindlmann and Carl-Fredrik Westin. Diffusion tensor visualization with glyph packing

- Xifeng Gao, Wenzel Jakob, Marco Tarini, Daniele Panozzo. Robust Hex-Dominant Mesh Generation using Field-Guided Polyhedral Agglomeration.

- Samer Barakat, Christoph Garth, and Xavier Tricoche. Interactive computation and rendering of finite-time Lyapunov exponent fields

- Kai Buerger, Florian Ferstl, Holger Theisel, and Rüdiger Westermann. Interactive streak surface visualization on the GPU

- Potter, Kristin, Andrew Wilson, Peer-Timo Bremer, Dean Williams, Charles Doutriaux, Valerio Pascucci, and Chris R. Johnson. Ensemble-vis: A framework for the statistical visualization of ensemble data

- Marc G Genton, Christopher Johnson, Kristin Potter, Georgiy Stenchikov, Ying Sun. Surface Boxplots.

- Mahsa Mirzargar, Ross T. Whitaker, and Robert M. Kirby. Curve boxplot: Generalization of boxplot for ensembles of curves.

- Usher, Will, Pavol Klacansky, Frederick Federer, Peer-Timo Bremer, Aaron Knoll, Jeff Yarch, Alessandra Angelucci, and Valerio Pascucci. A virtual reality visualization tool for neuron tracing

- Cordeil, Maxime, Andrew Cunningham, Benjamin Bach, Christophe Hurter, Bruce H. Thomas, Kim Marriott, and Tim Dwyer. IATK: An Immersive Analytics Toolkit, , source code

Visualize ocean currents in Red Sea

Visualize the universe

Visualize the aftermath of volcanic eruptions

Visualize ensemble particle data

Visualize clouds and atmospheric processes

Visualization and analysis of deep water asteroid impacts

Complete list of IEEE SciVis contest