The ITP Winter Show 2007 concluded with a massive clean up, project breakdown and a group pictures of everyone involved in the exhibit.
Todd Holoubek took the role of photographer for this shot which was taken in various parts and then put together (I suspect) in Photoshop. I decided to add a little treatment to the [...]

130 printed circuit boards hanging in a spherical grid configuration. Each circuit contains an infrared phototransistor and a high-flux warm white LED. The LED glows in proportion to the amount of infrared light falling on the phototransistor, translating invisible infrared light into visible white light. The installation allows viewers to see something in the environment [...]

Robot Canon is a musical performance composed for and operated by one man and three robotic xylophones. The project stems from the creation of music through melodic layering, phase-shifting, and the repetition of minimal melodies. Robot Canon expresses the arduous and laborious relationship between man and machine.
Three identical robotic xylophones were built to play four [...]

It amazes me that websites dont accept vcards for your registration info.

CompForm Final

Original post by vaibhav bhawsar on A-bog
9:02 am | Categorized: ITP 2008, computational form | Comments Off

Slimbox: Required libraries not loaded. Call <txp:smd_slimbox_inc /> in the <head> of this page.

The screen component for the performance reacted to the instrument I built for the NIME class. For this I had to interface MAX/MSP to C++ via openFrameworks and OSC.
The visual idea was to extract colours out of images and simultaneously erase them in the process. Image pixels were used to read colours and then the colours were mapped onto a stroke that was modulated depending on sensor values from the instrument. The speed with which the image lost colours depended on how the instrument was played (fast/slow) and on certain other parameters.

udder in use:

Problem 1. Add the OpenGL lighting code to your project. This code may be placed in the init() function or in the displayFunc(), if you want to move or change the light.

void init ( GLvoid )
{
	glShadeModel( GL_SMOOTH );
	glClearColor( 0.1, 0.1, 0.1, 1.0 );
	glEnable ( GL_COLOR_MATERIAL );
	glEnable( GL_BLEND );
	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
	glEnable(GL_DEPTH_TEST);
	//turn on GL lighting
	glEnable(GL_LIGHTING);
	// turn on first light
	glEnable(GL_LIGHT0);
	//setup lighting params
	float ambientLight[4] = { 0, 0, 0, 1.0 };		//r,g,b,a //omni
	float diffuseLight[4] = { 1, 1, 1, 1.0 };		//r,g,b,a //color of the light bulb
	float specularLight[4] = { 0.8, 0.8, 0.8, 1.0 };	//r,g,b,a //the shiny part of the object
	float lightPosition[4] = { 500, 500, 1000, 1.0 };	//x,y,z,other //pos of the light
	//which light, property, propoertyvalue
	glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);
	glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);
	glLightfv(GL_LIGHT0,GL_SPECULAR,specularLight);
	glLightfv(GL_LIGHT0,GL_POSITION,lightPosition);
	//enable glColor3f to affect the material color
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
}

Problem 1: Add a function called drawWirefame to the Mesh class. This function should draw the Mesh as a wireframe.

void Mesh::drawWireFrame()
{
	for ( int x=0 ; x < gridW-1 ; x++ )
	{
		for(int z =0 ; z < gridH-1 ; z++ )
		{
			//passing an array of three which
                        //out vec3d is into this particular opengl method
			//glVertext3fv( (float*) &grid[i][j]);
                        //——–
			Vec3d A = grid[x][z];
			Vec3d B = grid[x][z+1];
			Vec3d C = grid[x+1][z+1];
			glBegin(GL_LINE_LOOP);
			glVertex3f( A.x , A.y , A.z );
			glVertex3f( B.x , B.y , B.z );
			glVertex3f( C.x , C.y , C.z );
			glEnd();
                        //——–
			A = grid[x][z];
			B = grid[x+1][z+1];
			C = grid[x+1][z];
			glBegin(GL_LINE_LOOP);
			glVertex3f( A.x , A.y , A.z );
			glVertex3f( B.x , B.y , B.z );
			glVertex3f( C.x , C.y , C.z );
			glEnd();
		}
	}
}

Problem 2:Add a function called drawShadedSolid to the Mesh class. This function should draw the Mesh as a solid form with shading.

void Mesh::drawShadedSolid()
{
	for ( int x=0 ; x < gridW-1 ; x++ )
	{
		for ( int z=0 ; z < gridH-1 ; z++ )
		{
			Vec3d A = grid[x][z];
			Vec3d B = grid[x][z+1];
			Vec3d C = grid[x+1][z+1];
			fillShadedTriangle(A,B,C);

			A = grid[x][z];
			B = grid[x+1][z+1];
			C = grid[x+1][z];
			fillShadedTriangle(A,B,C);
		}
	}
}
void Mesh :: fillShadedTriangle(Vec3d A, Vec3d B, Vec3d C)
{
	float shading;
	//define vectors AB and AC
	Vec3d AB = B-A;
	Vec3d AC = C-A;
	//and compute the cross product between them
	//this is perpendicular to AB and AC
	Vec3d N = AB.cross(AC);
	//normalize the cross product
	N.normalize();
	//copy the light vector and norm it
	Vec3d L;
	L = light;
	L.normalize();
	//shading is the dot product, Light (L) is projected onto N
	shading = L.dot(N);
	if(shading <= 0)
	{
		shading = 0.0;
	}
	//compose the final tone of color
	glColor4f(shading*Red,shading*Green,shading*Blue, Alpha);
	glPushMatrix();
	glBegin(GL_TRIANGLES);
	glVertex3f(A.x,A.y,A.z);
	glVertex3f(B.x,B.y,B.z);
	glVertex3f(C.x,C.y,C.z);
	glEnd();
	glPopMatrix();
}

Problem 3:Add a function to the Mesh class called makeExtrusion. The function should take as inputs an array of points that define the extrusion shape, the number of points in the shape, and the depth of the extrusion. In order for this to work correctly, the number of points in the extrusion shape should equal either the width or height of the mesh.

void Mesh::makeExtrusion(Vec3d* shape, int depth)
{
	for ( int D =0 ; D < gridW ; D++ ) //for each depth
	{
		for ( int A = 0 ; A < gridH ; A++ ) //draw
		{
			float x = shape[A].x;
			float z = depth / (gridH-1) * A; // D * depth; //this is what i was doing
			float y = shape[A].y;
			grid[D][A] = Vec3d(x,y,z);
		}
	}
}

Problem 4. Add a function to the Mesh class called makeRevolution. The function should take as inputs an array of points that define the revolution profile, and the number of points in the profile. In order for this to work correctly, the number of points in the profile should equal either the width or height of the mesh.

void Mesh::makeRevolutionProfile(Vec3d* profile)
{
	//should have a center vec3d so
        //that you can move this thing around
	float radius = 0;
	for (int D =0 ; D < gridH ; D++) //number of rings
	{
		radius = profile[D].y; //set the x of the profile as the radius
			for ( int A = 0 ; A < gridW ; A++ )
			{
				float ang = A / (float) (gridH-1) * 2 * PI; //npoints-1 so that compensate
				float x = radius * cos (ang);
				float y = profile[D].x;
				float z = radius * sin (ang);
				grid[D][A] = Vec3d(x,y,z);
			}
	}
}

Problem 5. Add a function to the Mesh class called makeSphere. The function should take as input the radius of the sphere. The latitudinal and longitudinal divisions of the sphere will depend on the width and height of the mesh.

//--called in the init()
	int sPoints = 60;
	sphereMesh = new Mesh(sPoints,sPoints);
	sphereMesh2 = new Mesh(sPoints,sPoints);
	Vec3d* circle = generateSemiCircle(100,sPoints);
	sphereMesh->setColor(1,.2,.2,.5);
	sphereMesh->makeRevolutionProfile(circle);
	sphereMesh2->setColor(.2,.2,.2,.8);
	sphereMesh2->makeRevolutionProfile(circle);
//-----------helper func to generate a semicircle of points-----------
Vec3d* generateSemiCircle(float r, int nPoints)
{
	Vec3d* p = new Vec3d[nPoints];
	for ( int i=0 ; i < nPoints ; i++ )
	{
		float ang = PI / (nPoints-1) * i;
		float x = r * cos(ang) ;
		float y = r * sin(ang) ;
		p[i] = Vec3d(x,y,0);
	}
	return p;
}
//———-called within displayFunc———–
sphereMesh->drawSolid();

clipped by: res_hive

Clip Source: www.mmparis.com

Comp Form: CFOF

Original post by Che-Wei Wang on cwwang.com
8:21 pm | Categorized: C, Comp Form, ITP, ITP 2009, Software, blog | Comments Off

CFOF is an audio to visual translator that maps audio frequencies and volume onto a minimal surface (Catalan’s Surface).

We (me and Tim) finally got a final (for now) version of our music data visualization system - Push Music(); PopMusic();. This project was also shown at the ITP’s Winter Show’07 where we got a good amount of feedback and ideas for future developments.
From the past versions the biggest changes were a slightly softer control system of the view mode (using only the 2 mouse axis for zoom and rotation); alpha blending implementation and better color modulation; neutral data (0 value) is not drawn; reduced the number of gears; implemented metronome marker as a blinking layer(on tempo and being drawn on the current time of the playhead).

here are some pics from Tim at the Winter Show ::

and a video demo of Push Music(); PopMusic(); system running on ‘Forever19′ LordX’s track.

more info, pic’s and videos at Tim’s Blog::

clipped by: res_hive

Clip Source: malfunc.net

clipped by: res_hive

Clip Source: malfunc.net

clipped by: res_hive

Clip Source: resoulution.com
  Ronald Kurniawan at In Pictures We Trust

clipped by: res_hive

Clip Source: www.wired.com

clipped by: res_hive

Clip Source: www.wired.com

Designing the New Slot Machine
I meant to post this a while back but have been swamped. The article is basically about how slot machines are the money makers for casino but are mainly played by older generations (think Baby Boomers). So the dilemma is how do you make the slots more appealing to younger people? [...]

clipped by: res_hive

Clip Source: www.time.com
Floating paper lanterns are released over the ocean in Khao Lak, Thailand, in honor of the victims of the 2004 tsunami.

clipped by: res_hive

Clip Source: www.flickr.com

clipped by: res_hive

dinosaur

Original post by stefaniewu on nomadewu
1:43 am | Categorized: ITP 2008, Uncategorized | Comments Off


menschen

Original post by stefaniewu on nomadewu
1:42 am | Categorized: ITP 2008, Uncategorized | Comments Off


katze

Original post by stefaniewu on nomadewu
1:41 am | Categorized: ITP 2008, Uncategorized | Comments Off


i love new york

Original post by stefaniewu on nomadewu
1:41 am | Categorized: ITP 2008, Uncategorized | Comments Off


clipped by: res_hive

ITP Fall 2007 Wrap Up

Original post by Admin on Nick Hasty
6:18 pm | Categorized: ITP 2008, Uncategorized | Comments Off

My penultimate semester at ITP has come to a close, and it was my busiest yet. I’ll post more details soon, but for now enjoy these photos of my instruments in action during the NIME performance and the ITP Winter Show.
NIME:

ITP WINTER SHOW:

Mouna Andraos’s class, fall 2007
Tuesday 9:30 am - 12 pm

Final projects breakdown
WEEK 11: Tuesday, November 13th
Group A presents first prototype.15 minutes total per group.

WEEK 12: Tuesday, November 20th
Group B presents first prototype.15 minutes total per group.

WEEK 13: Tuesday, November 27th
Group A presents final projects.25 minutes per group.

WEEK 14: Tuesday, December 4th
Group B presents final projects.25 minutes per group.Documentation of final projects due for both Group A and Group B.

GROUP A:
Heather + Amanda DIY comics
Amy + Mike Semiotech
Aram (+ Mitch):PATHWAYS
Oscar Light Wave DJ
Jody: documentation is here — www.jodyzellen.com/nyu/pcomfinal
Jiaxin + Feihu—Driving GoogleEarth?
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_1/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_2/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_3/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_4/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_5/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_6/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_7/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_8/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_9/applet/
—http://itp.nyu.edu/~fy263/2007FallFinal/_2007FallFinal_10/applet/

Two weeks ago Paramount Pictures released “Bee Movie.” The plot involves a bee student that graduates from college with only one career choice—honey. This typical massively marketed film release—which included huge billboards of the letter “B”, flashy web banners on hundreds of sites, and a trailer featuring George Michael’s classic tune, “Freedom”—has since [...]

Finally, winter break is coming! Finally, I got my first unlimited monthly Metro Card! So, now, I can go to anywhere I wanna in NY! FINALLY!

thus far….

Original post by Andy Doro on andy doro blog
3:35 am | Categorized: ITP 2008 | Comments Off

Investigations of Hertzian space. continuation of work done in Project Development Studio.

In the end wound up producing Electronic Copy (Infrared Detector Cloud) with the great Rory Nugent. Interestingly, everyone immediately tried to use their cellphones on Electronic Copy (Infrared Detector Cloud). Once people heard infrared, they also would try using their body heat, thinking infrared means heat.

had wanted to use just a single candle in the center, but this didn’t work for a few reasons: 1) it needs to be very very dark. ambient infrared from incandescent bulbs is enough to light up the circuits, so the contrast of the candle isn’t enough. an infrared filter cuts down the light from the candle even further. 2) the flickering from the candle isn’t very noticeable, so there isn’t that movement which makes the effect exciting. I would love to do this however so I want to keep trying things.

In Live Image Processing, produced a performance using telephone pickups from Radioshack. Called this Statik. The pickup allows EM to be converted into sound. You get a very exciting signature noise to each electronic device, even every part of an electronic device (e.g. laptop’s harddrive vs. screen, etc.).

I have tried an amplified magnetic pickup from Red Lion, but the cheap telephone pickup from Radioshack turned out to work better. Unless I’m not using it right. Need to investigate this.

Also experimented with cellphone flashing charms… this seems like a great way to detect phones. Was used to great effect in cellphone disco. There should be a way to make the output vibration instead of flashing, so I was thinking of creating a wearable device to detect cellphone use.

Welcome!
Please feel free to modify this wiki by adding useful information. Click “edit” and Log in using your NYU Net ID. If you’re new to wiki editing, check out the Basic editing help link in the side-bar on the left.

Note: The MIDI Lab is canceled. It will not be required. But here are the links: syllabus:http://www.tigoe.net/pcomp/midi.shtml
Lab:http://itp.nyu.edu/physcomp/Labs/MIDIOutput

Some notes from Tom about resources for the XBeeXBees: Maxstream.netXBee Breakout boards: sparkfun or droids.it or newmicro.comXbee shields: Libelium.com
Rob Faludi is the go-to person on Xbees. Searching his blog.faludi.com for xbee is a good way to find a lot, fast.

Resident researchers for pcomp:Jeff’s office hours Wednesday 1:30-3:00. You can sign up for a slot here: https://itp.nyu.edu/inwiki/Signup/Jeff

Jenny is holding Office Hours Thursday 1:30-3:30
&
Friday 2-4 . Her sign up is here: https://itp.nyu.edu/inwiki/Signup/Jenny

You can find all the Residents sign up times here: https://itp.nyu.edu/inwiki/Signup/Signup

GROUPS FOR FINAL PROJECT:- Anaid Gomez Ortigoza and David Steele Overholt (from Tom’s class)- SeungJun Lee and HyeJung Chung- Stella Kim and Andrea Dulko(from Han’s class)- Kim - Joora- Theresa, scott jason- jain - karen, steve- natacha, joe - lori, sofia - john - cynthia, armanda- tim- DREW||- Dan

Tom’s Note About Serial

In case you’re curious: To calculate the value for a current limiting resistor for an LED: R = (Vs - Vf) / If Where:

Vs = your source Voltage (usually 5 Volts for pcomp class).Vf = the typical LED forward Voltage, find that in the LED’s data sheet.If = the typical LED forward Current, find that in the LED’s data sheet.


next »