John Flitcroft, 22 yr old. Research & Innovation designer @ Glasgow school of Art
Can you tell me about your experience doing functional prototyping?
I've always struggle to do functional prototypes because my designs tends to be service orientated. I prototypes them theoretically through drawings. The only times that I have used was using Arduino and Processing. I did it during my third years. I built two projects one was gadget for extreme environment which in the end I build a open-source 3D video camera. I built it using Processing and Arduino and I use the Arduino to focus the camera. The other one was interactive space. It was an art piece installation that I did in one of the Bauhaus building.
The gadget for the extreme environment was build for the programming projects. The reason I did that was to play with something I never played with before.
How did you approach this project?
The gadget for extreme environment was totally new to me because it was just a used a technology and do something cool with in. This wasn't me because I liked to design for certain people in certain situation. I think that's where my design is strong and I think random let's just do it - is not for me. So, I just pick a cool enviroment which is cave and a situation in which I could make something that did the jobs. I did this idea of deep cage rescues or when you didn't know where someone was and you couldn't sent people in. This is situation you would send a camera and it went from there to what does the camera's need. it need to be autonomous, it needs to feedback accurate information to the surface. I think the use of 3D imagery would be very helpful to know how far the person are from you. So I started looking into 3D camera that could be affordable enough that I could borrow but there wasn't anything. So, part of my project because building and it was just trail and error. I did not know anything about programming. I found some code on Processing that looks like I could use. It was the basic capture code and then I find the piece of code that turning still images from color to black and white. Then I found out how to seperate out RBG light and I build that into it and then I figure out how to combine two image feeds and make 3D and that's just altering the Math until I got together a fairly shaky piece of code. it was reliable but it wasn't very pretty which nearly worked.
Then I came home from christmas and gave it to my brother who is a programmer. then he looks up my code and he worked out how to average the RGB value. He managed to turn shaky 3D into an accurate crisps clear 3D. It was just the case of finding people code. Understand it to some extents, put them together and change it. The only piece of code that was my own was averaging out and combining frames .
How did you find that experience?
It was very pleasing in the end. This one is relatively easy and pleasing.
The interactive sound ones was much harder but it was the same process. Basically, taking the people's codes and making it my own then combine with other people. There was a lot of Math in that and that was incredibly frustrating. I spent several weeks just playing with number which was very very frustrating and very annoying but it was phenomenally rewarding when I got it in the end. However, I was not able to achieve what I set out to achieve. because I physically didn't know and couldn't find and I think I stumble on something that thought should be simple, the rest of the world thought is should be simple but no one has a way of doing. There was lots of people on the internet and forums trying to figure out. I went on asking on Arduino and Processing website and no one has no clue how to do it and no one come up with an answer. That was combining two video feeds side by side. so getting two camera and outputting one long image but it seem that it is something that Arduino or Processing can do yet. That was the limitation and that was the outcome of my project.
The basic concept was spent on Processing but you spent a long time prototyping and iterating. The strength then was that processing made it really easy to change the boundaries of sound, type of sound, noise level
How long are these project?
There were both a semester project. But the first project was 1 day every fourth night. The second one is 2 - 3 days a week for 6 months.
Do you think being able to experience what you what you're doing and be able to play with your actual prototypes help you to develop it further?
Yes.
Do you is it worth the time it takes to do that?
For the project, probably not. For me, yes. I got an awful lot of that project because it so and long and it took me so long for that to work at the end of it I knew the code so intimately so I can work it. However, the project didn't need that. If I had an easier way to write code or someone to do it for me then the project would have been just as good in the end. I wouldn't have learn as much but from the point of view of design apprenticship and someone who is learning. the element of being tough and difficult helps me learn and get through a lot. It helps a lot on personal development, i think. Really stressful but rewarding.
So, you didn't know how to code. How did you attempt to get through it?
I used google a lot and I have looked at other people have written. I am quite logical and I worked out what thier written and why they have written it. A lot of people put in tags which is useful as well. I pretty much too apart all the code and figuring out how each of them work. Putting them back together and learn through that.
If you have a concept and you know that it is possible to do it with arduino but you are facing a time constraint would you still do it?
it depends on what the project was. If it in a professtional context with a short time frame and it wasn't something I precious about I would find another way around. If it was something that I was enjoying, something that I have a bit of time flexibility on and it was something that would benefit from hard work then I would try to use arduino again and processing.
If there is any easier way around it, because I know that there are many things out there.certainly in different concept so, there is a programming language for designers which I never used. I have download a couple. I will look at them one day but realistically I found that you only look at them when you need them and then its too late and then you have a stressful day.
I think that level of creating a program of developing and programming are something that I will do if it something that I care about. I might be that one of my client project are something that I cared about and I will put that extra effort to it. If it something that I am not particularly impress and something that I dont see a good idea then I am not going to do it in Arduino or Processing then I will do it in a easier way instead.
Do you think these things are something that takes extra effort and dedication inorder to do them?
Yes, certainly for me. There are some people who might find video prototyping much harder than programming the Arduino but I find them to me hard for me. it a hard task. I can tell.
If you have a project that you have to approach it using Arduino. How would you approach it?
I would split down the task that can be done by Arduino, I would look at what I want me design to do. What I want my Arduino to do within it. I would break that down into logical steps. I would then find open source code that achieve that effect or similar effect. I would pull them all together. I would look at each individual section. So, if it break down into 10 basic operation then I would find the code that did 10 similars operations then write something that contains those operation. Pull out those section, understand them , combine them and then workout a flow that made them work. I used other people work and break it down. I would not attempt to write it from scratch. I am more comfortable to use other people works and make it work for me
I think it is more than a valid way of working in a prototyping situation. I think that it is a best way to work in prototype. Because prototypes are quick, they are effective and if you are not going to be able to produce it yourself you may as well standing on the shoulder of other people
I talked to a lot of people and most of them have a problem of reassurances. They do not trust what they built. Do you ever trust whatever you make?
I trusted my sound installation enough to let it run for a week in a public exhibition. I would expected that by the time I had worked something, I would expected it to be stabled enough to leave it on its own. Depending on the situation, if it something that is going to last 5 minutes then I will be slightly more of that. But with programming it is so logical and straight forward that, unless you're trying to do very complicated things, not having code that works is just a bug out. you just stop developing it early. With my experience, there is only two things. Its either works or it didn't there is no middle group for it. Either it was working and then you broke something and it didn't work at all. Then you fixed it and it works again.
Unless you're writing something very complicated and you start getting bug that you might start calling it but I would never be able to write something very complicated to develop bugs anyways
How was your experience with electronic?
I didn't find electronic a problem. They are very logical but they can be compeltely confusing. However, as long as you just do it in the order that they would've work then it is not a big deal. they can look incredibly complicated and be incredibly complicated but at the ground level it is a logical system. They are not trying to be clever and they're not trying to be complicated. They are what they are. If you just accept that and stop trying to look for the trick then they are easy to work with.
If you can do flat pack furniture, you can do electronics
There is very complicated electronic which I wouldn't touch but anything I have ever worked with are quite logical.
Have you ever tried or think about using Arduino in any of your project?
Not right now, and No. I have couple of incling that I might be able to use it but I am not in a position yet to try them out. I am building a light at home for animation in it and I thought about arduino linking into light, so I can use arduino to adjust the light level so that it is the same through out the day. But I dont really know that I would built that.
What kind of project would you use arduino for? Is there any types of project that are suitable for this platform?
There are limitation to what I could do with it. Unless i have a lot of time I would not start using shield, I would just use the basic arduino. I would not see that having to do things that I have not done before as a limitation. If a project pop up then it would be a good way to use arduino then it would not bother me
I would not attempt to use anything more complicated than just that basic but if I couldn't do something in another way then I might just try and give it a try.
Is this the attitude that you must have?
Yes, I know it is not one of my skills. So, I wont be able to see why it doesn't work. It got a certain time limit on me. If I wanted to use Arduino then it would be because I wanted to prototype something. So building a prototype has a certain time before it becomes beyond building a prototypes. If you take 2 week to design a prototype and it would takes another two weeks to build a prototype then I wouldn't use Arduino. I would find someone else or doing in the other way. If I could do them in two days then yes. The good things about arduino is that once you have done it you can iterated on it very quickly. I could be in a situation where I am testing it an I could change instantaneously on the fly. Then I can see the value in it but I wouldn't ever .. for me, I got the potential if it becomes complicated, because I do not know how its works I don't know why I works. I would fall into a pit too long in that case I won't do it. I would try to do another way to do it. If it not gonna be quick and easy to do then I won't do it.
Comparing video prototying with Functional protoyping, do you think there is a big difference in both of them?
Yes, Video prototyping is fantastic for prototyping a concept, introducing a concept but you cannot prototyping experience through video prototyping. You can demonstrate the experiences but the only way to prototype the experience which is important is to do it. Is to have that physical, even if it not that actual physical but as a series of object showing the experience built to one
With video prototype, someone could only tell you how they think they feels or how they would react which is not necessarily true. In fact in a lot of cases, it will be difference in real life. It could be a watered down version, a visual version. The only way you can achieved the real version is when there is something real and when your prototype is strong. because you get much closer to the real experience.
Why does it takes so much time to do something in this field.
Because I do not know how to work it properly. I have to discover it everytime. I got to start from scratch. What's making it hard is it that it is unpredictable. Sometimes you pull out two or three people' codes and it works like magic - this might even takes only half and hours. Then the next section might takes you FOUR weeks. For me, I do not have the appreciation to know what is possible and what is not possible and things that seem very possible are often very difficult. So, when I built it in a time frame I always thinks that it will takes a long time where is if you see that everything is going to be quick then it might takes a month and you already too far into it to pull back. Particularly when you are in training, you're running a hugh risk that you're going to ruin your project which is very important.