H 3 D API Training Daniel Evestedt Sense














![Code example (HAPI) int main(int argc, char* argv[]) { Any. Haptics. Device hd; HAPISurface. Code example (HAPI) int main(int argc, char* argv[]) { Any. Haptics. Device hd; HAPISurface.](https://slidetodoc.com/presentation_image/07f2e6c71396caa8390f48e2caf3454b/image-15.jpg)

















- Slides: 32
H 3 D API Training Daniel Evestedt Sense. Graphics AB
H 3 D API Part 1: Introduction, H 3 D, Graphics, Haptics, Installing Part 2: X 3 D Part 3: Python, Fields and Event Handling Part 4: C++ ◦ HAPI ◦ H 3 DAPI – Extending with new nodes ◦ H 3 DAPI haptics
H 3 D API Training Part 1: Introduction; H 3 D, Graphics, Haptics
Outline What is haptics? ◦ Concepts ◦ Hardware devices ◦ Software H 3 D ◦ HAPI ◦ H 3 DAPI ◦ Toolkits
Sense. Graphics technology Sense. Graphics H 3 DAPI Software development platform (Open Source) ◦ Sense. Graphics H 3 DAPI is designed for users intending to write software applications in “multi-sensory” environments. Sense. Graphics Immersive Workstations ◦ Work with your data in Immersive environment.
What is haptics? Tactile vs kineastetic force feedback
Exploratory procedures Lateral motion (texture) Pressure (hardness) Static contact (temperature) Unsupported holding (weight) Enclosure (global shape) Contour following (local shape)
What is haptics? 3 -DOF - 6 -DOF
Haptic devices
Display systems
H 3 D platform H 3 DAPI ◦ ◦ X 3 D-based scene-graph API Graphics, haptics, sound Scripting through Python C++, Open. GL HAPI ◦ Haptics SDK ◦ C++ ◦ Cross-platform (Windows, Linux, OSX) ◦ Device independent www. h 3 d. orgw. h 3
HAPI C++ Haptics API Cross-platform Device independent Modular and easily extendable
HAPI - components 13
HAPI – program flow HAPI thread (1000 Hz) Shapes, effects Main thread Contact info, Device info Syncronisation point Get device state Render shapes and effects Send force, torque to device
Code example (HAPI) int main(int argc, char* argv[]) { Any. Haptics. Device hd; HAPISurface. Object *my_surface = new Friction. Surface(); Haptic. Primitive *my_haptic_sphere = new Haptic. Primitive( new Collision: : Sphere( Vec 3( 0, 0, 0 ), 0. 05 ), my_surface ); hd. set. Haptics. Renderer( new God. Object. Renderer() ); if( hd. init. Device() != HAPIHaptics. Device: : SUCCESS ) { cerr << hd. get. Last. Error. Msg() << endl; return 0; } hd. enable. Device(); hd. add. Shape( my_haptic_sphere ); hd. transfer. Objects(); string temp_string; cerr << "Press ENTER to exit" << endl; getline( cin, temp_string );
H 3 D API
H 3 DAPI Overview H 3 DAPI 17
Simple X 3 D example (H 3 DAPI) <Shape> <Appearance> <Material diffuse. Color=“ 1 0 0”/> <Frictional. Surface stiffness=“ 0. 3” /> </Appearance> <Sphere radius=“ 0. 1” /> </Shape>
H 3 D API Components
More info
Toolkits Med. X 3 D (volume rendering) VHTK (volume haptics toolkit) UI (3 D user interface) Rigid. Body. Physics
Med. X 3 D Web 3 D Consortium – Medical working group ◦ Create ISO standard for representation of human anatomy ◦ First step: volume visualization Med. X 3 D toolkit for H 3 D API ◦ First implementation of standard draft ◦ GPU based raycasting and slice based 3 D texture rendering
Render styles
Composed. Volume. Style Compose several styles into one Opacity-Phong-Edge enhancement
Segmented. Volume. Data Render different parts of data with different rendering styles. Cerebral ventricular system: Tone. Mapped Head: Opacity Blood vessels: Phong Head: Opacity-Boundary
VHTK – Volume Haptics Toolkit Surface Haptics ◦ interact with surfaces Volume Haptics ◦ haptic algorithms using volumetric data ◦ interaction with volumetric data Applications ◦ surgery simulation on authentic data ◦ scientific visualization of volumetric data
Dichloroethane Electro Potential
Femur Bone Drilling
Dynamics in Volume Haptics
Rigid. Body. Physics Rigid bodies ◦ ◦ ◦ Physics properties (mass, friction, etc) Geometric shape Joints Haptic interaction Currently ODE and Nvidia Phys. X
UI toolkit 3 D/haptic UI nodes Menus Sliders Buttons
Downloading H 3 D API www. h 3 d. org -- H 3 D API community website ◦ Account based ◦ Bug tracking ◦ Forums ◦ FAQ / Documentation ◦ Examples ◦ etc