From Cambridge to Gatwick : what can go wrong.

March 17th, 2010

Last Sunday I was coming back to Copenhagen from my trip to London. Because I was staying with my friend in Cambridge and I already booked return flight from Gatwick airport I had a long way to go. Based on my previous trips I estimated that I will take me about 3-3.5 hours. How wrong I was… Every posible mode of transport I took was delayed, slower than usual or not working at all this day. It was ridiculous. So much that I decided to create this infographics explaining what happened so I will remember it in the future…

Click on the image to see the full res version.

cambridge_gatwick06

ProjectedQuads source code

January 31st, 2010

ProjectedQuads
On request from several people I decided to finally release source code of my projection mapping projects. I wanted to make a Processing library from it anyway at some point but I delayed it so many times that it might never happen.

Features

- unlimited number of quads
- support for static images and dynamic generative animations
- loading and saving configuration to a text file

Download

ProjectedQuadsTest.zip [7kb]

How to use it?

Let’s say we want to display an image with perspective correction. First declare variables for our image and quad that will display it.

PImage img;
ProjectedQuads projectedQuads;

Then in setup() function load the image, create projectedQuads object, set number of quads and assign textures to them.

void setup() {
img = loadImage("checker.png");
projectedQuads = new ProjectedQuads();
projectedQuads->setNumQuads(1);
projectedQuads.getQuad(0).setTexture(img);
}

All we have to do in draw() function is just call projectedQuads.draw();

void draw() {
projectedQuads.draw();
}

Run the sketch and adjust corners of the quad using mouse or keyboard. Attached example source code explains how to use more quads and display dynamic graphic generated in processing.

Some other projects that I use this code for:

- “3xI” reactive projection mapping during Vivisesja festival. Read more about it on my blog.

3xI

- During Shiftcontrol’s end of they year meeting I did small projections to add some life to the globetrotters pub where it took place.

Projection mapping in 3d

December 9th, 2009

Encouraged by previous results I decided to try to play more. This time in 3D. By 3D I mean projecting on the object in such a way that it looks like you are actually projecting from different sides of it.

2D in 3D – Lets say we want to project a rectangle on one of the sides of a cube. It’s easy when the projector is exactly in front of the target side.

projectin2Din3Da

If not then we will quickly observe a keystone effect. Simply speaking the image will be distorted.

projectin2Din3Db

How to overcome that? We just have to project image that looks like the projector ’sees’ it.

projectin2Din3Dc

Ok. So now we know the theory let’s talk about how to apply it in practice. All I need is some way to distort an image so it looks like a ‘viewed from the side’. There is a Processing library for that, vvvv patch, or even specialized app called VPT (video projection tools) . Non of them allowed me to program my own visuals on arbitrary number of surfaces (and vvvv is Windows only..). So I made my own Processing sketch which for defined number of rectangles displays handles in each corner that can be dragged around to match target geometry.

corner pin mapping

Corner – As a first victim or my new projection I have chosen a corner in our studio.

Cube – After some time I noticed an empty box lying on a desk… guess what I did..

3D in 3D – is projecting 3D graphics on a 3D object. While it can be done it’s quite limited. The problem is that it looks good from only one point of view. As you can see on the image below in case ‘a’ when we are standing in front of the projected surface everything looks good. We can get the feeling of depth and so on. But immediately once we start moving more to the left or right and viewing angle increases the image becomes more and more flat – case ‘b’. The last case ‘c’ shows what would we expect

fake3d

I had one attempt to display something 3D but it wasn’t very successful to I decided to spend my time tweaking my 2D code.

IMG_0385_3d_in_3d

More examples? Look here or here.

Projection mapping in the office

December 5th, 2009

Projection mapping is making projections in a way that they match the surface they are projected on. This way we can use projector for something much more interesting than flat powerpoint presentation like VJ projections. As I was invited for vivisesja this year I decided to play a bit with Processing and see what I can do during two weekends.

2D in 2D – This is how I call projecting 2D graphics on flat (or almost flat) surface. We have some cool pipes going across room and wall in our studio so I chose them as my projection target.

Equalizer – first test was simple. I have audio reactive bars and I want to project them so they match the pipes. How to do that? I made a sketch that displays 4 rectangles. I was doing it by hand in code so I spend some time to make them match the pipes perfectly. This gave me a mask that I could use for limiting projection only to the pipes. Having positions of the rectangles I programmed animated bars so they matched this positions. Results were super good, as expected :)

equalizer

The only trick here is to adjust projector brightness so the black is invisible on the wall.

Sunset – it’s time for some magic. What would happen if we invert the mask so we project everywhere beside the pipes?

sun

People usually say that’s the best one of my first tests. It’s somehow counter intuitive and surprising when watched for the first time.

The only issue with this one is that when observed from a side you get shadows from the pipes so it doesn’t look so good anymore.

sun_shadow

Sunset – this time I wanted to play with some more complex mask and couch next to the pipes looked like a perfect target. I took a photo of the couch, draw an outline of it, filled the shape with white and projected it back on the couch.

stars

Of course my shape wasn’t perfect so I had to retouch it a bit to remove all the gaps. I made a Processing sketch that was constantly reloading the image for projection so every time I pressed Cmd+S I was able to see the changes almost realtime.

Want more (especially large scale) projection mapping examples? Look at this, this, this and this.

Realtime, every time

November 25th, 2009

sclogo_50px2

“Realtime, every time” that’s the motto of shiftcontrol studios – a small design studio based in Copenhagen that I joined in the middle of September. We did some projects together in the past and when I graduated from CIID they asked me to join them. I couldn’t resist :)

In addition to three other guys I’m bringing in my specialty in graphics programming, user interfaces and recently acquired experience in the interaction design. All that is a perfect match with their profile:

With a background in interaction design, focused on algorithm controlled animation, sensor driven interactive installations, web applications, broadcast applications and digital design, shiftcontrol applies a united process of design and development to its clients and users.

It’s gonna be a lot of fun.

Data Gestures

August 18th, 2009

Data Gestures

Data Gestures is a title of my final CIID project. It’s a very busy period for me so I’m publishing only a small info now.

Description:

This mobile application is a result of exploration of mobile gestural interfaces for personal data mining. By providing means both for
collecting and visualizing data on the go this software tries to assist it’s user in deep understanding of patterns emerging in his everyday life.

Full info:

Every day is a stream of small actions and decisions that we make, from getting out of the bed in the morning to choosing what to buy for the dinner. Separately they might seem irrelevant but gathered together and put into right context might give a whole new insight into our life. This project is trying to answer how to design a mobile application that would assist us in collecting and visualizing this data. Proposed application is focused mainly on money spending of the user. We can add items that we buy and assign them to several
categories. That data if carefully tracked it can provide us with information about things like eating habits or when put together with
data from other sources it can give impression of overall quality of his life. Interface of the application allows us also to filter the data or search for specific information. Taking small screen size and gestural interface as a challenge Data Gestures project is moving away
from data visualization paradigms known from desktop computing. Because of using multitouch input personal data mining becomes playful and useful at the same time. Buy being able to perform all this operation on the go and having dedicated interface tracking becomes easier. Data visualization available all the time with us (as long as we have mobile phone) is another incentive for gathering even more data hopefully influencing future decisions for a better balanced life.

My final project (thesis) mid term presentation.

July 9th, 2009

talk-to-me

Recently I had a discussion about my final project with Niels Clausen-Stuck (my advisor) from Designit and Jan-Christoph Zoels from Experientia. I still have to digitalize all the feedback that I got from them but for now here is my presentation. It’s style is something that I developed earlier this year – mixing post-it notes with photos. It’s seems to be working because people love it :)

Designers for Action!

July 8th, 2009

Reboot 11

At the end of July we (students @ CIID) were participating at Reebot #11. We did a small workshop where people interesting in brainstorming about their concepts could ask us for help. Here is small video made by Adam Little:

Is Data Visualization a way of story telling, exploration, or expression?

June 15th, 2009

I’m just starting my thesis on data visualization recently I was talking about this issue with my thesis advisor. After reading Peter Gassner’s article Data Visualization Is A Tool, Too! on www.datavisualization.ch I decided to write this blog post.

I see three big roles of data visualization:

DataVis as a way of telling stories.

gapminder
It’s purely informative role. You show big amounts of data in graphical way to explain something. E.g. you can try to convince you client why one solution is better that another or try to show what are the consequences of some decisions over time. In this case data is already preprocessed and served to you in a way that is easy to understad and grasp quickly. We have to remember though that very often such datavis are only supportive material that works in a specific context. Great example of that are Hans Roslin’s talks from Gapminder where without him talking we would be watching only boring graphs.

DataVis as a tool for exploration.

digg_arc_large
This approach comes from scientific data visualization where representing data visually is one way of coping with information overload. Because data is very often in a very raw form you have to play with it to find ‘your own story’. Trying out what happens if you display all the data at the same time and treating data as an interface is something I’ve learned from Shawn Allen from Stamen. Above picture is well known Arc visualization that they made for Digg.com where you can observe incoming stories that people vote for on Digg.com website.

DataVis as a way of expression.

greet

Sometimes we are just inspired by beauty of data and we are focusing purely on aesthetics. When we use data as a base for our artwork that is perfectly fine. Above picture is a visualization of Wii Remote movements recorded by people while showing how to greet somebody in their culture. No labels, no description just pure study of the flow of Wii parameters. But should we still call it data visualization or computational graphics?

There is never ending discussion about simply decorating data vs. making it more meaning full. In my opinion which direction we should choose depends on the mix of above three roles. And nobody says that we can’t make it beautiful and meaningful at the same time, what is what I always try to do.

Improving iPhone photo quality

June 10th, 2009

p1000552

Have you ever tried to make close-up photos using your iPhone? Yes, it’s impossible… iPhone camera has fixed focus so every time you want to take photo of something that is closer that 30 cm the photos come out blurry. I needed to take a lot of pictures of post-it’s and I was very annoyed by the quality of the results. I knew that there are some protective cases with build-in lens that can fix that, but they are too expensive to me.

But today I came across a small magnifying glass in our studio. Hmm. I decided to try it. I attached it to my iPhone with a tape and did some quick test.

p1000554

The results were UNBELIEVABLE!

text
plant

I think I’ll use it a lot this month :D (before I can get new iPhone).