
Haptic API survey
About:
Bachelor Thesis - A Practical Survey of Haptic APIs
Author: Petr Kadlecek
Project supervisor: Mgr. Petr Kmoch
The goal of the thesis is to present a thorough review of currently available APIs for controlling haptic devices, focusing especially on open-source, cross-platform APIs. Comparison of features, paradigms, advatanges and drawbacks of reviewed APIs shall be presented in the thesis. A small application demonstrating basic use of each API should be created. The thesis and these small applications should together form a good reference for future projects regarding choosing a haptic API suitable for a given project's needs. The student should then analyze the CHAI 3D haptic library in more detail. Its features and use shall be illustrated on a larger demonstration application. Possibilities of expanding CHAI 3D with support for libnifalcon, an open-source driver for the Novint Falcon device, should be discussed and optionally implemented.
Academic Year Project - Implementation - NPRG034 - Haptic API survey, Detailed assignment (in Czech)
Author: Petr Kadlecek
Project supervisor: Mgr. Petr Kmoch
Thorough analysis of existing APIs (both open-source and proprietary) for programming applications utilizing 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.
Haptic API Suite

Haptic API Suite is a set of applications created during the survey. Visit the Haptic API Suite web page here.
Survey:
List of analyzed APIs:
API | info | language | logo |
Novint HDAL SDK | low-level API | C++ | ![]() |
CHAI 3D | low-level approach | C++ | ![]() |
CHAI 3D | scenegraph high-level approach, OpenGL | C++ | |
H3D API | scenegraph, X3D, OpenGL | C++ / Python | ![]() |
HAPI | part of H3D API, force generation and effects | C++ | |
jTouchToolkit | haptics API for the Java Language | JAVA | ![]() |
libnifalcon | Novint Falcon cross-platform driver | C++ | ![]() |
If you think that some API is missing in the survey - feel free to send me an email (contact)

Work progress:
26.02.2009: Project meeting and arrangement
04.03.2009: Project assignment in "Grupicek" IS module
17.03.2009: Haptic device intro training
26.03.2009: Detailed assignment in writing
06.04.2009: chai3D getting started and examples testing, demo application (by Mgr. Petr Kmoch) look through, Novint HDAL SDK programmers guide...
19.04.2009: SVN (Subversion) study and testing, H3D API 2.0 manual, detailed project specification
24.04.2009: Detailed project specification
12.05.2009: HDAL, Chai 3D low-level layer implementation into existing project
23.06.2009: Chai 3D 2.0.0 is available! Implementation in progress
26.06.2009: Demonstration of a pilot version of the project
03.07.2009: Chai 3D 2.0.0 scenegraph testing
20.09.2009: libnifalcon - libnifalcon v1.0.1 released, np nifalcon v1.5 released
24.09.2009: Chai 3D 2.0.0 project implementation
09.10.2009: JTouchToolkit, Novint HDAL SDK simple applications testing
14.10.2009: libnifalcon v1.0.1 - testing on the linux machine, works great! (tested on HP6730s Ubuntu 9.0.4, Linux 2.6.28 - thx oicw)
15.10.2009: JTouchToolkit - implementation of a minimal presenting code
21.10.2009: Novint HDAL SDK - implementation of a minimal presenting code
24.11.2009: Chai 3D - high-level test application - implementation
29.11.2009: Chai 3D - high-level test application - implementation
02.12.2009: Chai 3D - high-level test application - implementation
11.12.2009: Chai 3D - high-level test application - implementation
06.01.2010: Chai 3D - high-level test application - ODE, GEL, BASS
23.02.2010: Working hard to finish Chai 3D testapp!
28.02.2010: libnifalcon v1.0.1 open source driver - Linux prep., conf., inst., ...
01.03.2010: WiX, Chai 3D - testapp is getting a new direction of Haptic 3D scene prototyping application, libnifalcon v1.0.1 open source driver - Windows prep., conf., inst., ...
05.03.2010: added boost libraries, restructuring...
07.03.2010: new HGUI for Chai 3D Haptic 3D scene prototyping application
09.03.2010: Chai 3D linux 2.0.0, HGUI and code (re)factoring...
11.03.2010: Haptic 3D scene prototyping application bugfixes
12.03.2010: alpha-channel cross-platform png support added to Chai 3D (libpng), virtual debugging haptic device added to Chai 3D (cDebugDevice)
15.03.2010: spectator camera added, HGUI, ...
17.03.2010: bugfixes
26.03.2010: Haptic API Suite
09.04.2010: Windows Installer completed, user documentation completed, ...
12.04.2010: libnifalcon support (Windows and Linux) completed Novint Falcon on linux in CHAI 3D , libnifalcon CLI minimal, libnifalcon minimal, Haptic API suite 0.8
14.04.2010: CHAI 3D - highlevel testing application running on Ubuntu screenshot
19.04.2010: CHAI 3D - linux support presentation
22.05.2010: preparing Linux version of Haptic API suite, Bachelor thesis in progress...
25.06.2010: adding new features, thesis content scheme, code cleaning, adding comments, tuning deviceHandler and libnifalcon support in chai3d, makefiles for linux version, ...
05.07.2010: bugfixes (menu, setup, ...), thesis draft prep., ...
13.07.2010: consultation, thesis draft prep., fixes, ...
28.07.2010: Bachelor thesis - A Practical Survey of Haptic APIs
28.07.2010: Haptic API suite v1.0 more info here
24.08.2010: Experimental Mac OSX version of CHAI3D highlevel application with libnifalcon support tested screenshot
16.09.2010: Thesis defended
01.10.2010: Preparing clean version of CHAI 3D fixes and additional support of libnifalcon
15.01.2011: There are still some issues with initializing libnifalcon in CHAI3D (especially on Mac OSX) - working on that slowly. Latest experimental version of libnifalcon implementation in CHAI3D can still be downloaded from SVN repository - see Haptic API suite.