working on numuseum

After a long time I’ve taken up the numuseum website. It’s been nagging me for ages that it’s so outdated and not working properly any more. I’m keeping it simple but will be implementing some new things.

designI want to create a now part (“nu” means now in Dutch) and a museum part. Now always shows the most recent data. I’ll start of with a picture of the sky with time and location data. I will overlay that with personal data like mood and heart rate. The museum part will show the now part history in some interactive way.

I’ve found a cute, free font Jaapokki Regular that I’ll be using for the website.

The menu at the bottom gives access to the archive of net-art pieces, an about and contact page.

I’ve already started coding the sky part. I use a very neat FTP app (AndFTP) to send the sky pictures to the server. A PHP script sorts the pictures (most recent first) and grabs the date-time and locations data (from EXIF headers).


sleepGalaxy: kick off

Finally, I’ve started to work on a piece that’s been on my mind for almost two years. Ever since I met the nice people from Emfit at the Quantified Self conference. They kindly gave me their sensor in return for an artwork I would make with it.

Emfit QS

Emfit QS sleep sensor

You put the sensor in your bed, go to sleep and it wirelessly sends all kinds of physiological data to their servers: movement, heart rate, breath rate. All this data together they use to calculate the different sleep stages. From the heart rate they’ve recently started calculating HRV and recovery. This latter value to me is best indicator of my sleep quality and how energetic I feel.
Emfit offers a nice interface to explore the data and view trends.

In sleepGalaxy I want to explore the relationship between sleep quality and the following variables: exercise, social and work meetings, calorie and alcohol intake, screen time and overall happiness and stress during the day. I’m under the impression that these have the most impact on my sleep, that is, the sleep phases, the ability to stay asleep and recovery.

Google form

Google form

To track the variables I’ve created a Google form that I fill in every night before I go to sleep. I’ve set an alarm on my iPad so I don’t forget.

Excel sheet with some of the Emfit data

Excel sheet with some of the Emfit data


First circle visualisation

From all the Emfit data I’ll be using a subset. My first sketches focus on the sleep phases. I’ve spend a couple of hours programming first the basic idea: transforming the sleep phases into concentric circles. Going from awake to light sleep, REM sleep and deep sleep in the centre.

The next step was to make sure the different phases are displayed correctly, representing the amount of time spend in each phase and total time in bed. I’m programming in Processing and I’ve created an class called Night. After reading in the Emfit excel data as a csv file I loop through the rows and create a night object representing every night.
Displaying the circles went fine but the proportions between the circles just didn’t look right. I realised I had a conflict working with minutes in a decimal context. I wrote a little function that converts the minutes of the hours into decimal values and then adds them to the whole hours:
float min2dig(String time){
String[] tmp = split(time,'.');
float t = float(tmp[0])+(float(tmp[1])/60);
return t;

Now the basis of the visualisation is ready. The image below displays sleep phases of the four nights in the excel data from above. I look forward to adding more data. To be continued…

Virtual View: programming animation

I’m still working hard on my animation. It’s going a bit slower then anticipated (what else is new) but I’m confident that I’ll have a nice, representative animation finished for the experiment. As an inventory, these are the elements that I want in the testing (and probably) final landscape: horizon with hills, sky, water body, shoreline, trees on the hills. And the animation elements: clouds, individual birds and flocks of birds, butterfly, bee, leafs blowing, ripples on the water. Forces I’m working with now are wind and gravity but I might include some more to make for example the water ripples move naturally.
So far I’ve build the look and feel of the landscape, tweaking it a little here and there as I go along. I’m very happy with the clouds. They consists of a lot of circles positioned using the Perlin noise algorithm. I’ve got big ones at the top and smaller ones a bit lower.

Some frames of clouds moving

Some frames of clouds moving

I’ve brought down the number of hills visible as I think too many lines make a chaotic landscape which gives a restless feeling. The gradients for the sky and the water surface are the same, that just is more logical.
I’ve also included a shoreline to account for the appearance of the blossom leafs and butterflies.
I finally managed to give the blowing pink blossom leafs a natural look. It was quiet a challenge to make them rotate and move in the joyful and fascinating way leafs do.

Some frames of blossom animation

Some frames of blossom animation

Next step will be to continue with the water ripple animation and the birds. Finally I will be working on the trees on the hills. All elements will be kept as simple as possible. The movement tell most of the story not the resemblance.

At this moment I can start animation elements at will. Which is nice for constructing a story. I can use it for the experiments with the prototype as well to test the effect of certain animating elements. But eventually the animations should start depending on heart-rate variables. That’s what I’ll have to find out when experimenting with the prototype.

Exit Pys60 enter Java

I’ve picked up AQAb again after a long break. The first thing I have to solve is the data communication between the Arduino and the phone. Unfortunately I just can’t get Python to work on my mobile. That is, the Bluetooth functionality keeps giving the error 13, permission denied. I’m just fed up with it. It’s a shame because I’d already advanced quite a bit. But other people on the forum complain of the same error. And apparently Pys60 is as good as dead.

hello world, hello Java ME

hello world, hello Java ME

I’ve been wanting to get into Java for a long time and this is a good excuse. I do have to start from the bottom. But I’ve made my Hello world app so that’s a good start. I think eventually Java will be a much more stable platform to develop in.