Haptic API survey


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.


List of analyzed APIs:

Novint HDAL SDKlow-level APIC++
CHAI 3Dlow-level approachC++
CHAI 3Dscenegraph high-level approach, OpenGLC++
H3D APIscenegraph, X3D, OpenGLC++ / Python
HAPIpart of H3D API, force generation and effectsC++
jTouchToolkithaptics API for the Java LanguageJAVA
libnifalconNovint Falcon cross-platform driverC++

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.







2010 (beta), Petr Kadlecek