2IMV10 - Visual computing project - 2018-2019 Q3
For previous versions see 2IMV10.

instructor: Andrei Jalba (MF 4.063, aDOTcDOTjalbaATtueDOTnl)

instructor: Michael Burch (MF 4.119, mDOTburchATtueDOTnl)

Intro. Assignment choice Tuesday 05/02 see Osiris -
Proposal submission Tuesday 12/02, before 24h Canvas project proposal
Evaluation of proposals & feedback Tuesday 19/02 Canvas -
Presentation day I (groups 1--10) Tuesday 12/03 see Osiris presentation + demo
Presentation day II (groups 11--21) Thursday 14/03 see Osiris presentation + demo
Submission I Tuesday 19/03, before 24h Canvas report: concept version
Review & feedback Tuesday 26/03 Canvas -
Demo day Thursday 28/03 see Osiris full demo in a market setting
Final Submission Thursday 04/04, before 24h Canvas report: final version;
all other final deliverables


1. In the column "day", bold font is used to indicate meeting days; participation is mandatory.

2. Deliverables are handed in via Canvas, so it is essential to enroll and be part of a group in Canvas.

3. Feedback on the concept report will be given either during/after the presentation + demo days, or via Canvas.


This project is aimed at improving the practical skills in creating computer graphics and visualization applications. Programming language and environment are at the choice of the student.


  1. Students work in groups of two and register as such in Canvas.
  2. Each group chooses one of the assignments given below. Only up to two groups are allowed to work on the same assignment. To avoid conflicts, make two or even three choices for interesting assignments, from those given below. The final assignment choice is finalized during the first meeting; see table above.
  3. Each group writes a proposal for the assignment.
    The proposal should contain: The total size of this proposal should be up to 3 pages.

    The proposal (as well as all other reports, see below) should be handed-in via Canvas and it should be in pdf format. The teacher will provide feedback about your proposal via Canvas. Typically, responses are suggestions for addition or removal of functionality or changes in planning.

  4. The students start working on their assignments and can consult the teacher after making an appointment.
  5. Submission I: concept version of the final report, featuring sections and subsections with an appropriate description of the intended content, or the actual content where that is possible. The teacher will review this report and notify the students of his findings.
  6. Presentation day I/II: each group gives a short presentation (about 10 minutes) about the project and shows a running prototype illustrating the already implemented concepts. Clearly explain requirements, state problems and their solutions, as far as feasible. Care must be taken to state clearly the status of the project: what is already finished, what still needs to be done, etc.
  7. Demo day: Students present their results to fellow students and to a selection of staff members of the visualization group.
  8. Final Submission: final deliverables, including the final report. Students should also send a separate report stating the changes wrt submission I. This change report should not only state what has been changed in the report but also clearly state what the students did as a result of the review they received before. See below for more remarks on deliverables.

Final deliverables

Report requirements

The report should contain the following elements:

The report should be up to 8 pages, including up to 2 pages of figures; it should be done in Latex using the provided template (see Files under Canvas).

Please give your application attractive and functional interactivity. This will not only help you to develop and test your own program but, for sure, others will not like your program, if you don't like it yourself. Both functionality and usability of the system will be graded.

Assignments 2018-2019 Q3

Braitenberg vehicles (project 1) - AJ
Build an interactive educational virtual environments in which Braitenberg vehicles may live and do their thing. The educational part of this assignment should be that with interaction with the vehicles and environment, the working of the Braitenberg vehicles can be clearly illustrated. Furthermore, the end result should show superb 3D-modelling, rendering and interaction.

Additional information

Interactive display method for digital photographs (project 2) - AJ
Build an interactive environment for displaying collections of photographs, using different arrangements. Various requirements for photo arrangements should be flexibly replaced or added through the interaction and the results should be dynamically displayed.

Additional information

Ant-Based Bundling (project 3) - MB
Node-link diagrams are a popular visual metaphor for visualizing graph data. However, they typically suffer from visual clutter if too many links are drawn caused by the fact that a graph can become dense and large. Edge bundling has become a nice way to show the node-link diagrams in a more aesthetically appealing way, however, only hierarchical and force-directed bundling approaches have been tried in the past. In this project we want to learn about how efficient swarm-based bundling methods can be, if applied to the problem of producing nicer looking node-link layouts.

Additional information

Burst photography for HDR and low-light imaging on mobile cameras (project 4) - AJ
Cell phone cameras have small apertures, which limits the number of photons they can gather, leading to noisy images in low light. They also have small sensor pixels, which limits the number of electrons each pixel can store, leading to limited dynamic range. One possibility to address these issues is to use information from multiple, successive photos of a burst.

Implement the HDR+ method (see below) for photography enhancement.You may use a computer-vision library (e.g. OpenCV) to help you implement the multiple processing stages of the method. Strive to optimize your implementation, use parallelism and if possible port it to mobile platforms.

Additional information

Graph Animation vs. Static Dynamic Graph Visualization (project 5) - MB
Visualizing a time-varying graph can be done in one of two ways, i.e., as a graph animation or as a static representation showing as many graohs as possible from the sequence in a single picture. In this project we will focus on a visualization tool that combines both concepts in a side-by-side linked view, allowing interactions in both techniques. The benefit of graph animation is the space-efficiency while for static diagrams the user can observe the dynamic data for trends, however, a linking between both concepts has even more benefits.

Additional information

A Horton-Strahler Number-Enhanced Node-Link Hierarchy and Graph Visualization (project 6) - MB
In mathematics, the Horton–Strahler number of a hierarchy is a numerical measure of its branching complexity. The goal of this project is to integrate this number to traditional node-link tree layouts and let the user interactively change the intensity of the visual output of this number while also different layouts (more space-efficient ones) should be tested. Moreover, this number should also be added to node-link diagrams of arbitrary graphs, for example, by first computing the minimum spanning tree (MST) of the corresponding graph.

Additional information

Procedural city modelling (project 7) - AJ
Creation of environments for games is a laborious task. A way to simplify this task is by automatic generation of environments using parameterized procedures. For this assignment you are asked to, fully automatically and in a higly parameterizable way, generate a large city plan and fill that in with buildings, parks, bridges, traffic signs, etcetera. To increase level of realism and at the same time reduce the size of the model the generation of textures is highly advisable.

Some additional requirements for this assignment could be: on demand city generation, walkthrough animation, height map/landscape generation, high level parameterization (Roman buildings, Chinese town, Gaudi style, ...).

Proposals that make good use of a city map (e.g. OpenStreetMap), and other real data, statistics, or maps are preferred.

Additional information:

Visual Analysis of Word Relations in the DBLP Dataset (project 8) - MB
The DBLP is the digital bibliography library project containing more than 4,000,000 paper titles from the field of computer science. In this project we are interested in how certain words or word groups are related and how their relations changed over time. These findings can indicate if certian topics or subtopics are related to others, which topics died out over the years, which new ones come into play, how they are built on others, and even if some topics disappear and reappear in an alternating behavior. To reach this goal an interactive visualization has to be designed.

Additional information

Real-time 2D to 3D video conversion (project 9) - AJ
Using the motion compensation (MC) data of advanced video codecs such as H264, it is possible to recover depth information in real-time, starting from 2D video sequences. The MC data, which is extracted during the video decoding process, is used to calculate the relative projected velocity of the elements in the scene. This velocity is then used to estimate the relative depths of pixel patches in each picture of the video scene sequence. The depth estimation process is performed alongside the standard H.264 decoding process, leading to real-time efficiency. Implement this method using any of the freely available H264 video decoders. Aim at real-time performance and render the recovered 3D scene simultaneous with the 2D video sequence.

Additional information

Interleaved Adjacency Matrices for Visualizing Huge, Dense, and Temporally Long Dynamic Graphs (project 10) - MB
Interleaving is a relatively new concept in information visualization that is useful to show temporally long datasets, for example, a sequence of graphs. For node-link diagrams this has been explored a lot already, but for adjacency matrices also showing graph data, this is an open problem. In this project the goal is to develop an interleaved and splatted version of a sequence of graphs, visually represented as weighted adjacency matrices. Interactions should be integrated allowing to change typical parameters.

Additional information

Reinforcement learning for simulating crawler vehicles (project 11) - AJ
Build an interactive educational virtual environments in which various crawler-type vehicles (see below) are simulated. You will have to use some physics engine to implement the dynamics of the vehicle and sensing of the environment. Start with a basic crawler using simple rules for reinforcement learning and gradually enhance it to perform more and more actions. The educational part of this assignment should be that the interaction with the vehicles and environment and the working of the vehicles can be clearly illustrated. Furthermore, the end result should show superb 3D-modelling, rendering and interaction.

Additional information

Visual Analysis of the Temporal Events in Earthquake Data (project 12) - MB
Many earthquakes happen on earth everyday, but most of those are not very strong and only have a small impact on the environment in which they happened. However, visually understanding the evolution of those earthquakes might be of particular interest since there could be dependencies between them, temporally as well as locally. Moreover, if no earthquake happened over a long time in a certain area this might be an indication that a bigger one has to be appear in the near future. In this project we will develop an interactive and scalable visualization that supports the visual detection of typical trends in earthquake data, locally as well as temporally.

Additional information

3D modeling tool using Google poly (project 13) - AJ
Build a 3D modeling tool which uses as input the various objects/models from the Google play database. The tool should support various CAD operations and should allow for easy placement and manipulation of basic 3D models from the database. The focus should be on rendering, interaction and presentation, in the siprit of scenario editors for popular 3D games.

Additional information

Visual Analysis of Evolving Soccer Results (project 14) - MB
There are thousands of soccer matches on earth every week. Visualizing them in terms of traditional statistical plots like bar charts is already useful, however, it does not provide any details about intermediate events. For example, it might be interesting to see the changes of soccer results based on the time in the match and the current score. In this project an interactive visualization tool should be built that can display the time-varying soccer results while allowing the user to filter for specific categories or events, hence building some kind of result prediction tool.

Additional information

Visualizing the Changes between Two Graphs (project 15) - MB
Comparing two graphs is a difficult task, in particular, if they consist of many vertices and edges, maybe also attached to edge weights or further attributes. In this project we focus on the comparison of two (or even more) static graphs. This comparison should be done algorithmically and then the output of the algorithm should be reflected in a corresponding visualization. The changes between two graphs can be computed on different metrics, one is for example, by taking into account the Jaccard coefficient for each underlying reachable set of vertices in the graphs, maybe by making use of the minimum spanning tree (MST).

Additional information

Attention Clouds for Exploring Eye Movement Data (project 16) - MB
Eye tracking has become a new technology for investigating visual attention in visual stimuli. The recorded eye movement data has a spatio-temporal nature and is pretty difficult to analyze for commonalities and differences in the data over space, time, and study participants. In this project we will focus on developing an intuitive visualization for the visual attention by first snipping the corresponding image thumbnails whose size depends on the visual attention strengths and finally, laying out the image thumbnails in an attention cloud, similar to the approach used in word or tag clouds.

Additional information

Force-Directed Generalized Pythagoras Trees (project 17) - MB
Generalized Pythagoras Trees are a way to visualize hierarchical data structures. Although these tree diagrams look aesthetically appealing, they typically suffer from occlusion problems due to the fact that the standard layout algorithm does not take into account the branch overlaps. In this project we will extend the traditional Generalized Pythagoras trees by adding a force-directed approach, trying to find a more uncluttered, but also more balanced version of the traditional way of visualizing these tree structures.

Additional information