Tangible Programming (work-in-progress)

We are surrounded by an increasing number of smart and networked devices. Today much of this technology is enjoyed by gadget enthusiasts and early adaptors, but in the foreseeable future many people will become dependent on smart devices and Internet of Things (IoT) applications, desired or not. To support people with various levels of computer skills in mastering smart appliances as found, e.g., in smart homes, we propose 'Tangible Programming' for connecting networked devices. Our work can be regarded as a playful ‘experiment’ towards democratizing IoT technology. It enables the users to define or ‘program’ (wirelessly) connected objects. While this approach allows powerful physical and interactive applications, no professional skills are needed since 'tangible-programs' are defined by recording sequences of tangible interactions

1. Motivation of Tangible Programming:

  • Tangible Programming was created to allow users (with little computer skills) to understand and configure applications relating to the Internet of Things.
  • Tangible Programming was created as a (participatory) design method to empower end-users to engage in the modification, extension and creation of interactive applications able to support access to networks of objects and modify how they are connected.
  • Tangible Programming was created as an educational tool for kids and adults who want to learn about smart and connected things.

2. Tangible Programming principal concept:

By now, we have created two versions of Tangible Programming. We named the first version Thingy Oriented Programming (TOP) and the latest one the Magic Paradigm.

TOP was conceived as a tool for programming simple tangible-based interactions, for example, as found in Internet of Things applications. Its underlying concept is to connect actions with reactions in analogy to recording macros in software packages such as Microsoft Excel. That is, the user records a procedure or sequence of interactions by setting the system into record mode and triggering all events that should be part of the procedure manually. Later, in play mode, the record of this procedure can be replicated automatically. This enables the user, for example, to associate the triggering of a pushbutton with the buzzing of a noise generator. Please note the video below that we created to aid the readers' understanding of the concept.

Video with early concept prototype for Thingy Oriented Programming (TOP)


The Magic Paradigm, which is the second version of Tangible Programming that we created, explores a slightly different direction in programming networked devices. The idea of the Magic Paradigm is to connect or program smart networks of sensors and actors by simple pointing gestures. For example, to program a light to be switched on, the user first points at the swicth and then at the light with a smart 'magic wand' in his or her hand. That's all it takes to create this kind of tangible computer program. The below video shows the concept in action.

Demo video of the Magic Paradigm



  • Güldenpfennig, F., Dudo, D., & Purgathofer, P. (2016) Toward Thingy Oriented Programming: Recording Macros with Tangibles. Work-in-progress Paper accepted for TEI'16. PDF.
  • Güldenpfennig, F., Dudo, D., & Purgathofer, P. (2019). The 'Magic Paradigm' for Programming Smart Connected Devices. To appear at Conference on Human Factors in Computing Systems (CHI'19). PDFPOSTER.