instructor: Andrei Jalba (MF 4.063, aDOTcDOTjalbaATtueDOTnl)
task | day | date | place | student deliverable |
Intro. Assignment choice | Tuesday | 07/02 | see owinfo | - |
Proposal submission | Tuesday | 14/02, before 24h | Canvas | project proposal |
Evaluation of proposals | Tuesday | 21/02 | Canvas | - |
Presentation day I (groups 1--7) | Tuesday | 07/03 | see owinfo | presentation + demo |
Presentation day II (groups 8--14) | Thursday | 09/03 | see owinfo | presentation + demo |
Submission I | Tuesday | 14/03, before 24h | Canvas | report: concept version |
Review | Thursday | 23/03 | Canvas | - |
Demo day | Tuesday | 28/03 | see owinfo | full demo in a market setting |
Submission II | Thursday | 06/04, before 24h | Canvas | report: final version; all other final deliverables |
Remarks
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.
Procedure:
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.
The report should contain the following elements.
⊕ Braitenberg vehicles (project 1)
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)
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 colony optimization for path planning (project 3)
In the natural world, ants initially wander randomly, and upon finding food return to their colony while laying down pheromone trails. If other ants find such a path, they do not keep traveling at random, but instead follow the trail, returning and reinforcing it if they eventually find food. The idea of the ant-colony algorithm is to mimic this behavior with "simulated ants" walking around the graph representing the problem to solve.
Build an interactive simulation environment based on the ant-colony algorithm applied to path planning for e.g. robot navigation. Given an input environment (e.g. a building floor, a map of buildings within a city, a floor/maze plan, etc.) and certain goal/target positions (e.g. exit locations), your simulator should use the ant-colony algorithm to compute "optimal paths" towards the goals. Your simulator should allow the visualization of the "ants", algorithm state, progress, etc. and allow interactive manipulation of the goal positions and obstacles.
Additional information
⊕ The Corridor map method for
path planning (project 4)
A central problem in games is planning
high-equality paths for characters avoiding obstacles in the
environment. Current games require a path planner that is fast (to
ensure real-time interaction) and flexible (to avoid local
hazards). In addition, a path needs to be natural, meaning that the
path is smooth, short, keeps some clearance to obstacles, avoids other
characters, etc. The Corridor Map Method (CMM) satisfies the
requirements mentioned above.
Build an interactive simulation environment for large crowds based on
the CMM. Extend the CMM to allow dynamic manipulation of obstacles:
creation of new obstacles, 'soft' obstacles, etc. The focus of this
project should be on path planning and not on crowd dynamics.
Additional information
⊕ House of cards clip (project 5)
For the song 'house of cards' of the band Radiohead a 3D point cloud was generated (see links below).
Create a clip for this song given this data. The emphasis of this assignment should be on manipulation of point clouds:
e.g. surface reconstruction, shading, denoising, etcetera.
⊕ procedural city modelling (project 6)
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: |
|
⊕ simulation of continuous materials (project 7)
In the last years position-based simulation methods have become
popular in the graphics community. In contrast to classical simulation
approaches these methods compute the position changes in each
simulation step directly, based on the solution of a quasi-static
problem. Therefore, position-based approaches are fast, stable and
con- trollable which make them well-suited for use in interactive
environments.
The combination of continuum simulation of deformable solids and position-based dynamics makes the simulation algorithm stable, fast and controllable while providing the ability to simulate complex physical phenomena lacking in former position-based approaches.
Your simulation engine for continuous materials using position-based
dynamics should allow for simulating various deformable solids, and it
should perform in real time for large objects. Use parallelism to cut
down on execution time. Realism should also be considered.
/p>
Additional information
⊕ object/shape recognition from silhouettes (project 8)
The reconstruction of a 3D object model from a set of images taken from
different viewpoints is an important problem in computer vision. One of the
simplest ways to do this is to use the silhouettes of the object (the binary
classification of images into object and background) to construct a bounding
volume for the object. To efficiently represent this volume, Szeliski [1] uses an
octree, which represents the object as a tree of recursively subdivided cubes.
The algorithm starts with a small number of black cubes. Black cubes are
believed to lie completely within the object, white cubes are known to lie
outside of the object, and gray cubes are ambiguous (e.g. along object's
boundary). When a new image is acquired, all current cubes are projected in
the image plane and tested whether they lie totally within or outside the
silhouette. Then, the color of each cube is updated according to the outcome
of the cube-silhouette intersection test.
Implement the shape-from-silhouettes method above using images
captured by a single, hand-held camera (webcam, mobile phone, etc.).
Use a computer-vision library (e.g. OpenCV) to help you perform
low-level computer vision tasks such as: feature detection, feature
matching, segmentation, camera calibration, camera pose estimation,
etc. Alternatively, sensors available in your phone can be used to
help with camera pose estimation, motion, etc. If necessary, use a
so-called camera calibration pattern (chessboard pattern).
Additional information
⊕ open data (project 9)
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.
For this assignment as much as possible of the following features should be fulfilled by your proposal:
Several organizations make their data openly available, see for istance: |