Volunteer Project & Reflection (due 11/4)

Much of this quarter will likely be spent inventing and building accessibile technology, and you may not have time to also do the sort of participatory design project that would ideally ensure that your technology fully reflects your target user. This project is your opportunity to focus on learning rather than building, observing rather than inventing. Even if you already have a disability or have worked closely with people with disabilities before, you can always learn something new from going out into the field.

The specific volunteer opportunity used in this assignment is still being defined. In the past students have come to technology days at a center for independent living to help fix and configure software AT or provided help at an event (such as a sport event). The goal is for you ta have collaborative or supportive role for this project that may help inform your thinking. More details will be posted here soon

At the end you should write a short reflection (about 1 page) about your experience. This reflection should touch on the following topics:

  • What did you do (what organization did you work for, what specific people did you work with, and what did you do for/with them?)
  • What did you observe (what stood out to you as interesting about the space, people, and task that you engaged with? Were there things that worked particularly well? Were there breakdowns?)
  • What did you learn (did you learn something about accessible technologies? Anything that might inform your approach to research?)

Project 2: Build a Better Button

Learning Goals for the Project

  • Learn about Circuit design
  • Learn how to communicate between an Arduino and your phone
  • Apply your knowledge of physical design (3D printing/laser cutting) to support your goals
  • Build a simple circuit that is enhanced by its connection to your phone

Basic Requirements for Project

Your project should demonstrate your ability to take input from at least one button (or other sensor), capture that information by phone, and do something with it. For example, you could build a door opening sensor (using a button or proximity sensor) that causes your phone to announce the door was opened, or a single switch control for scrolling or tabbing through a web page, or a capacitive sensor that captures a log of how often a cane is used.

You should make a case for why this is an assistive technology of some sort.

Resources that might be helpful

There is some great software that con be connected to the arduino including 1Shield, AppInventor, and Blynk. Some work only for Android, others for both Android and iPhone.

There are lots of really great examples online of arduino based projects, arduino projects that involve smartphones, and arduino projects that involve 3D printing or laser cutting. Many of them are too complex for the expectations of this project, though they might help to inspire final projects, or give you ideas for something simple you can do in a week. Here is a sample:

Hand In

Create a Thingiverse page for your project with a brief description of the project, a video, any 3D printed files, and a schematic for your circuit. Turn the URL in by email with the subject: Project 2.

The Future of Access Technologies

Picture of a 3D printed arm with backscatter sensing technology attached to it.

Access technology (AT) has the potential to increase autonomy, and improve millions of people’s ability to live independently. This potential is currently under-realized because the expertise needed to create the right AT is in short supply and the custom nature of AT makes it difficult to deliver inexpensively. Yet computers’ flexibility and exponentially increasing power have revolutionized and democratized access technologies. In addition, by studying access technology, we can gain valuable insights into the future of all user interface technology.

In this course we will focus on two primary domains for access technologies: Access to the world (first half of the class) and Access to computers (second half of class). Students will start the course by learning some basic physical computing capabilities so that they have the tools to build novel access technologies. We will focus on creating AT using sensors and actuators that can be controlled/sensed with a mobile device. The largest project in the class will be an open ended opportunity to explore access technology in more depth. 

Class will meet 9-10:20 M/W

Class Syllabus

Private Class Canvas Website

Tentative Schedule

Week 1 (10/2 ONLY): Introduction

  • 9/30 class canceled (Rosh Hashanah)
  • 10/2
    • Overview of accessibility and its relationship to computation
    • Overview of class.
    • Introduction to 3D printing
  • Solo Assignment: (examples of physical computing for Accessibility),  due to be presented in class on 10/9.
  • Volunteer Assignment (timing/etc. tentative, pending identified venues as a starting place for this): Spend time helping someone who uses an assistive technology with a problem they decide on; Write about what you learn (< 1 page). Due to Prof. Mankoff by 11/4

Week 2  (10/7; 10/9): 3D Printing & Laser Cutting

  • 10/7
    • Introduction to Fabrication and 3D modeling (we will focus on OpenSCAD)
    • Examples of the use of Fabrication technologies in Accessibility
    • In class: Create a model for your tag

Week 3 (10/14; 10/16): Physical Computing

  • Introduction to Arduino platform
  • Arduino + Mobile phones
  • Physical Computing and Accessibility

In class: Connect simple LED circuit to a phone

Pair Project: Build a Better Button (Due 10/23)

Week 4 (10/21; 10/23): Output

  • Braille displays
  • Alternative tactile displays
  • Vibration
  • Visual displays for the deaf
  • Ambient Displays & Calm Computing

Week 5 (10/28; 10/30): Input

  • Characterizing the performance of input devices
  • Digital techniques for adapting to user input capabilities
  • Voice control
  • Eye Gaze
  • Passively Sensed Information

Week 6 (11/4; 11/6): Disability Studies

  • Critical perspectives on disability, assistive technology, and how the two relate
  • Methodological discussion
  • Disability Studies reading due
  • Volunteer Activity due
  • Project Proposals for second half project (Details of requirements TBD)

Week 7 (11/13 ONLY): Applications

  • Exercise & Recreation
  • Navigation & Maps
  • Programming and Computation
  • Reflection on role of User Research in Successful AT

Week 8 (11/18; 11/20): The Web

Learn about “The Web,” how access technologies interact with the Web, and how to make accessible web pages.

Google Video on Practical Web Accessibility — this video provides a great overview of the Web and how to make web content accessible. Highly recommended as a supplement to what we will cover in class.

WebAim.org — WebAIM has long been a leader in providing information and tutorials on making the Web accessible. A great source where you can read about accessibility issues, making content accessible, etc.

Solo Assignment: Make An Accessible Web Page  (due for in-class grading on 11/18)

Week 9 (11/25; 11/27):  Screen Readers

  • Building screen reader (NVDA, … )
  • Building accessible app (work with screen reader)
  • Paradigms for Nonvisual Input
  • Advanced Issues:
    • Optical Character Recognition
    • Image Labeling
    • Image description
    • Audio Description for Video
  • Test each others’ accessible pages
  • Mid-project Reports (Requirements TBD)

Week 10 (12/2):  Other Computer Accessibility Challenges

  • Low Bandwidth Input
  • Reading Assistance
  • Mousing Assistance
  • Macros
  • Expert Tasks


Interesting topics to consider (e.g. from Jeff’s class)



  • Transcoding content to make it more accessible
  • Middleware

Assistive Technology

Instructor: Jennifer Mankoffjmankoff@cs.cmu.edu
Spring 2005

HCII, 3601 NSH, (W)+1 (412) 268-1295
Office hours: By Appointment & 1-2pm Thurs

Course Description

This class will focus on computer accessibility, including web and desktop computing, and research in the area of assistive technology.

The major learning goals from this course include:

  • Develop an understanding of the relationship between disability policy, the disability rights movement, and your role as a technologist. For example, we will discuss we will discuss the pros and cons and infrastructure involved in supporting mainstream computer applications rather than creating new ones from scratch.
  • Develop a skill set for basic design and evaluation of accessible web pages and desktop applications.
  • Develop familiarity with technologies and research relating to accessibility including a study of optimal font size and color for people with dyslexia, word-prediction aids, a blind-accessible drawing program,
  • Develop familiarity with assistive technologies that use computation to increase the accessibility of the world in general. Examples include memory aids, sign-language recognition, and so on.


Students will be expected to do service work with non-profits serving the local disabled community during one to two weekends of the start of the semester. This course has a project component, where students will design, implement, and test software for people with disabilities. Additionally, students will read and report on research papers pertinent to the domain.

Grading will be based on service work (10%); the project (60%); and class participation, including your reading summary and the lecture you lead (30%).

Other relevant documents

Course CalendarAssignmentsBibliography


Prerequisites for this class are: Familiarity with basic Human Computer Interaction material or consent of the instructor (for undergraduate students)

It is recommended that you contact the instructor if you are interested in taking this class.

Accessibility Seminar

The Accessibility Seminar (CSE 590W) is taught most quarters. This fall (2018), it will be taught at 2:30 on Wednesdays. The focus will be at the intersection of fabrication and assistive technology.

Past years in which I was involved

Receipt Printing Robot

This document is based on a draft curriculum to be used for the 2016 Fall Tech Club (at the Waldorf School of Pittsburgh). During this club, students will work together to create a robot that can print quotes out using a receipt printer when a button is pressed, and blink its eyes.

Learning GoalsMaterials needed; Setup; Curricular plan.

Learning Goals

The learning goals of this set of exercises include

  • Understanding the things that make up a computer (memory, processing, and so on)
  • How a computer interfaces with the world (by sensing, or actuation) and relating this to things like a keyboard and monitor that are used frequently
    • How to build hardware that can support sensing (specifically using a single button)
    • How to build hardware that can support actuation (specifically, blinking an LED)
  • How a computer can build on sensors and actuators to communicate
    • Morse code
    • Print statements
  • Programming
    • Primitive types such as integers and booleans
    • Arrays that contain text
    • Picking a random number
    • Conditionals
    • Possibly loops
  • 3D modeling for 3D printing
    • Basic constructive geometry
    • Dimensionality in the real world
    • Printability


Materials include example purchasing links.

Per student (or pair of students):

For the whole group:

  • Cardboard box for head
  • Table or other stand for robot
  • Cardboard box for submitting quotes
    • Pad of paper for writing quotes on
    • Pen to attach to everything
  • Materials for decorating robot (think straw man? Or tissue paper & glue? Or paint?)
    • Mod podge
    • Newspaper
    • Acrylic Paint [jen can bring]
  • Projector (for demonstrating programming to the class)


  • Make sure each Raspberry pi has a working OS and SD Card
    • At home
    • At school
  • Install the following libraries:
  • Prepare each SD card with source code

Curricular Plan

Week one:

Additional Materials Needed

Lesson Plan

Week 2

  • Continue work on circuit setup
  • Introduce the python programming environment on the Pi (which they will need to read input from the GPIO pins). Base code for controlling pins Get a working program that responds to a button press
  • Come up with a plan for decorating the robot

Week 3

  • Introduce Tinkercad
  • Work on Robot decoration project (physical world & regular world)
  • Programming
    • Introduce conditionals
    • Work on printing out a string if a button is pressed.
    • Possibly: Improve the button press program by adding de-bouncing

Week 4


  • Print Picture of LED circuit
  • Bring LEDs and Resistors, breakout boards, etc.
  • Bring printed versions of bookmarks/name tags that are finished


  • LED circuit tutorial
  • Programming
    • Introduce the concept of output to LEDs
    • Build a circuit that lights an LED up
    • Write a program that lights an LED up
    • Possibly: Work on a version of the circuit / program that has 2 LEDs instead of 1 (or more than 2 LEDs).
    • Possibly: Work on body parts
  • Further work on name tags/bookmarks

Week 5

  • Programming
    • Introduce concept of Morse code
    • Morse code picture guide
    • Write a program to flash whatever you want (doesn’t have to be morse code)
    • If students want to: Base code for displaying text using MORSE code
    • 3D modeling: Work on body parts
  • Others can work on other robotic decorations

Week 6

  • Assemble the robot
  • Catch up on programming tasks

Rapid Fabrication / Prototyping

Required Readings (videos for these and others found below)

Mueller, S., Im, S., Gurevich, S., Teibrich, A., Pfisterer, L., Guimbretière, F., & Baudisch, P. (2014, October). WirePrint: 3D printed previews for fast prototyping. In Proceedings of the 27th annual ACM symposium on User interface software and technology (pp. 273-280). ACM.

Interactive design space exploration and optimization for CAD models (ACM SIGGRAPH 2017) Adriana Schulz, Jie Xu, Bo Zhu, Changxi Zheng, Eitan Grinspun, and Wojciech Matusik.

Videos to flip through

Much of the work here is by Stefanie Mueller, Patrick Baudisch and others. I didn’t want to assign too many papers by the same group, but these videos are worth browsing! There are some other authors represented here too.



Coarse to fine fabrication of large objects:

TrussFab: making even larger objects

Patching physical objects:



On-the-fly printing while modeling:

What you sculpt is what you get:

Accommodating measurement error (no video)

Jeeeun Kim, Anhong Guo, Tom Yeh, Scott E Hudson, & Jennifer Mankoff. Understanding Uncertainty in Measurement and Accommodating its Impact in 3D Modeling and Printing, In Proceedings of ACM Conference on Designing Interactive Systems (DIS’17), Edinburgh, UK PDF



Pick one to read (or read both!)

  • Ion, A., Frohnhofen, J., Wall, L., Kovacs, R., Alistar, M., Lindsay, J., … & Baudisch, P. (2016, October). Metamaterial mechanisms. In Proceedings of the 29th Annual Symposium on User Interface Software and Technology (pp. 529-539). ACM.
  • Ion, A., Wall, L., Kovacs, R., & Baudisch, P. (2017, May). Digital Mechanical Metamaterials. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems (pp. 977-988). ACM.
  • Also read this: Vidimce, K., Kaspar, A., Wang, Y., & Matusik, W. (2016, October). Foundry: Hierarchical material design for multi-material fabrication. In Proceedings of the 29th Annual Symposium on User Interface Software and Technology (pp. 563-574). ACM.

Optional Additional neat stuff (note the publication venues — this is a hot topic)

Martínez, J., Dumas, J., & Lefebvre, S. (2016). Procedural voronoi foams for additive manufacturing. ACM Transactions on Graphics (TOG)35(4), 44.

Think hyper-local robots which make up a larger structure: McEvoy, M. A., & Correll, N. (2015). Materials that couple sensing, actuation, computation, and communicationScience347(6228), 1261689.

Very cool use of auxetic building blocks (these react differently to compression than normal): Babaee, S., Shim, J., Weaver, J. C., Chen, E. R., Patel, N., & Bertoldi, K. (2013). 3D Soft metamaterials with negative Poisson’s ratioAdvanced Materials25(36), 5044-5049.

Moving slightly from meta materials to micro structures, but still same basic domain:

Very light, stiff lattices: Zheng, X., Lee, H., Weisgraber, T. H., Shusteff, M., DeOtte, J., Duoss, E. B., … & Kucheyev, S. O. (2014). Ultralight, ultrastiff mechanical metamaterials. Science344(6190), 1373-1377.

Use for manipulating optics: Chanda, D., Shigeta, K., Gupta, S., Cain, T., Carlson, A., Mihi, A., … & Rogers, J. A. (2011). Large-area flexible 3D optical negative index metamaterial formed by nanotransfer printing. Nature nanotechnology6(7), 402-

Ladd, C., So, J. H., Muth, J., & Dickey, M. D. (2013). 3D printing of free standing liquid metal microstructuresAdvanced Materials25(36), 5081-5085.

3D Printing for Social Good Final Project

The goal of the final project assignment is to give you an opportunity both to become comfortable using a 3D printer and to think about novel research that can be done with the printer and begin defining and executing on such a problem. It is very open ended, and there is no single ‘right’ answer to what makes a successful projects.

This project is divided into three pieces.

1) The first is a proposal. This is an individual proposal. We will spend 3 minutes per proposal in class hearing your ideas, and you will turn in a brief description of them on Canvas.

  • Your proposal should involve some sort of fabrication, and be in one of the areas we have explored during class (including both application domains and advances such as printing with new materials). The rest is up to you, though I am happy to provide guidance.
  • It should be no more than one page long, including references (which are optional)
  • It should be organized as follows: Promise (what opportunity it creates); Obstacle (why is it currently not possible); Solution (what you will do).

2) The second is team formation. Each of you will be asked to assign a points to every proposal indicating your interest in it.  You have 20 votes, and may apply up to four for any one project. You may not vote for your own project. Approximately 5 of the projects will be selected as starting points, allowing teams of 3-4 students to be assigned based on approximate best match. Swaps will be allowed with permission of the instructor, once both teams agree.

3) The final project should include a two page report and a final presentation. The presentation should include a prototype (fabricated), discuss the promise, obstacle, and explain your solution process.

3D Printing in a Range of Materials


Soft Objects:

Printing Teddy Bears: A Technique for 3D Printing of Soft Interactive Objects (ACM CHI 2014), Scott E. Hudson 

Carbon Fiber at scale:

(watch through about 2:30, and then from about 5:15 onward. 6:30 explains the process)

Food: (just watch the videos)


Printflatables: Printing Human-Scale, Functional and Dynamic Inflatable Objects (ACM CHI 2017) Harpreet Sareen, Udayan Umapathi, Patrick Shin, Yasuaki Kakehi, Jifei Ou, Pattie Maes, Hiroshi Ishii. 

Optional others: 

1 printer, many materials

xPrint: A Modularized Liquid Printer for Smart Materials Deposition (ACM CHI 2016) 
Guanyun Wang, Lining Yao, Wen Wang, Jifei Ou, Chin-Yi Cheng, and Hiroshi Ishii 

Sitthi-Amorn, P., Ramos, J. E., Wangy, Y., Kwan, J., Lan, J., Wang, W., & Matusik, W. (2015). MultiFab: a machine vision assisted platform for multi-material 3D printing. ACM Transactions on Graphics (TOG), 34(4), 129.

Vidimče, K., Wang, S. P., Ragan-Kelley, J., & Matusik, W. (2013). OpenFab: a programmable pipeline for multi-material fabrication. ACM Transactions on Graphics (TOG)32(4), 136.


A 3D printer for interactive electromagnetic devicesHuaishu Peng, François Guimbretière, James McCann, and Scott Hudson 


Igarashi, Yuki, Takeo Igarashi, and Hiromasa Suzuki. “Knitty: 3D Modeling of Knitted Animals with a Production Assistant Interface.” In Eurographics (Short Papers), pp. 17-20. 2008.

Igarashi, Y., & Igarashi, T. (2009). Designing plush toys with a computerCommunications of the ACM52(12), 81-88.

A Compiler for 3D Machine Knitting


A Layered Fabric 3D Printer for Soft Interactive Objects (ACM CHI 2015) 
Huaishu Peng, Jennifer Mankoff, Scott E. Hudson, and James McCann 

DressUp: a 3D interface for clothing design with a physical mannequin (ACM TEI 2012) 
Amy Wibowo, Daisuke Sakamoto, Jun Mitani, and Takeo Igarashi 

and The Hybrid Bricolage: Bridging Parametric Design with Craft through Algorithmic Modularity (ACM CHI 2016) Tamara Anna Efrat, Moran Mizrahi, and Amit Zoran:


Wooden Furniture:

Design and fabrication by example (ACM SIGGRAPH 2014) 
Adriana Schulz, Ariel Shamir, David I. W. Levin, Pitchaya Sitthi-amorn, and Wojciech Matusik 

Fabrication-aware Design with Intersecting Planar Pieces (EUROGRAPHICS 2013) 
Yuliy Schwartzburg, and Mark Pauly

SketchChair: an all-in-one chair design system for end users (ACM TEI 2011) 
Greg Saul, Manfred Lau, Jun Mitani, and Takeo Igarashi