Friday, July 18, 2008



This is an image from a graffiti artist named Erni that has I think is very cool because it is able to communicate a graffic message while also creating a spatial condition. Also I really liked it because it begs the question of what it looks like from other angles. If this piece existed in real 3D space you would only be able to read its message if you knew where to stand to get the correct vantage point. It creates a spatial code on top of the graffic code which is necessary to be able to read it.

Wednesday, July 16, 2008

Organism Relationship to Itself

-This relationship is the one that gives reason to the form of the building
- There are two major forces governing this relationship

-Communication

- The organization of the growth is a play of objects in 3D to convey a message to those who know how to read it.

- This can be done outwardly for the public as well as inwardly for its inhabitants

-Spatial conditions

- The organization of the growth is also a play of objects in 3D to create different spatial conditions for the community.

Project Statement

For a while I have been struggling with the idea of my thesis statement, because it gave me a place and argument within the realm of architectural discourse as well as half of a process, but it never really informed what the building itself was trying to accomplish. With my thesis statement in mind I feel like my project could have taken any number of different shapes, but I think that this project statement, combined with my system of relationships (of which I am going to post my organism to organism relationship in a little bit) helps give direction and meaning to the actually entity conceived through my thesis.



To accomplish the goals set up by my thesis, I have decided to create a plug-in community for today’s semi-nomadic citizen. In this ever growing global community that we live in, people have a tendency to move around a lot more than they used to. Almost nobody can boast anymore that they live in the house that their grandpa built with his bare hands.

There is an ever increasing population that lives from year to year on their leases, who have the ability to move from one residence, one city, to another on a fairly regular basis. In the past six years I have personally lived in three different cities and six different residences, all of which I called home. This group of people, like myself, however, fall victim to the monster that is leasing an apartment. When you know that you are not going to be in that one place for a while it is hard to feel a part of that community. After you leave, the next people take over your “home” and it completely erases all evidence that you ever existed there.

Graffiti artists have found a way to combat this problem of losing one’s self to the limits of our consumer based lives. Walsh35, a New York graffiti writer, put it best, “How many people can walk through a city and prove that they were there. It’s [graffiti is] a sign that I was here. My hand made this mark. I’m fucking alive!” We could seriously use that sense of self in architecture.

To accommodate the modern day “semi-nomad,” I believe that a new type of residential community must be set up. Just as graffiti artists have taken a stance against commercial billboards and blank walls, which impose their presence on a community without the permission of the people, this new community will take back from imposing architecture. By growing new pieces of architecture onto the infrastructure of existing buildings, this community will create a symbiotic relationship not only with that building, but the city at large.

This will create a time based narrative about a network of like-minded, “semi-nomadic” people who are able to enter (and leave) a system of architectural growth. This system will be governed by a spectrum of relationships linking the symbiotic organisms to the host building, as well as to themselves.

Graffiti Inspiration

"Graffiti writing breaks the hegemonic hold of corporate/governmental style over the urban environment and situations of daily life. As a form of aesthetic sabotage, it interrupts the pleasant, efficient uniformity of planned urban space and predictable urban living. For the writers, graffiti disrupts the lived experience of mass culture, the passivity of mediated consumption."

-Jeff Ferrell

Wednesday, June 25, 2008

Code For Rigid Solid

//realnumber array
float $O1[] = `pointPosition column.vtx[95]` ;
float $O2[] = `pointPosition ball.vtx[25]` ;
// x y z
vector $O1Vec = <<$O1[0],$O1[1],$O1[2]>>;
vector $O2Vec = <<$O2[0],$O2[1],$O2[2]>>;
vector $OrigDiff = $O1Vec - $O2Vec;
float $OrigDist = mag($OrigDiff);

setAttr "turbulenceField1.magnitude" 0;

for ($i=0;$i<500;$i++){

//realnumber array
float $N1[] = `pointPosition column.vtx[$i + 1]` ;
float $N2[] = `pointPosition ball.vtx[$i + 1]` ;
// x y z
vector $N1Vec = <<$N1[0],$N1[1],$N1[2]>>;
vector $N2Vec = <<$N2[0],$N2[1],$N2[2]>>;
vector $Diff = $N1Vec - $N2Vec;
float $DiffDist = mag($Diff);

//print("Current Difference: " + $DiffDist + "\n");

if ($DiffDist <>= 8.5) {

float $Accel = (cos (($DiffDist/$OrigDist)*1.000) * 3.14159) * -0.25;
setAttr "gravityField1.magnitude" $Accel;
setAttr "turbulenceField1.magnitude" 15;
//print ("Current Accel = " + $Accel + "\n");
}

else if ($DiffDist <>= 8.0) {

setAttr "gravityField1.magnitude" 0;
setAttr "turbulenceField1.magnitude" 0;

}

else if ($DiffDist < 8) {

select -r copyOfball ;
duplicate -n ("ball" + ($i)) -rr;
select -r copyOfball;
HideSelectedObjects;

duplicate -n ("column" + ($i)) column;
polyUnite -ch 1 -n ("combined" + ($i)) ("column" + ($i)) ("ball" + ($i));
duplicate -n ("sub") ("combined" + ($i));
delete column;
delete ("combined" + ($i));
rename "sub" "column";

//int $Face[] = `polyEvaluate -f column`;

for ($j=4;$j<23;$j= $j+6){
select -r column.f[$j];
print ("face " + $j);
select -tgl column.f[$j + 113];
print (" to face" + ($j + 113) + "\n");

//Bridge Face Script
//As copied from Maya bonus tools Script

string $selectedFaces[] = `filterExpand -sm 34 -ex 1`;

// get just outer edges of each selected area
ConvertSelectionToEdges;
string $edges[] = `ls -sl`;
select $selectedFaces;
ConvertSelectionToContainedEdges;
string $inEdges[] = `ls -sl`;
select $edges;
select -tgl $inEdges;

// save outer edges in a set since IDs may change when faces are deleted
string $edgeSet;
$edgeSet = `sets -name $edgeSet`;

// delete the faces and perform the bridge on the appropriate edges
delete $selectedFaces;
select -r $edgeSet;
polyBridgeEdge -ctp 1 -tp 0.25 -divisions 5;

// check if any of the selected edges are still border edges since
// this means the face was deleted but not used in the bridge
select -r $edgeSet;
string $outEdges[] = `ls -sl`;
int $borderFound = 0;

int $a = 0;
while($a < `size $outEdges` && ! $borderFound) {
select -r $outEdges[$a];
string $faces[] = `polyInfo -ef`;
string $buffer[];
$borderFound = `tokenize $faces[0] $buffer` < 4;
$a = $a + 1;
}
if ($borderFound) {
warning (uiRes("m_polyBridgeFaces.kWarningExtraFaces"));
}

// cleanup: re-select the edges and delete the set
select -r $outEdges;
delete $edgeSet;

}

for ($k=34;$k<53;$k= $k+6){
select -r column.f[$k];
print ("face " + $k);
select -tgl column.f[$k + 113];
print (" to face" + ($k + 113) + "\n");

//Bridge Face Script
//As copied from Maya bonus tools Script

string $selectedFaces[] = `filterExpand -sm 34 -ex 1`;

// get just outer edges of each selected area
ConvertSelectionToEdges;
string $edges[] = `ls -sl`;
select $selectedFaces;
ConvertSelectionToContainedEdges;
string $inEdges[] = `ls -sl`;
select $edges;
select -tgl $inEdges;

// save outer edges in a set since IDs may change when faces are deleted
string $edgeSet;
$edgeSet = `sets -name $edgeSet`;

// delete the faces and perform the bridge on the appropriate edges
delete $selectedFaces;
select -r $edgeSet;
polyBridgeEdge -ctp 1 -tp 0.25 -divisions 5;

// check if any of the selected edges are still border edges since
// this means the face was deleted but not used in the bridge
select -r $edgeSet;
string $outEdges[] = `ls -sl`;
int $borderFound = 0;

int $a = 0;
while($a < `size $outEdges` && ! $borderFound) {
select -r $outEdges[$a];
string $faces[] = `polyInfo -ef`;
string $buffer[];
$borderFound = `tokenize $faces[0] $buffer` < 4;
$a = $a + 1;
}
if ($borderFound) {
warning (uiRes("m_polyBridgeFaces.kWarningExtraFaces"));
}

// cleanup: re-select the edges and delete the set
select -r $outEdges;
//delete $edgeSet;

}


editDisplayLayerMembers -noRecurse result_geometry column;


break;
}

currentTime $i;
//setAttr -type "string" defaultRenderGlobals.imageFilePrefix ("playblast_"+$i);
playblast -fr $i -format image -fp 4 -orn 0 -cf ("column_" + $i);

}


polySmooth column.f[194:385];
select -r column.f[106:961];
sets -e -forceElement rampShader1SG;
ConvertSelectionToVertices;
lattice -divisions 4 4 4 -objectCentered true ;
soft -c ;
spring -noDuplicate false -wireframe true -wl 2 -useRestLengthPS false -rl 4 -s 1 -d .2 -sfw 1 -efw 1 ;
//select -r ffd2Lattice ;
//turbulence -pos 3.562295 0 5.532889 -m 5 -att 0 -f 1 -phaseX 0 -phaseY 0 -phaseZ 0 -noiseLevel 0 -noiseRatio 0.707 -mxd -1 -vsh none -vex 0 -vof 0 0 0 -vsw 360 -tsr 0.5 ;
//connectDynamic -f turbulenceField2 ffd2Lattice;
//play;

select -r ffd2Lattice ffd2LatticeParticle spring2 ;
HideSelectedObjects;

for ($l=343;$l<500;$l++){

//setAttr -type "string" defaultRenderGlobals.imageFilePrefix ("review_"+$l);
//render persp;
currentTime $l;
playblast -fr $l -format image -fp 4 -orn 0 -cf ("column_" + $l);
}

PlayBlast for Rigid Network

video