by Carlos Castellanos

BodyDaemon is a bio-responsive Internet server. Readings taken from a participant's physical states, as measured by custom biofeedback sensors, are used to power and configure a fully-functional Internet server. For example, more or fewer socket connections are made available based on heart rate, changes in galvanic skin response (GSR) can abruptly close sockets, and muscle movements (EMG) can send data to the client. Other feature's such as logging can be turned on or off depending on a combination of factors. BodyDaemon also includes a client application that makes requests to the BodyDaemon server. The client requests and server responses are sent over a "persistent" or open socket. The client can thus use the data to continuously visualize, sonify or otherwise render the live bio-data. This project is part of larger investigations focusing on the development of protocols for the transfer of live physiological and biological information across the Internet.

BodyDaemon represents the early stages of investigations into the viability of systems that alter their states based off of a person's changing physiological states and intentions - with the ultimate goal of accommodating the development of emergent states of mutual influence between human and machine in a networked ecosystem.


BodyDaemon will be exhibited at ZeroOne/ISEA2006 this summer.



The BodyDaemon System

Except for the biofeedback sensors, BodyDaemon follows a standard client/server model. The system consists of four different custom bio-sensors connected to a microcontroller. These include a heart rate monitor, a respiration sensor, a galvanic skin response sensor and a muscle (EMG) sensor. The signals from these sensors are then sent to the microcontroller which is connected to a desktop computer running the BodyDaemon server. The server itself is essentially an XML socket server. Messges between client and server take the form of XML streams over an open socket. The BodyDaemon server (as the name implies) runs as a daemon process, waiting for the appropriate conditions in which to spawn. In this case the "appropriate conditions" are signals from the participant's body. When these signals collectively reach the right level, the server comes to life, ready to accept requests.

Once the server is running, it is partly configured by the participant's physiological readings. For example the higher the heart rate, the more simultaneous socket's the client can accept, the higher the skin conductance, the lower the socket timeout (in fact sudden surges in skin conductance levels will take the socket timeout to nearly zero, effectively closing down the server for any potential new client connections). If the overall levels fall below what is considered the "appropriate conditions" the server will close all current connections and shut down. It will then return to waiting for the right conditions in which to spawn again.


Basic System Diagram

basic system diagram


While not strictly necessary, a client application is included with BodyDaemon to visualize and sonify the server's/body's status. Note that this is just one of many possible renderings of the data coming from the server. Anyone is free and indeed encouraged to make BodyDaemon clients. Think of the BodyDaemon server as sort of like a packet sniffer for bio-data. It just outputs data. To actually see or hear something interesting you need client software. The particular client I am building is a sort of "demo" client.


BodyDaemon Protocol
BodyDaemon establishes a protocol for the transmission and retrieval of bio/server data from bio-responsive servers across the Internet. It takes the form of an XML schema which defines bodydml, or the BodyDaemon Markup Language.


Below are images and video of BodyDaemon exhibition from the SJSU White Gallery, featuring clients by Aaron Siegel, John Bruneau and Carlos Castellanos (the sound client) 


Aaron Siegel's client Aaron Siegel's client
Aaron Siegel's client
John Bruneau's client John Bruneau's client
John Bruneau's client
strapped in server data
The artist "strapped in"
Server data
Video of exhibition (.mov, 6.3 MB)



For more information on this project visit the following web sites:,

John Bruneau's client

Aaron Siegel's client