H 3 D API Training Daniel Evestedt Sense

  • Slides: 32
Download presentation
H 3 D API Training Daniel Evestedt Sense. Graphics AB

H 3 D API Training Daniel Evestedt Sense. Graphics AB

H 3 D API Part 1: Introduction, H 3 D, Graphics, Haptics, Installing Part

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

H 3 D API Training Part 1: Introduction; H 3 D, Graphics, Haptics

Outline What is haptics? ◦ Concepts ◦ Hardware devices ◦ Software H 3 D

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 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

What is haptics? Tactile vs kineastetic force feedback

Exploratory procedures Lateral motion (texture) Pressure (hardness) Static contact (temperature) Unsupported holding (weight) Enclosure

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

What is haptics? 3 -DOF - 6 -DOF

Haptic devices

Haptic devices

Display systems

Display systems

H 3 D platform H 3 DAPI ◦ ◦ X 3 D-based scene-graph API

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 C++ Haptics API Cross-platform Device independent Modular and easily extendable

HAPI - components 13

HAPI - components 13

HAPI – program flow HAPI thread (1000 Hz) Shapes, effects Main thread Contact info,

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.

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 D API

H 3 DAPI Overview H 3 DAPI 17

H 3 DAPI Overview H 3 DAPI 17

Simple X 3 D example (H 3 DAPI) <Shape> <Appearance> <Material diffuse. Color=“ 1

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

H 3 D API Components

More info

More info

Toolkits Med. X 3 D (volume rendering) VHTK (volume haptics toolkit) UI (3 D

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

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

Render styles

Composed. Volume. Style Compose several styles into one Opacity-Phong-Edge enhancement

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

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 ◦

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

Dichloroethane Electro Potential

Femur Bone Drilling

Femur Bone Drilling

Dynamics in Volume Haptics

Dynamics in Volume Haptics

Rigid. Body. Physics Rigid bodies ◦ ◦ ◦ Physics properties (mass, friction, etc) Geometric

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

UI toolkit 3 D/haptic UI nodes Menus Sliders Buttons

Downloading H 3 D API www. h 3 d. org -- H 3 D

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