The Feed

In: PRID303: Ba Project

2 Jun 2010

Final project has now been completed, handed in and presented. I went with the last minute name of “The Feed” and have uploaded the showreel to hopefully do most of the explaining for me:

It can also be run, live, from this link. Each tweet taken in from the list of Twitter trends is represented by how positive or negative it is (in its use of language). They then appear in the visualisation one by one, and produce a new colour and audio tone as they appear, related to how positive or negative the nature of the tweet is.

4D Final

In: IDAT307: 4D

16 May 2010

Final version

The project is about a small digital world, made up of very simple inhabitants that follow simple instructions to create structures within their own little city. The city grows as time moves on, but by manipulating the balance of types of inhabitants, you effect the outcome of how the city develops. The project is intended to explore the relationship between cause and effect, as well as map out the continuity of different alternate universes, in which separate events play out and the user can travel through time in order to see them.

The city itself is inspired by “game of life” type applications, and is encased entirely within the left hand panel of the application. There are four types of inhabitants, represented by small coloured circles, that move and act in a particular way, each manipulating resources. Resources are the building blocks from which structures of the city are made and they don’t move by themselves but come in a variety of shapes, sizes and colours. Among the inhabitants, Producers (yellow) create the resources, dropping them into the world at a regular interval as they move around. Builders (blue) look out for a particular colour or shape of resource that they like, and start to construct towers out of them by gathering them up one by one. Thieves (purple) also have a favourite colour or shape and will steal these blocks out of an existing tower and return them to a random position. Destroyers (red), when hungry, eat the blocks and remove them completely.

The user has the ability to adjust the amount of each type of inhabitant at any time, thus altering the balance of the city. For example more thieves will lead to more resources strewn across the world as they upset the builder’s work. More destroyers or fewer producers will slow down, halt or reverse the growth of the structures. Whenever such changes are made, the future of the city is altered, and thus a parallel universe occurs in which these events play out, separate to those that would have occurred without the user’s intervention.

The flow of time and relationship between alternate universes is mapped out on the right hand panel, with timelines. Any new universe created begins to branch out from the previous one. At any point, any timeline can be clicked on, which will visually rewind time back to this point, resetting the balance and placement of all inhabitants and resources as they originally were at that point.

4D Progress

In: IDAT307: 4D

6 May 2010

The ‘Chaos Engine’ project is well on the way to completion and I have uploaded it in its current state. It requires some visual sprucing up, but most of the important components are all in place, save for the ability to make a change in the environment and thereby create a parallel universe. It can be viewed here.

The world exists within the left hand panel. It contains four types of inhabitants, represented by coloured circles that bounce around the place; Producers (yellow), Builders (blue), Thieves (purple) and Destroyers (red). Producers create resources, which are blocks of multi-coloured shapes, which they drop into the world at random intervals. Builders look out for a particular colour or shape of resource that they like, and start to construct towers out of them by carrying them around. Thieves also have a favourite colour or shape and will steal these blocks out of an existing tower and return them to a random position. Destroyers, when hungry, eat the blocks and remove them completely. The theory is that different amounts of these types of inhabitants will lead to a different ecosystem, which will be explored with the opportunity for multiple, alternate timelines.

The right hand panel is where time control takes place. At the moment there is only one timeline, which progresses upward as time goes on. Let it run for a bit, then you can click on any area along the line. Time travels back to that point and resumes from there. All the coordinates and variables of the inhabitants and resources are saved so that they can then be recalled when revisiting the past.

I’ve been toying around in Processing lately to see what I can come up with. I’m going with the idea I expressed previously about the ongoing wormhole thing, as if the user is constantly travelling through a twisting, turning tunnel.

Here’s what I have so far

It’s achieved by placing a large number of gradually expanding circles (with no fill and a thick, coloured outline) on top of each other. If you move the mouse, you’ll see that the wormhole begins to bend. A bit of maths is used to offset the circles that are further away, and because the closer ones are drawn on top of them, the right kind of affect is achieved. Each circle is given a colour shade, and they expand outwards, and are then moved to the back when they’ve expanded far enough, which is what I will use to give a sense of travelling through it.

I’ve also experimented with objects that originate from the end and come flying out towards you, circling the wormhole, and these will come to represent the actual tweets. Still haven’t decided what I’m going to do about the sound aspect of all of this, but it seems to be coming along quite nicely otherwise.

A PDF of my final dissertation submission, Repercussions of Internet Addiction.

Now set on the water pumping aspect of my project as opposed to any other means of making physical contact with the user, I’ve been engaged in two battles in the hope that I can succeed at one of them. Both are battles against worlds that I know very little about – electronics and simple engineering/physics.

I started by ordering three (one spare, which I thought would probably be a good idea) of these water pumps. They’re not designed for Arduino specifically, they’re for CPU cooling systems, and they have very little in the way of documentation. I’ve been trying my best to work out how to make them run by hooking their connectors up to arduino but the best I can do is get them to make a very quiet buzzing noise. When I put them in water, nothing is pumped. There are similar projects such as HydroDuino that even uses the exact same pumps but it’s a bit beyond me as to how it’s done.

IMG_0157

Method 1: Connect a 12V water pump with 2 wire connection directly to Arduino and control the voltage.

Feeling like I was at a bit of a dead end, I turned to the web to look for other types of water pump that might be more Arduino-newbie friendly. I eventually found this which is more of a water fountain thing, but it had a mains connection. It occurred to me that if I could plug this mains lead into something that had a physical switch on it to control the power, and then that was plugged into the mains socket, I could use an arduino servo (which I do know how to use!) to flip that switch according to whether that stream of water needed to be on or not. It’s not a very elegant solution and extremely low tech, but it might be the easiest way of doing it, not to mention safest as I’m less likely to electrocute myself this way! Fortunately, I already had a timer mains plug, which is intended to go between the mains socket and any appliance and flip the electricty on and off according to a 24hr timer. It also has a master switch on the side to enable or disable the electricity, which is what I needed to control.

IMG_0160

Method 2: Attach rotating servos to the side of a timer switch on a mains socket. These can switch the electricity to a pump on or off.

I had a mini servo, but it wasn’t strong enough so I ordered a pair of larger ones, one 180 degrees, and one 360, which proves too difficult to control for this purpose. It took quite a few attempts before I figured out a method that I think should work, because of the placement of the switch on the timer. One servo per switch didn’t seem to work, but when clamped tightly, it could just about flip the switch one way. Therefore, my solution is to use 2 servos per switch, one to push it on, the other to push it off. I need to order more 180 degree servos before I can confirm that it works, but I’ve tried one servo in both positions and it works great, so I think I’ve finally cracked it!!

An important aspect of my major project is the visualisation that the user will see, and how it will interpret the information feed provided to it. It essentially needs to represent how positive or negative the feed is (perhaps, because it can be more specific than the arduino-driven touch interactions through the garment, it could even distinguish more specifically between emotions like anger, sadness, fear, etc).

The idea I’ve always had in my head for this is that it could be like traveling through the various connections of cyberspace. Constantly heading forward through a speeding vortex of colour and abstract shapes. I’ve been doing a little research for some inspiration, along these lines.

graphic concept 03 - continents in boroughs 50-great-examples-of-data-visualization-2009070112055565-opte_jpg ries-t-c 6_Internet_structure

These are all depictions of the internet and various connections that all serve as good inspiration for the kind of look and feel that I want to express. The idea of traveling along one of these colourful nodes, as if you’re fully integrated with the network itself.

into_the_vortex_306x172 vortex

The effect will probably be a bit like the intro sequence to Doctor Who – traveling through an endless vortex of swirling colours and psychedelic effects. Very visually stimulating and exciting for the senses.

This visualisation will be developed in Processing so I thought I’d check out some other Processing projects from OpenProcessing

excitable-media-cellular-automata

This is a nice lively, active piece. A clear grid system might be an appropriate choice.

chained-circle-lightning

This is like a colourful lightning display, made up of lots of interesting shape patterns.

0002

Mountain ranges created by heart monitor-like waves. Nice way of tracking the feed.

I’ve now ordered an arduino kit and have been playing around with it. It includes some basic sample circuits to get started so I’ve been learning the basics of what I can do with it. I thought I’d jump in and try and build something useful as a prototype, and through this I’ve created a basic version of a system that can analyse the words used in Twitter users tweets about the top ten Twitter trends, in order to get a rough idea of how happy the Twitter community is.

The Twitter feed is analysed in PHP by running through the fifteen most recent tweets on each of the subjects in the worldwide top ten twitter trends (a trend is a word or phrase that is mentioned the most in all worldwide tweets within a particular time period). It has a points system that it adds up based on how many times it counts particular positive words (like good, great, awesome, etc) and a separate count for negative words (bad, awful, various curse words). Obviously it’s difficult to be exact in this way about every tweet, many people will swear when they’re happy, but I intend to make this sophisticated as I can. At the moment it only looks for about 10-15 words for each mood, but it’s enough for a basic prototype for how it will work.

PHP output, analysing tweets and building up scores for positive and negative words as it goes.

PHP adds up all the counts and calculates to give a single number, 1-12 based on how happy everyone is. 1 is the least happy, 12 is happiest. For my project I need to transfer this number into a physical system, so I decided to build a very basic board of LEDs, with 6 green LEDS and 6 red. The more greens, the happier they are and the more reds, the more angry they are. This is about the level of distinction I plan to use in the project.

IMG_0143

I used a library in Processing that allows it to communicate with a connected arduino board. This is preferable over using the ardunio environment in itself because Processing can get data from the PHP file on the server more easily, and I’ll also need it to run at the same time as the arduino later on, in order to provide a visualisation of what’s happening as well. The Processing script continually calls the PHP to get an updated figure as soon as its finished loading in the last one, so the lights are updated automatically every 5 seconds or so.

I’ve also thought more about the physical interaction processes. When I first discussed this project with Gianni, he suggested I look into ways of producing hot and cold effects across the body. I couldn’t really see a cost effective way of doing this, so I looked at other ideas, but I’ve been rethinking it because it occurred to me that I could actually use heated and chilled water. Attach tubing to the inside of the jacket, which is connected to two containers, one of warm, the other of chilled water. I could use a water pump in each, controlled by arduino, to course the water through the tubing depending on whether the feed was happy or angry, perhaps at different speeds or different amounts of water to relate to the level of emotion.

I did a simple test of this effect by connected a few straws together and running it down my arm, up to my mouth. The other end was in a glass of water, first cold then hot, and I just sucked on the other end to see how effective it was. The results were good! It produced a very noticeable sensation traveling up my arm. I’d need to get hold of tubing that’s thin enough so that it would be this noticeable, and I wouldn’t have to have super hot or super cold water, in case the tube should break and the wearer would not only be very wet, but potentially scalded!

The tricky bit there is the water pump, as, with very little knowledge of any sort of water pump, let alone one controlled by arduino, I’ll need to experiment and see how to make it work. This might work. It’s small and cheap, but I shouldn’t necessarily need a lot of water so it might be suitable. Worth a shot anyway. Hopefully I can hook it up to ardunio easily enough, and hopefully I won’t electrocute myself in the process! There is probably a high chance of that, as I have absolutely no idea what the hell I am doing.

Some updates on my major project. Unfortunately I’ve been falling behind on this, thanks to the games module but that’s almost done with now so I’ll have a lot more time to focus on this. My bio-internet link idea still remains and I’ve fleshed it out a little but it still needs further thought, particularly regarding exactly what data I use from the internet and how it can be interpreted into feedback components placed on the body.

For the sake of having it applied easily, I think it’ll be good if all components could be attached to a single garment, such as a shirt or jacket, that can be worn. This would accomplish the touch sense, but I also want to cater for sight and sound as well, and I think it’ll be good if we cut out everything else from those senses so that the user is completely engrossed in the visualisation and sounds.

I’ve discovered these, which might be useful.. I had no idea these existed, they must not have really taken off in popularity just yet, but they’re personal video glasses that you can plug into just about anything and have a display right in front of your face. They’re a bit pricey but would be perfect for completely engrossing a person in my internet feed, particularly as they also come with headphones.

I’ve been thinking about how I can feed back information through touch though. Ideal would be an easy, cheap way of making certain patches on the garment produce hot and cold sensations instantly, but I just can’t find anything that can really do it as I would want it, at any price. I could get cool air from mini fans, such as those inside a computer, but I don’t really know if I can get instant heat, such that the two can be turned on and off quickly and easily. I can pass an electrical current through a wire to generate heat, but I don’t think it’ll be quick enough.

sc001fdcf4

However, there’s other things I can do, such as make use of small vibrating components, or clever use of servo motors. This is all new to me as I have very little knowledge of electronics, but a servo motor is basically a wheel that rotates, and I can use that mechanism in a variety of ways. For example there could be small wheels placed on the back of the garment to travel up and down it according to certain feeds.

Another idea I’ve been considering is kind of a tugging-string mechanism that would be placed on the arms at serveral positions. Each string is looped around the arm, one end secured to the garment, the other secured to a servo wheel. When the servo rotates, it should pull at the string, tightening the loop around the arm. If you have, say four of these on each arm, tugging separately, it could create an interesting effect. Like you’re being pulled in.

The other thing I really need to decide is what data is being pulled from the web and how it’ll be interpreted into whatever feedback mechanisms I use. Twitter is the obvious choice that springs to mind, and I’ve been looking into various visualisations. I like these one in particular…

twistoriThis one pulls every tweet that comntains a particular emotional word and displays as they come in. I was thinking about connecting the feed with emotions, also possibly twitter trends and in general I want to be able to feel the motion of the internet in some way, in terms of what people are talking about what’s popular, and converting that into a sensation.

wefeelfineThis is a really nice, sleek one that displays tweets in the form of little flying shapes. I think it would be quite good to analyse tweets and try to extract their emotional context by the language and punctuation they use etc. Perhaps whenever there’s a violent one it could send a quick spike through the system. Naturally, when something big has happened (like the death of Michael Jackson, which in fact broke Twitter’s servers I believe), you’ll literally feel people’s emotional response through your body.

In terms of inspiration, I’ve been able to find very little along the lines of this project. Many wearable technology things are all centered around providing information through sensors to a system, rather than have the system feed back information through transmitting components.

happiness hat from Lauren McCarthy on Vimeo.

This is something on very vaguely similar lines. A hat that can force you to smile by inserting a painful spike into the back of your head when it detects a frown on your face.

This is an interesting and very relevant product. A kind of virtual reality helmet capable of appealing to all five senses (I’m only going for three), by encompassing the user’s complete peripheral vision and even spraying smells and tastes into their face. I think my project is basically a less advanced, slightly more abstracty version of this.

Another thing I’ve been thinking about is completing the loop of information, so the system actually reacts to how you react to the sensations. This goes along with the nature of internet addiction – it’s not necessarily a one-way street, social networking applications rely on the user’s cooperation and interaction to drive all of their content, so perhaps the system should be listening out and monitor your body movements, so when you react to a particular event, perhaps that sends a tweet of its own or opens up a whole new stream of data to receive, etc. I’ve been working a lot with motion tracking in flash recently, so it could be done this way, with a webcam monitoring how you’re reacting physically.

4D Mock-up

In: IDAT307: 4D

21 Jan 2010

Here’s a mock-up image of how I expect my 4D project to look (roughly)…

mock

The main goal is to create a small digital organism – a world made up of types of inhabitants that behave according to a particular pattern and manipulate objects and resources. You control the ratio of inhabitants within the world and thus how the world is constructed. You can then go back in time to an earlier state, make an alteration and create a parallel universe in which events then occur differently, as a way of experimenting with cause and effect.

The larger panel on the left contains the “world” in which various organisms (expressed somewhat abstractly through simple shapes and colours) inhabit. The world is made up of blocks (squares and triangles of varying size and colour) which have no particular pattern of behaviour, but they represent the resources that can be manipulated by the inhabitants. Inhabitants all move freely around the area and include:

Producers – These create the resources, as they move around randomly. Each produces a particular colour or shape.

Builders – These collect the resources that are a particular shape or colour and use them to build structures and branching patterns, by clustering them together in a particular place.

Destroyers – These eat away at the resources and remove them from the world.

Killers – Killers kill other types of inhabitants – one particular type for each killer.

Thieves – These steal blocks away from built structures and relocate them to another area.

States are saved at regular intervals, recording positions of all the inhabitants and resources so that they can later be recalled by using the timeline. You can click back anywhere on the timeline to return to that moment and then make an alteration to create an alternate universe of events that then play out. You can alter the numbers of particular inhabitants by using the sliders below.

There’s room for further experimentation as I develop it, for example introducing a reproduction and death system so that generations of inhabitants can continue. The goal is to create a micro society capable of producing a number of different types of patterns, depending on the balance of types of individuals.

About this blog

I'm a final year student of Digital Art and Technology at University of Plymouth, year 2009-2010.

I've spent my placement year in London as a competent Actionscript and web developer/designer and hope to resume that work in a year's time.

But for now.. what the hell am I going to do for all these projects??

Photostream