ACCORD, IST-2000-26364

Home

Background

Objectives

Work Plan

Participants

Patterns

Technical Taxonomy

Toolkit

Contact Information

Publications

Transformers

The conceptual model of the developed Tangible Toolbox is services composed of components. These components are seen as three different kinds of transformers, two that either transform physical properties to digital data or vice versa and the third kind that takes some digital data and transforms into another form of digital data. These are the fundamental building blocks of the Tangible Toolbox.

The fundamental aim of components in our arrangement is to ensure the convergence of the physical and the digital environment. Thus each component can be though of as a digital/physical transformer that provides a conduit between the real and the digital. Each component has a set of properties that it uses to make information digitally available. The values of these properties are shared through a distributed data space. The data space is dynamic and reacts to changes in the values of properties; propagating these changes to all the components that share these properties. There are three main classes of components.

Physical to Digital Transformers take physical effects and transform them into digital effects. Any particular device may make use of a number of transformers. Essentially each transformer measures a physical effect and transforms it into a corresponding digital property that is shared through the data space.

Digital to Physical Transformers represent the complement set of transformers. Their job is to make digital information physically manifest in the real world. This class of components transforms the values of shared properties to drive some sort of physical device.

Digital Transformers act upon digital information and effect digital information. This class of components provides a way to present to users deeper semantic reactions to changes in the environment.

Let us illustrate some of the components developed to date using the Puzzle Editor where each transformer is represented as a puzzle piece. However, it is worth stressing that components are available to all editors and can be seen and assembled through these different editors.

Depending on the purpose of a specific transformer, each puzzle piece has different numbers of ingoing and outgoing connections, and therefore a different shape. The transformers listed below have all been tested and demonstrated in a mock-up apartment at a SICS lab. Most of them are grouped according to a example scenarios, which hopefully helps in explaining their functionality.

GroceryAlarm
GroceryAlarm generates names of missing groceries in the cupboard. It detects groceries moving in and out and if one is away more than 30 seconds it is said to be out.

AddToList
AddToList takes an element string and adds it to the list it publishes into the data space.

SMSSend
SMSSend takes a message string and sends this as SMS to the phone number supplied as an input string

Scenario 1: Grocery item is missing from a kitchen cupboard for some time.
Using the pieces above, GroceryAlarm is connected to AddToList, so that the missing item is added to a list. GroceryAlarm reports the missing item after a certain time interval. AddToList is then connected to SMSSend, so that the list is sent via SMS to a mobile phone.

TableCommands
Reads physical "shaker" objects and generates corresponding commands, such as NEXT, PREVIOUS etc

News
News takes a news command string and a profile string, and outputs a new URL to a new news web page.

KitchenTableDisplay
KitchenTableDisplay controls a web browser via a set of commands and can also display web pages by giving the URL to it.

Scenario 2: news articles on the web can be read using phicons we call ‘shakers’ (since they are handled like salt and pepper shakers).
Connecting the pieces above, the TableCommands receives commands (e.g. “Next”, “Previous”) from the physical interaction objects (shakers) and controls the news service, which in turn is displayed on a kitchen table display.

MailReceive
MailReceive takes a mail preference string as input and outputs "To", "from", "subject", and "body" strings of new incoming emails.

MailToBubbles
MailToBubbles listens to email "To" and "Subject" string properties and for each change the new values are converted to a BubbleTower command string.

SICSWebHits
SICSWebHits connects to a server checking the web log running on the web server, which sends configurable strings for every web access.

WebHitsToBubbles
WebHitsToBubbles listens to a web log string property and each time it is changed the new value is converted to a BubbleTower command string.

BubbleTower
BubbleTower listens for a bubble command change and sends to a micro controller controlling bubble tower.

Scenario 3: Web server hits or incoming email are presented through an ambient display - a bubble tower. Coloured lights and bubble burst sizes give extra information.
A server application connected to SICSWebHits, on a web server watches the web access log and reports these to the data space. WebHitsToBubbles processes the web server access info and generates commands for the bubble tower, which are connected to BubbleTower. In a similar fashion, MailReceive is connects to MailToBubbles, which in turn is connected to BubbleTower.

Reminder
Reminder presents a reminder input GUI, manages the reminder alarms, and publishes reminders as URLs when reminder is due.

Scenario 4: A Reminder application lets the user enter textual or auditory reminders using a touch display and microphone. This can be connected to a display with speakers, sent to a mobile, etc.
The Reminder piece can be connected to the KitchenTableDisplay or SMSSend.

SMSReceive
SMSReceive publishes phone number and message of last received SMS.

Speech
Speech converts a text string into speech.

TextToWeb
TextToWeb converts a text string into an HTML file and outputs the URL to it.

WebToText
WebToText converts the content of a URL into raw text.