The Hipp program

April 6th 2011 : Version 1.0 Beta of the program is released. It is free to download and use. See download page.

With the HIPP program, it is possible to draw digital images and to experience them through tactile and sound feedback. The program is based on a technique which enables the tactile feeling of data-models with a special pen. The pen is named "the PHANToM" and pushes back with the help of motors. With the pen, it is possible to follow a relief and even draw something in relief. It is also possible to add spoken explanations to the image's details or to play sound effets when they are touched. It is possible to collaborate in a way that a person can use a normal mouse to draw and point while the pen is used to feel the tactile feedback. We strived to obtain a functionnality that ressembles a simple drawing program (like Paint) and that it is easy to use for those who can't see.

Image showing a computer with HIPP and the device for tactile feedback.

Functions of the HIPP program. When the student feels the house's window with the tactile pen in the tactile image, a spoken information or a sound effect is played.

Technical details

The HIPP program is mainly written in C++. HIPP builds on other programs' code. Here is a list :

  • wxWidgets is used to have standard windows and menu system. It also handles the command stack and undo/redo system.
  • H3DAPI is used to make the connection to haptic devices such as the PHANToM.
  • Cairo is used to render the graphics in HIPP.
  • Xerces-C++ is used to handle the files that HIPP reads and produces. The format of .hipp files is based on SVG ; .hipp files are XML documents.
The list continues, including Boost, ICU, libsigc++, libpng, zlib, pixman...
We previously used a closed source library to read sound files. We removed it and are now only able to use .wav files within the HIPP program. Being able to read .mp3 files is one of the numerous enhancements we are working on, along with bug fixes. For more technical details, you can go to our trac.