Showing posts with label FYP 2. Show all posts
Showing posts with label FYP 2. Show all posts

Wednesday, May 18, 2011

Exhibition Day!

A lot of people turned up for our first day of exhibition. I didn't expect so much crowd. It was a little overwhelming but I think I did well.

Even though I carried my camera bag with me the whole day, I only took a few photos. Much apology for the mediocre shots.



Repetitively explaining to people on how my installation works can be very tiring. But I'm glad I took the time to explain to everyone because it makes my day to see people try my work.




On the second day, we had guests from the National Art Gallery viewing our exhibitions.




Mr Sau Bin went to the extend of dancing (or performing tai chi?).






My roomate Anna, finally gets to try my installation in full-scale (and getting über excited over it too!)

Wednesday, May 11, 2011

Pre-Exhibition Setup

I was privileged enough to be picked as one of the exhibitors for the final year project exhibition. Such a pleasant surprise seeming as I struggled a lot at the beginning.



Spent a lot of time setting up for the exhibition (more on the physical set up as compared to getting the software to run). Also changed the physical layout of my screens. Mr Kok Yoong advised me to use a shelf instead of stacking the monitors together.




A lot of taping involved to get the wires neat and organized.

Exhibition's in a few hours. Feeling xcited and nervous at the same time!

Tuesday, May 10, 2011

Tuesday, May 3, 2011

Final Poster


(Click on image to enlarge)

Prior to the Presentation

Making preparation for my presentation in a few hours. Very anxious!

Everything seem to be working alright tonight. Hopefully it goes just as smooth in the afternoon!



The monitor on the second right seemed to be acting up a little. Hopefully it'll still function for the presentation!



Ijat trying out my installation.

Saturday, April 30, 2011

Testing the Monitors

So I managed to get my hands on 7 monitors (whoop whoop!) just to fill up the eight slots of the display splitter. I bought two second-hand monitors, borrowed a monitor from my dad's office as well as my friends Calvin and Kamil (thank you so much!). Also had to steal my family's monitor from home, and use my own to to add to the amount.




Many thanks to Calvin and Ijat for helping me carry the very heavy screens! :D

I was testing out the monitors this afternoon and took awhile to set up. The amount of wires are overwhelming, so I really need to figure out a way to make it neat. Also, need to find a cloth to cover the tables for presentation purposes.



After all the wires were plugged in, I switched on the monitors for testing. After a couple of minutes snapping the photo above, Calvin's monitor (on the utmost left) was short circuited and failed to work. :( The smell was pretty bad too. So now I'm one monitor down.

I'm not sure if I'm able to find another monitor in time, although Ijat did offer me his flat screen. Will see how it all turns out tomorrow!

Also, the Kinekt failed to calibrate any movement when tested. Hopefully, it doesn't continue to do so anymore!

Thursday, April 28, 2011

Test Subject: Using the Kinekt

My roomate Anna trying out the Kinekt with my updated flash file.

She used her hands and body in order to gain reaction from the kaleidoscope.

Wednesday, April 27, 2011

Kaleidoscope Patterns

Previously, I mentioned that I will be adding a pattern from my design book. I've scrapped that and have chose to use other objects as my kaleidoscope pattern, which includes my collection of nail polish, colored pens and Pyssla beads from Ikea.





Here are the confirmed graphics:





Saturday, April 23, 2011

VGA Splitter

During my Critique 2 session with Mr Kok Yoong, he advised me to incorporate a different method of output apart from a simple projection on the wall. So, I've decided to output my work through multiple computer screens.

The reason why I chose this method of output was to enable the users to go through a unique psychedelic experience in a bigger amount.

I bought a display/VGA splitter from LowYat in order to create the output.



There are eight slots all together, so I'm hoping to get my hands on eight monitors and make full use of it.

Wednesday, April 20, 2011

Updated Working File





I've split each kaleidoscope design into three scenes. Cheers to Hafizadt for helping me with the action script!

Images are not updated to the ones that I planned on using due to trouble I came across scripting. But here is the working file so far:

Download .fla/.swf


Planning on integrating it with the Kinekt soon!

Tuesday, April 19, 2011

Motion Detection

Last Thursday, I consulted with Mr Hafiz on equipment for motion detection. He recommended the Kinekt as it'll be easier to program. I managed to rent one from him.



I've tried a test run with the Kinekt by using the program FAAST & Open NI; very pleased with the simplicity.

Content Development #3

Here are some of the images that I will be using for the patterns of my kaleidoscope:



This photo was two years ago of my rainbow-colored umbrella. It's no longer with me anymore as it didn't function properly. I realize the image isn't hi-res as I had gotten this off my Facebook account. I'll try to dig through my photo album to find the original picture.




This pattern is taken from my design book called 'Culturatextura'.






This is the pattern of my Ikea bedsheets.

Monday, April 11, 2011

Coding



The current existing code involves interaction with keypad (such as controlling the rotation speed, adding more tiles to the kaleidoscope, toggle/flip tiles, etc).



import flash.display.BitmapData;
import flash.geom.Matrix;


_quality = "BEST";
var hsize = 500;
var vsize = 500;
var diag:Number = Math.sqrt(2*hsize*hsize)*0.62;
var map:BitmapData = new BitmapData(hsize, vsize, true, 0x00000000);
var mapHolder:MovieClip = createEmptyMovieClip("mapHolder", 1);
var code:MovieClip;
mapHolder.attachBitmap(map, 0);
var image:BitmapData = BitmapData.loadBitmap("image");
var stampImage:BitmapData = new BitmapData(image.width, image.height, false);
stampImage.draw(image, new Matrix(0.5, 0, 0, 0.5, 0, 0), null, "normal", null, true);
stampImage.draw(image, new Matrix(-0.5, 0, 0, 0.5, image.width, 0), null, "normal", null, true);
stampImage.draw(image, new Matrix(0.5, 0, 0, -0.5, 0, image.height), null, "normal", null, true);
stampImage.draw(image, new Matrix(-0.5, 0, 0, -0.5, image.width, image.height), null, "normal", null, true);
image.dispose();

var rotate1:Boolean = false;
var rotate2:Boolean = false;
var rotate3:Boolean = false;
var flip:Boolean = true;
var singleview:Boolean = true;
var slice:MovieClip = createEmptyMovieClip("slice", 0);
slice._visible = false;
var slices:Number = 12;
var angle = Math.PI/slices;
var nudge = 0.009;
var rotspeed1 = 0.007;
var rotspeed2 = -0.003;
var rotspeed3 = -0.005;
var sclfact = 0;
var rot:Number = 0;
var r:Number = 0;
var r2:Number = 0;
var sh1:Number = 0;
var sh2:Number = 0;
var scl:Number = 1;
var m:Matrix = new Matrix();
Key.addListener(this);



function onKeyDown() {
switch (Key.getCode()) {
case Key.UP :
scl *= 1.03;
break;
case Key.DOWN :
scl *= 0.96;
break;
case Key.LEFT :
r -= 0.01;
break;
case Key.RIGHT :
r += 0.01;
break;
case 187 :
//+
slices += 2;
angle = Math.PI/slices;
break;
case 189 :
//-
if (slices>4) {
slices -= 2;
angle = Math.PI/slices;
}
break;
case 49 :
//1
rotate1 = !rotate1;
break;
case 50 :
//2
rotate2 = !rotate2;
break;
case 51 :
//3
rotate3 = !rotate3;
break;
case 52 :
//4
flip = !flip;
break;
case 53 :
//5
sh1 += 0.04;
break;
case 54 :
//6
sh1 -= 0.04;
break;
case 55 :
//7
sh2 += 0.04;
break;
case 56 :
//8
sh2 -= 0.04;
break;
case 78 :
//n
sclfact += 0.01;
break;
case 77 :
//m
sclfact -= 0.01;
break;
case 48 :
sclfact = 0;
break;
case 81 :
//q
rotspeed1 += 0.001;
break;
case 87 :
//w
rotspeed1 -= 0.001;
break;
case 65 :
//a
rotspeed2 += 0.001;
break;
case 89 :
//q
rotspeed3 += 0.001;
break;
case 88 :
//w
rotspeed3 -= 0.001;
break;
case 69 :
rotspeed1 = 0;
break;
case 68 :
rotspeed2 = 0;
break;
case 67 :
rotspeed3 = 0;
break;
case 83 :
//s
rotspeed2 -= 0.001;
break;
}
}



function onEnterFrame() {
if (rotate1) {
r += rotspeed1;
}
if (rotate2) {
r2 -= rotspeed2;
}
if (rotate3) {
rot += rotspeed3;
}
for (var i = 0; i


Thursday, March 31, 2011

Final Proposal

TOPIC
Colorscope

BACKGROUND
The kaleidoscope is a tube of mirrors with coloured objects. As the user looks through one end, light enters the other and creates beautiful patterns as reflections bounces off the mirrors.

IDEATION & CONCEPT
Colorscope is an installation of a projection on the wall that acts as a kaleidoscope. As the webcam detects movement of a person passing by, the patterns changes in accordance to their body and hand movement.

DESIGN APPROACH
The design will include kaleidoscope patterns being projected. A webcam will detect the motions of the subject and will change in accordance to the direction of their movement.

AIM
To further enhance the development of the audience's perspective about traditional methods with new media.
To inject an aesthetic experience on the audiences' sub conscience.

Wednesday, March 30, 2011

Gantt Chart



Click on the image for a larger view.

Content Development #2

The look of my content is very important as my project involves the projection of images.

I downloaded this handy Photoshop plugin to create cool kaleidoscope effects from any image.

This is a screen shot of me converting a regular image to a kaleidoscope pattern:



The end result:



The pattern turned out really beautifully, and I'm very satisfied with the outcome. However, this is not the finalized design. Will create better, more colorful patterns. (:

For my project, there will be three different patterns of kaleidoscope images. Two of them will be generated via Photoshop, one of them will be a real-time image of the user, interacting via webcam.

I have worked out the layout of my content. This is an example of how it will look like:



The main image is of the current selected animation. The other two option is located on the bottom left and bottom right of the screen. Should the user want to select another image, they are required to hover their hands over their choice of pattern in order to generate it.

This video is just me explaining in words. Sorry if I don't make any sense though. been a long day. (:

Tuesday, March 29, 2011

Content Development #1

The main programs/softwares that I will be using for my project are Adobe Flash and ZoneTrigger.

Creating an interactive kaleidoscope via script is tricky. I have a found a few SWF files of an interactive kaleidoscope that I can use as reference. I used a decompile program (Sothink SWF Decompiler) to obtain the ActionScript file. However, the AS file can only provide me with very little as the scripts are all over the place.

I had used this Kaleidoscope project from LSDEX to obtain the script (also posted in my previous post):





Here's the decompiled AS file of the project (hopefully the link works!)

Final Contract

This was a final contract that our lecturers made us do to confirm the details of our project. This is not the original copy of my contract though, as the one that I've handed it are with the lecturers.

Click on the image for a larger view (opens in new tab)



I tried to think of ways to reduce the space needed for my installation and this was the best I could think of. The estimated scale is 193cm x 160 cm, but I think it can be smaller in size.

The 'walkway' is the walking space where the users are required to stand in order to interact with the installation. As for the projector, I am hoping to book a ceiling projector in order to reduce of the installation's space size.



The flowchart is pretty direct. The computer generates the software which is dependant on the webcam to detect motion. The interaction involved will then be projected.