Skip navigation

Category Archives: boids

Call them what you will, but there’s been a huge hype about them some time ago.

Grasshopper’s scripting capabilites are now a huge super cool feature, especially if you’re coding in visual studio (c#) and then pasting the shit or making dlls. I did this some time ago when i suddenly realized that you can declare your own static variables inside scripting nodes (and these guys hold up their values during the updating procedure). And the vector math is already there too.

This is an implementation based on Craig Reynolds‘s neurons, and a little bit on Daniel Shiffman’s processing example (which was updated and used some time ago for this.

Now, if somebody will be nice and implement some collision detection…

PS: I will upload the def. soonish (i have to clean it up a bit first). Ok i didn’t clean it up; here’s the link.

Here’s a new 10 day link: http://dl.transfer.ro/boidsT-Transfer_RO-16Nov-ad56f6.zip

Final link, stable and sound: http://improved.ro/Grasshopper/boidsTCAV.zip

 

prezentare_1250.jpg mobilier-copy.jpg plansafinala3_1200.jpg plandesfasurate_1200.jpg

We started out on this by analyzing the area and its surroundings from the point of view of circulation (more on how we did this). How would people move around? The conclusions from this study where integrated later on in the project.

vederi_1200.jpg

Next we took on the task of (re)creating the landscape – modify the terrain in a functional yet unobtrusive way. Formal concepts revolved around radiolaria, foam, water, waves etc. Luckily we had a working circle packing applet in processing ready (which was used for this). From here on, it was quite straightforward: expand the circles to smooth spherical caps and smartly transform them into urban furniture.

The interstitial space that remained between the”bubbles” is packed with wood alongside the routes we discovered to be ideal using the circulation study. The rest is English lawn :) pure green smartly-cut grass.

This project is a collaboration between Veronica and me.

Tools we used include:
Processing was VERY important early on in the design process – we used it for the circulation study as well as for the early circle packing experiments (size, density, spread etc).

Rhino and RhinoScript: RhinoScript is great – we used it extensively (create spherical caps based on the generating circle’s radius, expand circles, contract circles, import circles which the processing applet generated, etc.). Rhino was used for everything else – 3D modelling and, of course, making valid STL files for the 3D printer and also exporting the right things for the laser printer.

macheta1.jpgmacheta4.jpgmacheta2.jpg

Laser cutting was done here (as always).

3D wax models were kindly made for us by mazarom (at the moment the only 3D printing service in Bucharest). If you need a complicated model, don’t hesitate to contact them!

Plotting the final presentation was done at studio spot. They don’t have a webiste

Things evolve:

portul tomis plansa prezentare

Veronica and me (Dimitrie). This could have looked better, but alas, we had to make a 1m x 1.3m model in the same time.

 or swarm intelligence?

Using processing to make a circulation study in a public area. It’s for the current school project. More details later.

plansa1-copy.jpg

I’ve used Shiffman‘s boids sketch as a start, and gradually started building up with some attractors, Point Obstacles (which are attractors with negative pull basically), and Linear Obstacles (which were a little bit tricky, but this helped out a lot). Also very inspirational were kokkugia‘s experiments.

When it’s nice and propper, I will  add some details and upload the code/sketch.

Thank you and you for inspiration. Check those links out to see how real masters are doing it :)

Now everything’s smoother – esp. camera movement (the camera now aims towards the overall center of the flock).
The applet is here (does not work 100% since opengl in a browser isn’t that common. it surely won’t work if java 5 (1.5) is installed on your machine).
Applications are here (download the appropriate folder for your os).
Command list (ripped from the code):

void keyPressed() {
switch(key) {
case RETURN:
changeCenterAtRandomCode();
break;
case ‘e’:
evade = !evade;
didi.evade(evade);
break;
case ‘b’:
bgclr = color(0, 0, 0);
break;
case ‘w’:
bgclr = color(255, 255, 255);
break;
case ‘r’:
didi.lines();
break;
case ‘h’:
big = !big;
default:
break;
}

Later edit: zipped mac app here, inside the os folder. never thought of this.
Also, take care when using ‘e’ (evade key). press it twice.

Follow

Get every new post delivered to your Inbox.

Join 39 other followers