Class projects

The following list details my currently active class projects:

Haptic window system controller
Two-semester project + bachelor thesis
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
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.
Haptic API survey
Assigned to: Petr Kadleček
Thorough analysis of existing APIs (both open-source and proprietary) for programming applications ustilizing haptic devices. Detailed evaluation and comparison of APIs in text. Implementation of a non-trivial test problem under several APIs, result comparison. A Novint Falcon haptic device will be made available to applicant.
3D physics toolbox
Assigned to: Jakub Čermák
Project website
Real-time physical simulation of a scene composed of parts of several pre-defined classes (such as rigid bodies and springs), including user interaction. Broad topic, can be speicified according to applicant's interests: interactive scene creation, comparison of integration methods, interaction using a haptic device, user-controlled pseudophysics, ...
Alternative interaction with volumetric medical data
Assigned to: Jan Bím
This project is supervised by Mgr. Václav Krajíček; I participate as a consultant.
Design and implementation of a generic API for interacting with volumetric medical data (CT scans). The API shall allow controlling a 3D virtual cursor with force feedback (both haptic and pseudo-haptic). The project will consist of the generic API as well as its implementation for one or more hardware devices (such as a haptic device, force-feedback joystick, mouse). The project forms part of the MedV4D project, which is developed in cooperation with medical professionals. A Novint Falcon haptic device will be made available to the applicant.

Unassigned topics are also available in Czech. If you are interested in an unassigned project, please consult my project rules. These are also available in Czech.

Bachelor theses

I supervised the following bachelor theses:

Real-time Fur Rendering
Author: Bc. Martin Berger
Defended in: 2009
Experimental System for Shadowing Algorithms
Author: Bc. David Skupien
Defended in: 2009
Rendering Planetary Atmospheres in Real-Time
Author: Bc. Oskár Elek
Defended in: 2008

C++ assignments

I am offering several project assignments for the subject Programování v C++ (NPRG041). These are listed on the CGG C++ assignment page.

Seminar on Scientific Soft Skills

I am co-supervising Seminar on Scientific Soft Skills (NPGR024), given at MFF UK. Slides from my talks at this seminar are available in the downloads section. In the summer term 2008/2009, I am the advisor for the following papers:


On 6th November 2008, I gave a talk titled "Haptics — Don't Lose Touch with Virtual Reality" on the Special Graphics Seminar (NPGR005) at MFF UK. The slides are available for download in the downloads section.