Dia, a diagram creation program

Here is a great open source program to make good quality diagrams. I have used this a lot for university reports. The software allows you to create flowcharts but also technical diagrams. It comes with a load of preconfigured shapes and symbols ranging from electronics to civil engineering. There are a couple of ways to export the diagram to another document (eps, svg, png, jpeg, etc.) which is very convenient.

There are versions available for al major operating systems.

Dia website.

Screenshot of the Dia interface

Posted in Open source | Tagged , , | 2 Comments

Hugin panorama stitcher

For all the people that like panoramic photographs, here is a really good open source photo stitcher: Hugin panorama stitcher

Using this software and maybe ten minutes I produced the following panorama from photos I took with my phone!

Panorama of the Tay estuary near Dundee (Scotland) stitched with Hugin

Posted in Open source | Tagged , , | 1 Comment

Another time lapse

This is another time lapse I made with the same set up as before. Only now the camera is stationary on a tripod. I did some colour correction in Blender, but I’m still figuring out how to get the best results. Nodes or just the effects in the sequencer?

Posted in Arduino | Tagged , , , | Leave a comment

Lego dolly time lapse

A couple of days ago I made a short time lapse video.
I used a Nikon D80 camera with 18mm zoom lens and an Arduino for the timing and displacement work. On Nikon cameras it’s really easy to remote control them with a wire or ir signals.

Here are some pictures I took of the contraption.

Lego pull mechanism with camera cart in the background

Some technical Lego came in handy as a camera cart and pull mechanism. To get a reliable and constant displacement there is a transmission that slows the movement of motor. A tiny thread is wound round the final axis. This thread pulls the cart and camera a small distance before each photo is taken.

Overview of the Lego/Arduino camera trigger & displacement

The motor is powered by a power adapter delivering approximately 4V. A transistor switches the load on and off.

Close up of the breadboard and components.

A small ir-led is wired up to trigger the camera via the Nikon remote protocol.

On Lucky Larry there is some useful code I used for the ir triggering.
To this code I added some functions for a displacement motor so you can do tracking shots.
Here is the Arduino code:

LUCKYLARRY.CO.UK - IR Remote control for Nikon using Arduino
Mimics the infrared signal to trigger the remote for any Nikon camera
which can use the ML-L1 and ML-L3 remotes. Can be used as an intervalometer
for time lapse photography.
The IR sequence I used is originally taken from: http://www.bigmike.it/ircontrol/
You should be able to use my pulse methods to alter to suit other cameras/ hardware.
micros() is an Arduino function that calls the time in Microseconds since your program
first ran. Arduino doesn't reliably work with microseconds so we work our timings by
taking the current reading and then adding our delay on to the end of it rather than rely
on the in built timer.
Added displacement function to make tracking shots possible. There is also an option
to trigger the camera with serial input from the computer
int pinIRLED = 13; // assign the Infrared emitter/ diode to pin 13
int motorpin = 12;
int motoron = 1000; //ms
int photodelay = 20000; //ms
int movementdelay = 1000; //ms
boolean serial = 0; // choose 1 if you want to trigger the photo with the serial interface.

void setup() {
pinMode(pinIRLED, OUTPUT); // set the pin as an output
pinMode(motorpin, OUTPUT);
if (serial){Serial.begin(9600);}
// sets the pulse of the IR signal.
void pulseON(int pulseTime) {
unsigned long endPulse = micros() + pulseTime; // create the microseconds to pulse for
while( micros() < endPulse) {
digitalWrite(pinIRLED, HIGH); // turn IR on
delayMicroseconds(13); // half the clock cycle for 38Khz (26.32×10-6s) - e.g. the 'on' part of our wave
digitalWrite(pinIRLED, LOW); // turn IR off
delayMicroseconds(13); // delay for the other half of the cycle to generate wave/ oscillation
void pulseOFF(unsigned long startDelay) {
unsigned long endDelay = micros() + startDelay; // create the microseconds to delay for
while(micros() < endDelay);
void takePicture() {
for (int i=0; i < 2; i++) {
pulseON(2000); // pulse for 2000 uS (Microseconds)
pulseOFF(27850); // turn pulse off for 27850 us
pulseON(390); // and so on
} // loop the signal twice.

// Turn the motor for "motoron" milliseconds
void displace(){
digitalWrite(motorpin, HIGH);
digitalWrite(motorpin, LOW);

void loop() {
//check if serial triggering is on
if (Serial.read() != -1) {
//Auto triggering: first runs the motor, then waits for the motor/movement to stop,
// and then takes a picture and sits out the interval.

Things that can be improved:
- Make a camera cart with less friction.
- Use a thread which doesn’t stretch. With this thread a displacement step can stretch the thread instead of moving the cart.
- Solder all the electronic connections for improved reliability.
- Install a flyback diode to prevent voltages from building up due to motor movement.

This is the final result:

It’s interesting how the lower clouds flow in a different direction then the higher clouds.

Now I have to find an interesting time lapse subject!

Posted in Arduino | Tagged , , | 2 Comments

Citroën ds

This week I decided to try to model a car from 2d blueprints.
I tried to model a SR-71 spy-plane before and got reasonable results. So I tried to model the DS. The Citroën DS is according to some the most beautiful car ever made.
I succeeded in getting the basic shape of the car, but the different shapes and lines in the more detailed design of the car were really difficult to get right. Especially the combination of high and low topology areas have proven to be complex.
Here is the first render of the model. Unfortunately I had not enough time to model the headlights and details of the car properly.

Basic shape of an Citroën DS

Citroën DS basic model rearview

In this render you can see the lighting setup which is used to create the highlights on the car paint. It is a combination of light emitting planes and area lamps (to fill the shadows) along the length of the model. This setup was inspired by the car modelling/rendering tutorial on http://www.blendercookie.com).
Hopefully I can find more time to improve the result, because the car is barely recognisable due to the lacking features. Especially the nose, bonnet, bumper, and convex shapes leading to the headlights make the car recognisable. So I will try to put more work in those items.

Posted in 3D | Tagged , , , | Leave a comment

Model with greenroofs and wadis

Past few months I have been busy with my bachelor thesis research on alternative forms of storm water catchment.
Now that the most work is done I have time again to make some renders for my presentation.
Below are two of the final renders I made using blender 2.57.

Render of some houses with a wadi filled with water.

Storm water is drained from the roofs directly on the ground. From here the water flows into the catchment.

Vegetation on the flat roofs

On the flat roofs there is plenty space to store water. The water storage is combined with a vegetation layer, or green roof.

Open street with a separate sewer system

The storm water pipes in this picture are colored blue, and the sewage pipes are brown.

Posted in 3D | Leave a comment

Work in progress

This weekend I’ve been working on a small model of some houses and a street. The goal of this project is to make an animation of rain causing flooding in the urban watersystem.


Small street model

I have to work on the textures, models and add raindrops!

I tried the brick pattern in the texture nodes, it looks ok, but also forms strange patterns (between the houses).

Update 20-03-2011:

I added some photographic textures from http://www.mega-tex.nl/. This works better and produces no strange patterns like the build-in bricks pattern. I used the same texture to produce a bumpmap wich works well.

Working on the textures

Posted in 3D | Leave a comment