SenseNet

The SenseNet is a system for collaboration among interactive artworks. The system is based upon the core idea expressed by the three words: sense / transform / express. The SenseNet is based upon UDP and ethernet networking and requires modest resources. The net allows the sharing of sense experience amoung a group of interconnected peers.

Sense / Transform / Express
SenseNet: Implementation
Using SenseNet
SenseNet: Requirements
SenseNet Internet Bridge

Sense / Transform / Express

The flow of information in an interactive artwork can be modeled by the phrase sense / transform / express. The artwork gathers information from the outside world using various types of sensors (like video cameras, motion detectors, thermometers, etc) and transforms this raw information (with a computer perhaps) so that in turn it can, in some way, be expressed (the turning on/off of video monitors, the playing of music, etc). By defining boundaries between these stages it becomes possible for one artwork to share the sense information it gathers with other artworks. The Sense Net allows the sharing of information at the sense/transform and transform/express boundaries.

SenseNet: Implementation

The SenseNet protocol requires that all sense types be assigned an ID (there are 65000 possible IDs) and that the values for those senses be expressable by a 32 bit number.

ID # Description Value Meaning
01 temperature 32 bit value interpreted as signed fixed point
with 3 decimals, value in degrees celcius
02 sound volume 32 bit value interpreted as signed fixed point
with 3 decimals, value in decibles
03 sound direction 32 bit value interpreted as unsigned fixed point
with 3 decimals, value in degrees, 0 = north
... ... ...
1025 people in room 32 bit value interpreted as unsigned integer
etc

Each packet of sense information consists of a two byte ID and a four byte value. A large number of sense types can be defined and made a standard. The first 1024 IDs could be reserved as standard IDs leaving the remainder as event specific IDs.

Using SenseNet

The SenseNet protocol consists of a few simple functions. The primary two functions are GetNextMessage() and SendMessage(). The SenseNet software takes care of buffering incoming messages, allowing the controller software to perform other tasks. The use of UDP alleviates the need for a joining or leaving mechanism; the use of ethernet handles packet collision and machine addressing. The standard use of SenseNet would consist of the following program flow:

        //initize the net
        SnInit();
        
        //local variable 
        SnPacket aPacket;

        //loop forever
        while( TRUE )
        {
                //do some stuff
                ...
                
                //look for sense net messages
                while( SnMessageWaiting() )
                {
                        aPacket = SnGetNextMessage();
                        if(aPacket.senseID == ID_I_LIKE)
                        {
                                //do something
                                ...
                        }
                }

                //do stuff
                ...

                //send some packets
                aPacket.senseID = ID_I_SEND;
                aPacket.senseValue = VALUE_FROM_SENSORS();
                SnSendMessage(aPacket);
        }

SenseNet: System Requirements

The SenseNet requies a modest operating system that is capable of processes or threads. For embedded systems there are a number of small operating systems that can provide this. A number of PC/104 systems use a realtime extension to DOS which is simple. The Katix operating system might be useful. There are numerious other (non-free) examples. For PC class computers, it will be simple to port the SenseNet software to WindowsNT/Windows95, Linux and other unixes, BE OS, OS/2 and Rhapsody. Porting to Windows3.1 and Mac OS will be more work (because they do not provide pre-emtive multitasking).

SenseNet Internet Bridge


The SenseNet Internet Bridge is a program that allows two SenseNet networks to be connected across the Internet, sharing sense information.