STEP Program

STEP is a new program, funded by the NSF, beginning in the summer of 2009. The inaugural STEP class consists of 15 students. The average Math SAT score of an incoming STEP student is 575. Their average high school GPA is 3.5. Most have not had previous research or work experience. More info

About Haptics Research

Haptics is the science enabling tactile sensation in computer applications for simulation and training purposes. The user can receive different types of touch sensations through a haptic device e.g. force feedback and tactile feedback. Haptic systems allow us to develop novel multimodal virtual environments where 3D visualization is blended with the tactile sensation. The goal of this project is to prepare prospective students to explore haptic-enabled multimodal interfaces and 3D computer graphics. They will have the opportunity to explore specific Application Programming Interfaces and develop simple 3D multimodal applications. More info

STEP Student: Jazmine Carpenter

Jazmine Carpenter (18) is a native of Savannah, GA. As a child Jazmine was always fascinated by computers and attracted by the unique way they operate. After attending Ogelthorpe Academy Middle School, Jazmine soon graduated from Sol C. Johnson High school. Now she has followed her passion and recently enrolled at the Armstrong Atlantic University in order to obtain a Bachelor degree in Science of Information Technology. With the help of the STEP program, Jazmine has gotten a head start towards her goal of pursuing a carrier in Distributed Systems and Applications.

Study Program

We designed the "STEPs" such that at the end of the program our students will be able to develop a 3D application that involves haptic feedback. We choose as development platform for haptics the H3D API. The API is open source, cross platform, and haptic device independent. The graphic rendering of the objects in the virtual environment is based on the scene graphs created with X3D standard. The animation of objects and the events are supported using scripting in Python programming language. To guide the student we implemented a study program in four steps that are presented below.

1. Introduction to Haptics

In the first two weeks the student was presented theoretic notions regarding virtual environments, 3D computer graphics and the haptic technology. The student learned about different types of haptic devices and their properties. Experimenting with the haptic devices from our laboratory, the student gained a better understanding of the written study material. The student also learned about various domains of applicability and the importance of haptics. For a complete image on haptics the student was introduced to simple rendering algorithms for haptics and 3D rendering. After two weeks we assessed the student's knowledge with a writtent test.

2. Introduction to X3D

Example1. A Table and Chairs

In the third week the student learned to create a 3D scene using the X3D specifications. X3D files are XML-based and composed of multiple X3D nodes that together form the scene graph. The geometric primitives that were presented to the student and that were used to develop graphic scenes are: the sphere, the cylinder, the box, and the cone. In order to add textures, colors, or transparency to the graphical objects the student used nodes like Material and ImageTexture. The student learned how to place objects at different locations and with different orientations employing the attributes translation and rotation of the node Transform.

Example2. Rainbow Car

Routing mechanism is employed for example to add movement to the geometric objects routing mechanism in association with OrientationInterpolator and PositionInterpolator. The student learned modalities to change objects color based on time patterns using the X3D nodes ColorInterpolar and Timer for routing. Below we present some of the models developed by the student. The first one is an example of how complex geometries can be created using the primitives. The second example demonstrates the use of a routing mechanism. The student modeled a car that is moving on a specified route, and changing the orientation as well as its color.

3. Introduction to Python

In the fourth week the student started learning introductory notions about the interpreted language Python. The student learned about basic datatypes in Python, the local and global variables, and the method of representing literals. Next she learned to develop functions with arguments and return values, and the syntax of the main statements (if-else, while, and for statements) she was given the task of developing a small calculator program that take as input from the user two operands and an operator (+, = *, /) and returns the result of the operation. We also presented introductory notions about object oriented programming in Python: how to create a class, and an instance of a class, how to call methods of the class, etc.

4. Introduction to H3D

In the last week of the program we present notions and H3D programming. H3D is an API for developing haptics applications. The knowledge that the student has accumulated in the previous four weeks is used in this step, since the virtual environment is created using the X3D nodes. In this last week the student developed a 3D haptic virtual box on which the user can apply various forces. To simulate the action of the forces applied by the user with the haptic device in the virtual scene we employ python functions and X3D routing nodes. In this scenario we have to constantly update the graphical scene (what the user sees on the screen) and the haptic loop (user has to receive haptic feedback from the device based on his/her actions).