instructor: Huub van de Wetering (MF 6.087, hDOTvDOTdDOTweteringATtue.nl),
week | task | day | date | place | student deliverable |
1 | Introduction | Tuesday | 04/02 | LG -1.19 | - |
2 | Proposal submission | Monday | 10/02, before 13h | e-mail box | assignment proposal |
Evaluation of proposals | Tuesday | 11/02 | LG -1.19 | - | |
3 | Submission I | Friday | 21/02, before 13h00 | e-mail box | report: concept, v1 |
4 | Presentation day I | Friday | 28/02 | Aud 10 | presentation + demo |
5 | Submission II | Friday | 14/03 | oase | report: complete, v2 |
6 | Presentation day II | Friday | 21/03 | Aud10 | presentation + demo |
7 | Review | Tuesday | oase | - | |
8 | Demo day | Friday | 04/04 | Aud10 | full demo in a market setting | Submission III | Tuesday | 22/4, before 24h | mailbox @ MF6.209 | report: final, v3; all other final deliverables |
This assignment is created for improving the practical skills in creating computer graphics and visualization applications. Programming language and environment are at the choice of the student.
Procedure:
The proposal should be emailed to the instructor in pdf format.
The instructor will respond to the proposal during the second meeting.
Typically responses are suggestions for addition or removal of functionality or
change in planning
If more than two groups choose the same assignment, the instructor will reward
the groups with the best proposals, and ask the remaining groups to choose
a different assignment.
The report should contain the following elements.
1 ⊕ infovis toolkit battle
There have been several attempts to implement toolkits for information visualization. None of which
resulted in widely accepted solutions. Recently, two new, more generic, attempts have been made.
One, D3.js, which is data driven, and the other, JavaFX, attempts to support visualization and animation in so-called rich clients.
Ideally, this assignment is executed by two groups, one group that uses JavaFX and the other one that uses D3.js. Both groups try to make a version of the same (complex) infovis widget. A good example of such a widget is a time series visualization and analysis tool, called KronoMiner. Additional information
|
2 ⊕ point based rendering
Rendering highly complex models results in triangles whose projected area is less than a few pixels. Using standard scanline-conversion methods for the rendering of these tiny triangles becomes inefficient because of the necessary overhead for the triangle setup. Therefore, above a certain complexity, points are the conceptually more efficient rendering primitive. Holes in the rendered image (e.g. when zooming in) can be avoided by image-based filters, by adjusting the sampling density, or by so-called surface splatting. In this case each point is associated with a radius and a normal vector and therefore represents a small disc in 3-space, that is projected onto the image plane.
full description
3 ⊕ Hidden surface removal
Write a demo application for a self-developed hidden surface algorithm. Typical requirements used in this project are: high performance, large worlds, and/or dynamic environment. Additional tasks in this project are, for instance: complexity analysis, performance tests, and test scenes creation.
For showing off care should be taken to support nice shading, usable interaction, and flashy models.
4 ⊕ open data
Making data available to the general public is only half of the story. Being able to use the data to its full potential requires processing this data. However, how to process the data and what to look for is not at all obvious. Here visualization may come to the rescue to get a good feel of what kind of information is in a dataset. For this assignment you need to pick a non-trivial dataset and create a tool for visually browsing that dataset for interesting information.
Several organizations make their data openly available, see for istance: |
5 ⊕ block editor: geometric modelling
Make a geometry editor where the geometry is based on stacking simple building blocks.
The editor should allow for efficient construction of complex scenes.
6 ⊕ graph editor/layout
Graphs are very common data structures. Visualizing graphs may greatly enhance understanding them.
Below an example (left figure) is given in which a user used a tool to automatically create a layout of a graph.
This layout was unsatisfactory and was afterwards hand edited to come to a better solution (right image).
The graphs represent so-called finite state machines.
For this assignment you should make a tool that can layout labeled graphs representing finite state machines.
An expert is available who can tell more about properties of the resulting layout.
after automatic layout | after tuning by the user |
The graph topology and labels of this example are specified in this file.