Česky [Česká vlajka]

Class projects (NPRG045 & NPRG046)


Available topics

For the academic year 2009/2010, I have the following class project topics available:

Haptic window system controller
Two-semester project + bachelor thesis
(Assigned)
The project will be based on creating a virtual mouse driver for a window system of choice (MS Windows, X Window system). This driver will cooperate with an application talking to a haptic device, providing this haptic device as an additional input to the window system.
The main part of the project will then be design and implementation of one or more paradigms of controlling the window system with a haptic device. Using the 3rd dimension for input sensitivity or virtual desktops can serve as an example. A Novint Falcon haptic device will be made available to the applicant.
Note: Drivers for the haptic device itself are available, this project does not involve writing hardware drivers.
Haptic input for GIMP
Two-semester project + bachelor thesis
(Assigned)
Creating support for the Novint Falcon haptic device in the GIMP image editor. Design of several ways of utilizing 3D and force feedback in image manipulation (such as realistic simulation of a brush, sensitivity, colour changing). Comparison and evaulation of these approaches, ideally by conducting and acutal user study. A Novint Falcon haptic device will be made available to the applicant.
Scriptable virtual camera
Two-semester project + bachelor thesis
C++ library for program control of a virtual camera in a 3D scene, allowing externally scriptable flythrough of the scene with specifiable motion (interpolation) smoothness. Intended for use in presentations or in combination with screen video capture. Communication with an unknown camera representation. Cooperation with a timer and keyboard controlled from outside the library. Interactive input of trajectory control points in the scene.
Interpreter of standard annotations and semantics in Cg
Two-semester project + bachelor thesis
C library for interpreting the SAS system (Standard Annotations and Semantics) in CgFX files for both OpenGL and DirectX. The library will supplement Cg runtime functionality with setting of parameters with standard semantics and execution of SAS scripts, specified both in annotations and externally.
The project will also include implementation of a nontrivial application employing the library. Contents of this application will be specified in cooperation with the applicant.
Maintenance editor for 3D objects in OBJ format
One-semester project
A simple editor for working with objects in OBJ format which use materials in MTL format. The editor will support operations like changing the object's scale and coordinate system, computing or inverting normals, adding backfaces, combining several objects etc. Classic editing operations (such as vertex addition or relocation) need not be present. Complex parts of the OBJ format, such as curves and surfaces, do not have to be supported. The part of the program responsible for loading and saving models shall be implemented as a stand-alone library.
If desired, this topic can also be used for a two-semester project and bachelor thesis; in such case, the requested functionality of the editor will be modified accordingly.

If you are interested in a topic, and able to comply with the rules below, contact me via e-mail. It is also possible to devise your own topic from the area of computer graphics. Such a topic is subject to approval and I expect a great degree of self-sufficiency from you when developing a project based on your own topic.


Rules

I expect two-semester class projects to directly continue as a bachelor thesis; this is also reflected in the topic scopes. The exact division of a topic's contents into class project and bachelor thesis can be subject to negotiation with the applicant.

Any student interested in a topic must comply with the following conditions:

Development platform

Unless stated otherwise in the project description, the program must be written in C, C++ or Java. I prefer Windows as the target operating system, but Linux is also accepted.

Progress monitoring

The student must set up a website used to document their progress in working on the project. New information about project state must be posted at least once every 14 days.

Apart from that, I would prefer the project to be stored in a versioning system repository where I would be granted access rights. It is possible to set up an SVN repository for the project on the school server cgg.mff.cuni.cz. Information about SVN (Subversion) can be found on its official website.

I would like to discuss the project's state with the student at least once every two months, but preferably more often, during a personal meeting.

Milestones

Formally, progress of the project will be checked at the following milestones:

Detailed specification

This should summarize and discuss current approaches to the problem, analyze any existing programs and compare them to the program proposed. It must also include a design of program architecture; that is, division into modules, functionality description, libraries you intend to use etc. Specifying the programming language and target platform is also part of the detailed specification.

Pilot version

The expected content of the pilot version will be subject to agreement with the student. It does not need to contain any complete functionality, but it should make it clear that you're working on the project and that you're on the right track.

Betaversion

This must contain complete core functionality and the rest of program functions should be at least partially implemented.

Final version

The program must be fully functional, debugged and supplied with documentation. It can of course cotain missing parts/functions which will be added as part of the bachelor thesis.


Deadlines for projects started in 2009/2010

Two-semester projects

19.3.2010
Sign-in to Grupíček (formal sign-in to consultant)
27.3.2010
Detailed assignment in writing (approx. 100 words), setting up project website
24.4.2010
Detailed project specification
26.6.2010
Demonstration of pilot version of the project.
November 2010
Demonstration of program betaversion
February/March 2011
Submitting complete program with documentation

Note: The deadlines in academic year 2010/2011 will be specified later.

One-semester projects

19.3.2010
Sign-in to Grupíček (formal sign-in to consultant)
27.3.2010
Detailed assignment in writing (approx. 100 words), setting up project website
10.4.2010
Detailed project specification
15.5.2010
Demonstration of pilot version of the project.
10.7.2010
Demonstration of program betaversion
3.9.2010
Submitting complete program with documentation

Deadlines for projects started in 2008/2009

6.3.2009
Sign-in to Grupíček (formal sign-in to consultant)
28.3.2009
Detailed assignment in writing (approx. 100 words), setting up project website
25.4.2009
Detailed project specification
27.6.2009
Demonstration of pilot version of the project.
28.11.2009
Demonstration of program betaversion
6.3.2010
Submitting complete program with documentation