Skip to main content

Introduction to Haptics

About This Course

Participants in this class will learn how to build, program, and control haptic devices, which are mechatronic devices that allow users to feel virtual or remote environments. In the process, participants will gain an appreciation for the capabilities and limitations of human touch, develop an intuitive connection between equations that describe physical interactions and how they feel, and gain practical interdisciplinary engineering skills related to robotics, mechanical engineering, electrical engineering, bioengineering, and computer science. To participate in lab assignments (which is not strictly required to receive a Statement of Accomplishment), the participant will need to acquire/build the components of a Hapkit, and assemble and program the device. Laboratory assignments using Hapkit will give participants hands-on experience in assembling mechanical systems, making circuits, programming Arduino-based micro-controllers, and testing their haptic creations. After the class, we hope that you will continue to use and modify your Hapkit, and let us know about your haptic creations. Please note that you can still participate in the online course without the Hapkit and receive a Statement of Accomplishment, but you will not be able to do most of the laboratories.

Self-Paced course

This is a self-paced course, so you can complete the videos, quizzes, and lab assignments on your own schedule. Grading is automated. However, we suggest spending about one week on each of the 5 modules in the course, with each module taking about 10 hours of your time (depending on your background/experience). At the start of the course, we will release the modules once a week.


The required background for this course is high-school physics (non-calculus is fine) and pre-calculus. Beginning programming is experience is helpful. Haptic device design, robotics, and mechatronics experience are not required -- this is designed as a gateway course for these topics.

Course Staff

Allison Okamura (Instructor)

Allison is an associate professor in the Stanford University mechanical engineering department and (by courtesy) computer science department. She is the director of the Collaborative Haptics and Robotics in Medicine (CHARM) Laboratory. Allison creates robots and human-computer interfaces that use haptics (the sense of touch) in order to improve human health, safety, and quality of life. She and her students study applications of haptic technology in robot-assisted surgery, prosthetics, rehabilitation, simulation and training, space teleoperation, and education. Allison is committed to sharing her passion for research and discovery, using robotics and haptics in outreach programs to groups underrepresented in engineering. Outside academia, she enjoys spending time with her husband and two children, running, and playing ice hockey.

Melisa Orta (Teaching Assistant)

Melisa is a Ph.D. student in the mechanical engineering department at Stanford University. She received her bachelor’s degree from Monterrey Institute of Technology, her Master's degree at Stanford University, and worked for several years at Apple.

We would like to thank the many students and collaborators who have exchanged ideas with Allison about haptics education in the past (including Katherine Kuchenbecker, Will Provancher, Jake Abbott, Karon MacLean, Blake Hannaford, and Mark Cutkosky), as well as people who contributed to the design of Hapkit and previous versions of Stanford's Haptic Paddle (including Mark Cutkosky, Jesse Dorogusker, Chris Richard, Marlo Kohn, Danya Volkov, Ian Connolly, Kunal Chawla, Matthew Weber, Zhan Fan Quek, Nick Colonnese, Ann Majewicz, Darrel Deo, Lester Su, Alexander Miller, Robert Webster, Jenna Gorlewicz, William Provancher). The Hapkit was orignially developed in collaboration with Tania Morimoto and Paulo Blikstein, and recent contributors include Akzl Pultorak, Jeanny Wang, Alyssa Lukpat, Kavya Ramakrishnan, and Agnes Kaiser. This course is supported in part by the Stanford University Office of the Vice Provost for Online Learning, the Stanford University School of Engineering, and the National Science Foundation.

Frequently Asked Questions

Do I need to apply for this course?

No! This course is open the public. You can sign up any time after the course is launched.

What kind of computer do I need?

You need a computer both to access videos/quizzes/assignments on this site and to control your haptic device. Just about any computer with a USB port should suffice. We can provide support for setting up the Arduino software on a Mac or Windows-based PC, but if you want to use Linux you are on your own.

What other materials will I need?

If you are only planning to view the videos and take the quizzes, you will only need an internet-connected computer with web browser software. Acquiring the parts for and building a Hapkit (needed to complete the laboratory component of the course) is much more involved; instructions for building the Hapkit will be posted on the Hapkit website.

Where can I get a Hapkit?

At this time, the Hapkit is not available for purchase as a complete kit. Instead, you will need to purchase and make the components as described on the Hapkit website. (If you are an enterprising person, we welcome you to take the open-source design and make into a product!)

Do I need to buy a textbook?

There is no textbook; we will provide or give you links to any documents that you need to read.

What is the course schedule?

The course is divided into 5 modules, and we suggest that you complete one module per week. In each module, participants will view online lectures, take online quizzes (interspersed with the lectures), and complete a laboratory assignment. Data for each lab assignment will be submitted online.

Module 1:  Introduction to haptic technology and human haptics
Module 2:  Hapkit mechanical design and assembly
Module 3:  Hapkit mechatronics
Module 4:  Programming virtual environments
Module 5:  Mechanical characterization and simulation

How will I be graded?

The pass/fail grade will be based on your quiz responses and submitted laboratory data. 50% of the grade is based on the quizzes and 50% is based on the laboratory assignments. To receive a "Statement of Accomplishment" for this course (i.e., a passing grade), you must receive a score of at least 50%. This means that you will probably need to do at least some parts of the laboratory component in order to "complete" this haptics course. (The first lab does not use the Hapkit, so it is possible to pass the course without building a Hapkit. This meant to make the course more accessible to people without the necessary resources to make a Hapkit.) Of course, you are welcome to do only the components of the course you are interested in, if the grade doesn't matter to you.

How will I get help?

Questions can be posted to the course discussion board, where your classmates or the instructors can provide responses. You can include pictures, code, video, etc. in your questions post. Allison and/or Melisa will check the discussion board posts on a daily basis during the weekdays, and once each weekend.

After I complete the class, how can I continue my haptics education?

Some links for Haptics education and research websites are provided on the Hapkit Resources webpage. In additon, we encourage other participants to post Haptics education and project materials on the course wiki page (click on "Wiki" once you are in the course).

Hapkit photos © 2013 Megan Chiou.

  1. Course Number

    Haptics - SELF PACED
  2. Classes Start

  3. Estimated Effort

    Expect to spend 5-10 hours per module on this class, including watching videos, taking quizzes, and completing lab assignments (depending on level of experience)
  4. Price