Haptic API suite

current version: (2011-04-11)

SVN repository (source code): svn://cgg.mff.cuni.cz/HapticApi/branches/HapticAPIsuite/trunk

Haptic API suite is a part of the Haptic API survey

Download installer (Win32 binaries 2010-07-27):   HapticAPIsuite_1.0.zip Win32 install (~13 MB), Linux and MacOSX version still experimental

Documentation: user documentation, developer documentation

What you see are screenshots from CHAI 3D high-level testing application developed in C++/GLUT/CHAI 3D (click the thumbnail to enlarge the photo)


What is Haptic API suite?

Haptic API suite is a set of applications created during the Haptic API survey. The survey aims to compare accessible APIs for the use of a haptic technology. The suite is trying to show how to program with different APIs. The survey will draw experience from writing these applications and direct inexperienced haptic programmer which API to use for his purposes.

Content of the suite

The Haptic API suite tries to cover the most APIs usable with the Novint Falcon device. Low-level APIs such as HDAL SDK and libnifalcon supports just the Novint Falcon device. High-level APIs supports various devices from Sensable, Force Dimension or HapticMaster. The schema below shows system architecture layers starting from the Novint Falcon device at the top and ends with the scenegraph high-level APIs at the bottom. Blue boxes represents APIs you can use in your application, green boxes are classes wrapping the driver or low-level API and red boxes represents abstract device class that you can use to communicate with different numerous haptic devices within the bigger software development kit or application programming interface.

Schema 1 - Haptic API suite system architecture layers

Haptic API suite provides minimalistic application with source code for every "blue" box API (some of them are still in progress). Minimialistic application has only one main functionality - print a position of the device and optionally send a force to the device (which is a three-dimensional vector when using 3-DOF {degrees of freedom} device). The purpose of such an applicaiton is to show basics of the API usage on a low-level access. In addition to minimalistic applications Haptic API suite provides test applications that use higher-level access to haptic device (use of haptic tool, haptic forces, ...). You can see the actual content of the Haptic API suite in the table below.

CHAI3D - highlevelscenegraph high-levelC++/CHAI3DWin32, (experimental Win64, Linux, Mac OS-X)
(integration into existing project), DirectX 9
C++/CHAI3D (lowlevel)Win32
CHAI3D - minimallow-levelC++/CHAI3D (lowlevel)Win32, (experimental Win64, Linux, Mac OS-X)
CHAI3D - haptic benchmarklow-levelC++/CHAI3D (lowlevel)Win32, (experimental Win64, Linux, Mac OS-X)
HDAL - minimallow-levelC++/HDALWin32
HAPI - minimallow-levelC++/HAPIWin32
H3DAPI - highlevelhigh-levelC++/H3DAPIWin32
JTouchToolkit - minimallow-levelJava/JTouchToolkitWin32 (HDAL wrapper)
libNiFalcon - minimalNovint Falcon driver, low-levelC++/libNiFalconWin32, (experimental Win64, Linux, Mac OS-X)
CHAI3Dlibnifalcon integration,
libpng integration, bugfixes
C++/CHAI3DWin32, (experimental Win64, Linux, Mac OS-X)

Please visit user documentation and developer documentation for more complex information about Haptic API suite.

2011, Petr Kadlecek