Skolan för
och datavetenskap
Computer Graphics with Interaction (project)

Computer Graphics with Interaction, dgi14: PROJECTS

Please read the project instructions carefully.

Note that the project also includes two aspects:
1) Including a one page project specification in your documentation. See here for an example of a good specification from MSc student and previous DH2323 attendee, Veronica Ginman.
2) Include a one page description of how your project could potentially be linked into a novel scientific question and perceptual research study. See some of the Siggraph, Eurographics and Applied Perception papers on Rachel McDonnell's portfolio page for great examples where computer graphics research meets perceptual studies.

This year, the general project theme is "Recreating the Matrix". It involves several topic areas relating to the creation of real-time
virtual city environments, agents and inhabitants, as seen in the 1999 move The Matrix.

Topic Areas: read papers about the subject (some examples given), select an area and then define your specific project in detail.

1. Procedural road, lot and city modelling

The generation of compelling virtual cities is an important element in many films and computer games and plays a central role in The Matrix. Due to the amount of detail in such environments, huge number of artists may be employed to model the large amounts of assets required, which is expensive and time consuming. Procedural techniques allow such assets to be automatically generated, given the definition of basic rules.

This project area consists of a cluster of three project types, each of which is suitable as an individual project:
1) Procedural road network generation based on 2D population, height and terrain maps.
2) Auomatic lot generation, rendering and definition of building footprints from an input road network.
3) The automatic generation of different 3D building geometries from building footprints.


Yoav I. H. Parish and Pascal Müller. 2001. Procedural modeling of cities. In Proceedings of the 28th annual conference on Computer graphics and interactive techniques (SIGGRAPH '01)


2. Real-time procedrual generation and rendering of buildings

A core element in the creation of 3D virtual cities is the ability to create individual buildings. Procedural techniques allow the graphical appearance of buildings to be defined by a set of programmed rules rather than manually by artists. This project area will investigate topics related to the procedural generation and rendering of individual buildings: specifically, their geometry and facades. Buildings may be defined by rules completely from scratch, or the procedural rules may at runtime assemble object elements that have been predefined and loaded from modelling programs such as Blender, Maya, etc. Shaders can be applied for rendering realistic architecture related to brickwork, windows and so on.


Peter Wonka, Michael Wimmer, Francois Sillion, William Ribarsky, ACM Transactions on Graphics (Proceedings of SIGGRAPH). 2003 

Pascal Mueller, Peter Wonka, Simon Haegler, Andreas Ulmer, Luc Van Gool. ACM Transactions on Graphics (Proceedings of SIGGRAPH). 2006

Example code:

3. Crowd rendering using 'imposters'

Rendering large groups of detailed 3D characters is a challenging task, due to the processing overhead involved. This project concerns the creation of imposters, simplified graphical representations of digital humans, in order to be able to render very large crowds in real-time. These representations are similar in some respects to billboarded textures, but they are also lit and animated.


Simon Dobbyn, John Hamill, Keith O'Conor, and Carol O'Sullivan. 2005. Geopostors: a real-time geometry / impostor crowd rendering system. In Proceedings of the 2005 symposium on Interactive 3D graphics and games (I3D '05)

4. Virtual traffic rendering and simulation

This project area will involve the creation of virtual traffic simulations that focus on the rendering of road sections and vehicles and will also involve animating the correct lane changing behaviours of vehicles.. 
1) Assembling a set of vehicles with texture, specular and normal maps.
2) Assembling a set of detailed road geometries, textures, specular and normal maps.
3) Rendering them in real-time using shaders.
4) Assigning routes for the vehicles to follow, integrating the ability for them to change lanes autonomously.


Papers:David Wilkie, Jason Sewall, and Ming Lin. 2013. Flow reconstruction for data-driven traffic animation. ACM Transactions on Computer Graphics, 32, 4, Article 89, July 2013

5. Pedestrian rendering and animation

Animating large crowds (as opposed to rendering large crowds - see project area #3) requires algorithms for not only animating the walk-cycles of individuals, but also to steer them so they they avoid each other and are capable of walking on paths. This project area relates to the behavioural simulation of crowds of virtual characters and involves:
1) Assembling a library of animated and textured virtual characters.
2) Animating the walk-cycles and turning abilities of the characters.
3) Implementing a steering algorithm in order to allow characters to follow paths and to avoid each other.
4) Implementing a path finding algorithm in order to allow individuals to navigate over large distances.


Reynolds, C. W. (1999) Steering Behaviors For Autonomous Characters, in the proceedings of Game Developers Conference 1999 held in San Jose, California. Miller Freeman Game Group, San Francisco, California. Pages 763-782.

Example code:

6. Implementation of distributed rendering algorithms
Large simulations create such an amount of numerical results that it is impossible to store all of them for later analysis. The rendering of results to images during the simulation, so-called in-situ visualisation, is one approach to reduce the enormous data amounts that are created during numerical simulations.
The project area aims at the implementation of algorithms that can be embedded into simulation applications in order to perform distributed image rendering. The following topics can be considered for implementation (one topic per participating student):

1) Volume ray casting,
2) Splatting,
3) Shear Warp
4) Maximum intensity projection

The project deliverables shall be a report explaining the chosen method and implementation as well as some performance measurements, and the developed program.

* The implemented rendering program must be useable in the Linux operating system
* The programming language for the implementation is preferably C, however, also an implementation in Python would be possible.
* The Message-Passing Interface (MPI) will be used for parallelisation. Prerequisite knowledge of MPI is not mandatory (see below).
* As the rendering shall be done during a simulation and in a non-interactive execution mode, the rendering algorithm uses pixel or frame buffers that do not require an open window on a screen. However, the possibility for output in real-time could be implemented too.

For the project work, students get a skeleton program that provides the necessary initialisation of the MPI environment as well as the reading of input data from files. In that way, the project work can be done mainly in a handy environment on a desktop or laptop computer. For larger tests, PDC’s cluster systems could be used. A necessary brief introduction to the use of MPI will be given in the beginning of the project and complemented during the project if necessary.
The source code developed and handed-in during this project must be licensed  under GNU General Public License (GPL).

More topic areas will be added as new ideas are suggested or come to mind. You can also suggest your own topics (see the project instructions).

Submission details

You should aim to submit the project through Bilda by Friday 30th May, although you will also be able to submit it well before that date. If you do not require your results
before September 2014, you may obtain an extension for completing the project. Please contact the course team if that is the case.

If you find your individual project especially interesting, there may also be the possibility to extend it and continue to work with me on developing it beyond DGI14 in
the KTH VIC (Visualization Interaction Collaboration) studio, which has useful equipment and connections both with academia and industry (e.g. games companies).
In addition to real-time graphics, we are also very interested in user interfaces, HCI, human behaviour and perception for graphics and animation, etc.
Copyright © Sidansvarig: Christopher Peters <>
Uppdaterad 2014-04-14