Human UI & Quelea plugins

https://www.food4rhino.com/app/human-ui

Check out Human UI for making aesthetically pleasing, interactive scripts. Might be helpful for when you’re making videos next week?

Also Mia found Quelea – agent based systems in grasshopper plugin form:

https://www.food4rhino.com/app/quelea-agent-based-design-grasshopper

https://www.food4rhino.com/app/quelea-agent-based-design-grasshopperhttps://www.food4rhino.com/app/quelea-agent-based-design-grasshopper

Suggestive, not literal architectural drawings

We’ve been discussing a lot the idea of how to represent your second project so that they have an architectural language (but perhaps not literal sections in a building with floor slabs and people). Here are two references we were showing around, so you have the links. Happy section making!

NorellRodhe_Erratic_5_800.jpg

NorellRodhe_Erratic_6_800.jpg

 

 

 

 

 

Taming the Erratic, Daniel Norell + Einar Rodhe

http://norellrodhe.se/erratic

 

the-dock_2000pix_1000.gifGEOMETRIC_PROFILES_2000pix_1000.gif

The Next Port of Call, Bair and Balliet, 15th architecture biennale, Venice 2016

http://bairballiet.com/THE-NEXT-PORT-OF-CALL-2016

 

dfabhouse.ch launch!

Screen Shot 2017-11-22 at 10.45.33 AM.png

http://dfabhouse.ch/

ETH’s NCCR Digital Fabrication has launched a project website. The website has detailed information about the project’s design concept, its building site NEST, and all of the architecture and construction innovations which are being transferred for the first time from the laboratory to a real construction project: the “In situ Fabricator”, “Mesh Mould”, “Smart Slab”, “Smart Dynamic Casting”, and “Spatial Timber Assemblies”

Processing Class Balls

Script for very simplistic bouncing mechanics & using classes

 

Untitled-1.jpg

int number = 20;
int a = number-1;
int i;
Ball[] balls;
int rad=20;

 

void setup()
{
background (255);
size(500, 500);
noStroke();
fill(0);
balls = new Ball [number];

 

for (i = 0; i < number; i++)
{
balls[i] = new Ball(random(0, height), random(0, width), rad, rad, random(-2, 2), random(-2, 2), i, balls );
}
}

 

 

void draw()
{
background (0);
for (Ball bal : balls) {
bal.update();
bal.bounce();
bal.display();
}
}

class Ball
{
float b;
float c;
int sizex;
int sizey;
float incrementx;
float incrementy;
int id;
Ball[] others;

 

Ball(float btemp, float ctemp, int sizextemp, int sizeytemp, float incrementxtemp, float incrementytemp, int idtemp, Ball[] otherstemp)
{
b=btemp;
c=ctemp;
sizex=sizextemp;
sizey=sizeytemp;
incrementx=incrementxtemp;
incrementy=incrementytemp;
id=idtemp;
others=otherstemp;
}

void update()
{

if (b > width || b < 0)
{
incrementx=-incrementx;
}

if (c > height || c < 0)
{
incrementy=-incrementy;
}

b += incrementx; //add incrementX to posX
c += incrementy; //posY
}

void display()
{
fill(255);
ellipse(b, c, rad, rad);
}

void bounce()
{
int j;
for (j=id; j<number; j++)
{
float db= others[j].b – b;
float dc= others[j].c – c;
float distance = sqrt(db*db + dc*dc);
float minDist = others[j].sizex/2 + sizex/2;
if (distance < minDist)
{
incrementx =- incrementx;
others[j].incrementx =- others[j].incrementx;
incrementy =- incrementy;
others[j].incrementy =- others[j].incrementy;
b += incrementx;
others[j].b += others[j].incrementx;
c += incrementy;
others[j].c += others[j].incrementy;
}
}
}
}