# Bop!

## Making Sense of Space

The Bop! project (an easier to pronounce version of “BAEWP”, Building Awareness for Enhanced Workplace Performance, the original name for the project) uses ubiquitous computing devices to instrument creative workplaces in order to study how they are used and suggest ways in which they might be improved.

The data from these ubiquitous computing devices is fed to a central database where it can be analysed and space usage information obtained. The monitoring devices chosen were designed such that it would be impossible to identify individuals in a given space so that people would not feel that a “big brother” was watching over them.

This is a DTI-funded project in collaboration with Central Saint Martins College of Art & Design, Arup and others.

## Ubiquitous Computing Platforms

Beasties
  Beasties are a robust wireless sensor node developed at Imperial. The Beasties ran two different types of sensor: a ultrasound/neural net based activity monitor and a thermal imager based people counter.

Crossbow Motes
  Recording environmental information.
Arduino
  Ran polls and a “vote with your feet” application.

## Software

Beasties are programmed using the Tesseræ system. This is a set of tools to allow the building of component-based programs. Components are written in standard languages (at the moment C is supported) with extensions to deal with interface calls and then linked together using the architectural description language Tesseræ.

Components are self-contained blocks of code that communicate with other components via interfaces, essentially bi-directional lists of function calls. If a component provides or uses an interface then it must implement all of the functions or events required by that interface. This means that any pair of interfaces of the same type on any components can be linked together.

The organisation of components can be changed at run time. This makes the writing of software for adaptive devices easier since components can be written to do a single job only and then be switched around by the component system at runtime rather than having to clutter the program code with lots of if/then statements to deal with all the different ways in which the device can adapt.

Components allow for easy abstraction of hardware. Hardware functions can be wrapped in components with standard interfaces. When software is ported from one platform to another only the hardware abstraction components need to be changed. The component compiler will inline code when compiling to avoid multiple function call inefficiencies.

Tesseræ home page.

## Links

External project website (requires Flash).

### Project Members at Imperial

Julie McCann
Asher Hoskins
Vlassios Rizopoulos

### Internal Only

Basecamp.
List of deadlines.