Ambient Programming

We are witnessing an explosion in the number and variety of computers we interact with. Some of these are wearable and others are embedded into our everyday spaces. Currently, programming these devices means bringing your computational pendant, electronic shirt, or toy robot to the computer, connecting it, and writing code in a highly structured, abstract, sedentary, and time-intensive manner. By contrast, the notion of ambient programming reconceives the practice of programming (at least partially) as informal, opportunistic, physically active, and playful.

Ambient computing suggests that we should be able to do some exciting things with tiny computational artifacts:

As currently defined, my idea of ambient programming places a greater emphasis on the interweaving of abstract coding with tangible materials and construction. Here are some prototype systems that exemplify the goals and style of ambient programming:


Code road

This project explores a way to integrate programming with tangible construction. One writes programs by spreading out specially-encoded cards on the floor.

As the robotic car moves over the cards, it reads and carries out the instructions on the card: turn left, turn right, beep if it sees bright light, etc.

  movie showing lego robot car reading barcodes on floor




These pages have been designed to be accessible from desktop, handheld, and audio computers.

This material is based upon work supported by the National Science Foundation under Grant Nos. EIA-0326054 and REC0125363. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).


Craft Technology Group    Publications    Research    Prior work: interweaving computation and craft