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