Scientific and Large Data Visualization 2018/2019

Paolo Cignoni, Massimiliano Corsini

Syllabus

Scientific Visualisation is an area concerned with the visualisation of large and complex data sets, where the data might come from experiments or computations. Visualisation is a way, in many cases the only possible way, to achieve insight and knowledge inside large structured amount of data.
The course will discuss discrete models for data representation in low dimensional spaces, scalar and vectorial data in 2D, 3D and for temporal series and algorithms for processing and visualizing massive datasets.
Topics:

Examination

The exam consists of a practical part and a theoretical part.
The theoretical part concerns the topics discussed during the course, and it can be sustained either with a written examination, or with an oral exam at the moment of the delivery of the project part.
The practical part is worth 20/30, while the theoretical part is 10/30.
For some written examinations sample look at: doc

Sample successful projects

TimeTable

Lunedì Martedì Mercoledì Giovedì Venerdì
Aula L1
14-16
Aula X1
16-18
Aula X3
9-11
Aula X1
14-16

Lezioni e Lucidi

Data Contenuto
17 Set 2018 Lunedì 14:00 Introduction to the course, PDF
(Cignoni)
19 Set 2018 Mercoledì 16:00 Data structures for Meshes PDF
The two introductory comics on Topology and Geometry can be find here:
Geometricon: ITA ENG
Topologicon: ITA ENG
(thanks to the association Savoir sans Frontieres)
(Cignoni)
27 Set 2018 Giovedì Aula X3 09:00 Data structures for Meshes (slides contained in the pdf of last lesson)
Introduction to the VCGLib PDF
The code shown at lesson is in this zip
it is a folder named sciviz01 containing the .pro, the .cpp and the .off file used for the experiments. The .pro assumes that the sciviz01 folder is placed inside the apps/sample folder of the vcglib-devel dump that you download from github.
(Cignoni)
28 Set 2018 Venerdì Aula X1 14:00 Introduction to the VCGLib, part two.
The code shown at lesson is in this zip
it is a folder named sciviz02 containing the .pro, the .cpp and some .off files used for the experiments. The .pro assumes that the sciviz02 folder is placed inside the apps/sample folder of the vcglib-devel As an exercise you can try to compute the Euler Characteristic of an input mesh (hint: exploit the existing code to count the boundary loop).
(Cignoni)
4 Oct 2018 Giovedì Aula X3 09:00 Introduction to the VCGLib, part Three.
Learning VCG Library; Small set of difficulty-increasing exercises to become familiar with the vcg Library.
  • Declare a mesh and initialize it with one of the methods defined in platonic.h and check that it has the expected number of vertices and faces.
  • Open a mesh in various formats (off, obj) and report number of vertices, faces and if it has some defined attribute (use the loadmask parameter)
  • Open a mesh in ply (requires to include another cpp from the wrap / ply folder in the project)
  • Define a mesh with various attributes (color, quality for vertex or face), load a mesh, change some of the attributes using the functions in UpdateColor and UpdateQuality (eg using for vertex constant) and save the mesh including saving the attributes modified (eg pay attention to the save mask field and write us the right combination of tri :: io :: Mask :: IOM_XXXXXX).
  • Define a face face topology mesh, open a file, update the FF topology (see class UpdateTopology), and count edge edges and check for non-manifold edges.
  • As above but count the connected components (use the visit bit for face (see class UpdateFlags), and a stack and visit the mesh one face at a time following the adjacency FF.
  • As above, but define a pos and make a random sequence of 100 flip * operations by coloring the touched faces red
  • As above but count the edges, that is, the edge chains that form a loop (once you find an edge / edge face I create a pos on that edge / face and using flipE flipF I move on the next edge edge)
  • Given a mesh, look for the vertex of maximum degree (e.g. the one with the largest number of incident faces). Find the solution using only: The VF adjacency and the VFStarVF function or FF adjacency and looping around the vertex with a pos

(Cignoni)
5 Oct 2018 Venerdì Aula X1 14:00 Rendering Paradigms. PDF
(Cignoni)
11 Oct 2018 Giovedì Aula X3 09:00 Transformations. PDF
(Cignoni)
12 Oct 2018 Venerdì Aula X1 14:00 No Lesson. Internet Festival suspension
18 Oct 2018 Giovedì Aula X3 09:00 Lighting and Texturing PDF
(Cignoni)
19 Oct 2018 Venerdì Aula X1 14:00 Intro to Scientific Visualization PDF
(Corsini)
25 Oct 2018 Giovedì Aula X3 09:00 Visual Perception PDF
(Corsini)
26 Oct 2018 Venerdì Aula X1 14:00 Visual Perception Color PDF
(Corsini)
01 Nov 2018 Giovedì Aula X3 09:00 No Lesson (Festivita' "Tutti i Santi")
02 Nov 2018 Venerdì Aula X1 14:00 No Lesson (sospensione della didattica per verifiche intermedie)
08 Nov 2018 Giovedì Aula X3 09:00 Multidimensional Data Visualization PDF
09 Nov 2018 Venerdì Aula X1 14:00 Multidimensional Data Visualization (continued)
Python for Data Science and Data Vis. (Part I)
(Corsini)
15 Nov 2018 Giovedì Aula X3 09:00 Python for Data Science and Data Vis. (Part II) PDF
(Corsini)
16 Nov 2018 Venerdì Aula X1 14:00 Lezione rimandata a data da destinarsi
22 Nov 2018 Giovedì Aula X3 09:00 Graph Drawing: Trees
(Corsini)
23 Nov 2018 Venerdì Aula X1 14:00 Graph Drawing: Trees Implicit
(Corsini)
29 Nov 2018 Giovedì Aula X3 09:00 Graph Drawing
(Corsini)
30 Nov 2018 Venerdì Aula X1 14:00 Large graph and objects arrangements + D3.js intro (LEZ. 3 ORE -> +1 ORA RECUPERO) PDF
(Corsini)
06 Dec 2018 Giovedì Aula X3 09:00 Esercitazioni D3.js
(Corsini)
07 Dec 2018 Venerdì Aula X1 14:00 Global Illumination PDF
(Cignoni)
13 Dec 2018 Giovedì Aula X3 09:00 Spatial Indexing PDF
& Project discussion
(Cignoni)
14 Dec 2018 Venerdì Aula X3 09:00 Project discussions
(Cignoni)