Moshe Ladanga

Archive for June 2008

MADA 03 Assessment Presentation

leave a comment »

Moshe Ladanga
MA Digital Arts
Camberwell College of Arts
University of the Arts London
June 23, 2008
*please click on the images
Colloquium
(Video Presentation)
Processing Sketches
Artist’s Statement and Reflection
ShowBuild
MA08 DVD Work
(Documentation)
Exhibitions
Advertisements

Written by mosheladanga

June 23, 2008 at 7:52 AM

Posted in Reflections

Exhibitions during MADA 03

leave a comment »

*Please click on the images

FutureFilm: Camden Arts Centre

Audiovisiva 5.0-Milan, Italy

Written by mosheladanga

June 22, 2008 at 12:41 PM

Posted in Reflections

ShowBuild

leave a comment »

It was a really stressful week. Need I say more?

i ended up building almost all of the plinths along with Nick. I also helped take apart the wooden wall with David Cross in the Graphic Design room and put it together again in the Cinema Space. There was so much I did I don’t even remember everything. But let’s end it on a happy note:)

*Pictures courtesy of Tara, MA08 Flicker Group

Written by mosheladanga

June 22, 2008 at 12:09 PM

Posted in Reflections

MA08 DVD

leave a comment »

Nick Buer and I designed the main menu for the DVD that would accompany the catalogue for the final show. It was fun actually, and I would term it as a classy, understated motion graphics indulgence, haha:)

MA08 DVD Main Menu

I also made this motion graphics piece for the DVD, detailing the new courses next year.

MA08 New Courses

With the images that every MA student submitted, I made slideshows for each course with each student’s work, name, email address and website on a slide that lasts for 7 seconds so that each student is given enough exposure in the DVD. This one is for MA Digital Arts:

MA Digital Arts Slideshow

With the footage we got for the DVD, I edited these into video clips that show the diversity and community of the MA at Camberwell.

Interviews with Faculty

Interviews with Students

Tours

Written by mosheladanga

June 20, 2008 at 10:46 PM

Posted in Reflections

Exposure through the Negative

leave a comment »

Sometimes, the most simple means is the first thing we ignore. We go about our modern complexificatitons, trying to make something more interesting or at least appear more valuable by adding and multiplying functions to something already interesting on its own. This is one of the most important things I learned in developing my project.

For a period I had these experiments in Processing where the image acquired a very hard edge.

*Please click on the images to see in full

**To see it in action, copy code into Processing sketch and run it; make sure the computer is connected to a webcam

Neg Pos Slow with Lines:

import processing.video.*;

Capture video;

void setup() {
size(640, 480); // Change size to 320 x 240 if too slow at 640 x 480
// Uses the default video input, see the reference if this causes an error
video = new Capture(this, 640, 480, 30);
}

void draw() {
if (video.available()) {
video.read();
image(video, 0, 0, 640,480);
loadPixels();

float invertFactor = 255.0;
for (int i=0; i<pixels.length; i++){
float r= abs(red(pixels[i])-invertFactor);
float g= abs(green(pixels[i])-invertFactor);
float b= abs(blue(pixels[i])-invertFactor);
float a= abs(alpha(pixels[i])-invertFactor);
pixels[i]=color(r,g,b,millis()%a);
if( i>0 && i% width==0){
float wave = millis()%100000;
invertFactor-=50000/wave;
}

}
}
updatePixels();
filter(GRAY);
filter(INVERT);

fill(255,0);
rect(0,0,640,480);
smooth();
}

Neg Pos Slow with Lines 02:


import processing.video.*;

Capture video;

void setup() {
size(640, 480); // Change size to 320 x 240 if too slow at 640 x 480
// Uses the default video input, see the reference if this causes an error
video = new Capture(this, 640, 480, 30);
}

void draw() {
if (video.available()) {
video.read();
image(video, 0, 0, 640,480);
loadPixels();

float invertFactor = 255.0;
for (int i=0; i<pixels.length; i++){
float r= abs(red(pixels[i])-invertFactor);
float g= abs(green(pixels[i])-invertFactor);
float b= abs(blue(pixels[i])-invertFactor);
float a= abs(alpha(pixels[i])-invertFactor);
pixels[i]=color(r,g,b,millis()/a);
if( i>0 && i% width==0){
float wave = millis()%100000;
invertFactor-=50000/wave;
}

}
}
updatePixels();
filter(GRAY);
filter(INVERT);

fill(255,0);
rect(0,0,640,480);
smooth();
}

– Then I returned to a sketch I made earlier, something that I at first wasn’t so happy about because I felt the code was too simple. But the thing is, the resulting moving image says something more than those above. (Thanks to Katrin and also to Nikolas, Shazzy and Zai for their encouragement 🙂 ).

import processing.video.*;

Capture video;

void setup() {
size(640, 480); // Change size to 320 x 240 if too slow at 640 x 480
// Uses the default video input, see the reference if this causes an error
video = new Capture(this, 640, 480, 30);
smooth();
}

void draw() {
if (video.available()) {
video.read();
image(video, 0, 0, 640,480);
loadPixels();
float invertFactor = 255.0;

for (int i=0; i<pixels.length; i++){
color colorSum= pixels[i];
int asum = (colorSum >> 24) & 0xFF;
int rsum = (colorSum >> 16) & 0xFF;
int gsum = (colorSum >> 8 ) & 0xFF;
int bsum = colorSum & 0xFF;

int r= int(abs(rsum-invertFactor));
int g= int(abs(gsum-invertFactor));
int b= int(abs(bsum-invertFactor));
int a= int(abs(asum-invertFactor));

pixels[i]=(a<<24)|(r<<16)|(g<<8)|b;
if (i>0 && i% width==0) {

float wave =sin(pixels[i]);
invertFactor-=(255.0/width*wave);
}
}
}
updatePixels();
filter(INVERT);
filter(THRESHOLD,0.9);

}

-Again, thanks to Katrin for the latest version above; she converted parts of my code into bitwise operations to make it run faster:)

Written by mosheladanga

June 15, 2008 at 7:45 PM

Posted in Reflections