What you can do with H3DAPI
H3DAPI is an dual license, open-source and commercial, cross-platform, scene-graph API available for download at www.H3D.org. H3D is written entirely in C++ and uses OpenGL for graphics rendering and HAPI for haptics rendering. Using X3D syntax applications containing animated virtual worlds can be created. For more advanced animations and behaviour in the worlds Python can be used. These worlds contains both graphics and haptics. To optimize and/or customize an application the user has the option of using C++.
The H3DAPI installation and source comes with a number of simple example scenes which shows the features of H3D. H3DAPI use the X3D syntax and concept of nodes to build virtual world. A node provides a certain feature in the scene. There are nodes for rendering geometry in the virtual world, for setting graphics and haptics properties and nodes that can be used for animation.
For examples on what has been done with H3DAPI check out the SenseGraphics Hall of Fame.
Through the use of the scene graph concept in X3D, virtual worlds can be easily defined. Because of the scene graph concept, it is always easy to get an overview of how the virtual world is defined. Users with little low-level programming experience can set up simple scenes that could be used for experimental research. A little more programming is required to make a simple application like a game. More advanced users can create complex optimized programs.
Haptics Device Support
H3DAPI is device independent (through HAPI) and supports multiple currently available commercial haptics devices. Through the use of the AnyDevice interface one of the supported conneted haptics devices will be interfaced with. Currently the supported devices are:
- Devices from Sensable .
- Devices from Force Dimension.
- Falcon - a haptics device from NovInt.
- HapticMaster - a haptics device from Moog FCS Robotics.
Support for more devices can be added by the user.
Force generation from 3D-graphics
H3DAPI contains a couple of different ways to generate forces from 3D surface meshes. To generate force from 3D-graphics a haptic renderer must be choosen. Through X3D different geometries can feel different depending on which Surface node is used and how the properties of a node is set.
Force Effects in H3DAPI refer to the generation of forces which will be rendered on the haptics device based (usually) on other forces than geometrical surfaces, such as position of the haptics device. H3DAPI contains a couple of predefined force effect nodes that can be used and are sufficient for a lot of haptics applications.
H3DAPI can be used to display virtual worlds in stereo. There are a lot of stereo modes supported, from very standard quad-buffered stereo to hardware display-specific modes.
Some of the 3D display technologies currently supported includes: