Category Archives: code
The assignment was loosely formulated so as to allow maximum freedom in identifying problems and needs in the Lipscani area and proposing an architectural (built) solution that would tackle the aforementioned points.
My vision concentrated on issues relating to the poor visibility/readability of the overall area (and the necessity of a landmark) and the lack of “free” public urban space. The functional program was mainly derived from the observation that most historic centers (Lipscani being a prime example in this) loose their initial cultural and traditional economic value in favor of the over-dominant bar/cafe. This leads to a certain repetition of fluxes (economic, cultural, pedestrian) which harms the respective area.
Geometry-wise, my proposal respects local aspects of the area, namely its porosity and the way the urban tissue coagulated around narrow winding streets and small interior courtyards in a constantly surprising lattice.
In respect to this approach, i considered the lot as a solid volume on which forces are applied in respect with the openings and general director lines of the site. Performing a “structural” analysis on the site revealed the patterns by which these forces would naturally flow towards given points of rest (namely the designated openings of the courtyards). Using topological optimization techniques these patterns were transformed into geometry which was later subtracted from the original body thus giving the overall shape of the building.
By following this design method I ensure an optimal circulation flow through the built site, encouraging interaction and furthering the development of the local urban tissue in a manner very close to its characteristics (gained by spontaneous evolution) thus fully integrating the new implant.
That’s wrapper of the last month, give or take.
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.
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
Deprecated. There’s a new version here.
More as a scripting experiment, when i was mucking about trying to make the delaunay triangulation work in grasshopper i somehow found the wonderfully complex qhull library which i promptly set to push and pull to get it to work with grasshopper. As advised on their website, the best way to do it is to call it as an external program, which is exactly what i’ve done: no files are written or read, no dos windows pop up, everything’s smooth.
Given that you don’t have many complex operations in grasshopper after the solution is generated, you’ll be able to handle quite an impressive amount of points (say 200 on my three-year old toplap) in real time. If you add the simple planarSrf operation, then say 60-70 and it gets sloppy.
What you’ll need to do to get things rolling:
0. Download the 3dvqhull definition and example file, and remember not to use it for commercial purposes, share-alike whatever you do with it and take the time to give the proper credits:
1. Download qhull, and unzip it in a folder of your choice.
2. Get going and search for “System.dll”. What you’re interested in is the 2.0 version which you’ll usually find in here: “C:\WINDOWS\Microsoft.NET\Framework\v2.0.5[...]\”. If you can’t find it, I’m amazed grasshopper works for you. Anyway, you can find and install it from here.
If it turns orange, it’s cool.
4. Write in the panel that is linked to the “path” input the full path to the qhull program qvoronoi. You don’t need to add the .exe extension, but you can do it if you feel confortable.
5. There’s just one more thing you should know: facets that contain the infinite vertex are omitted altogether, without remorse. So as to have as little facets tending towards infinitum, I always add the corners of the points bounding box to the input sites.
You can scale the bounding box in respect with its center, or you can just call the whole thing off – it’s your choice.
I think this just about covers everything. Take care and have fun.
PS: Qhull does more than voronoi. So if you have the time to explore and test, please do – the package is very powerfull and it can be used for more than this.
Team project with Veronica Popescu.
Our solution proposed the creation of several interlinked interior and exterior courtyards that both encouraged interaction with the surrounding busy streets while at the same time offering an intimate place to retreat to. Various social and commercial functions requiring different visibility/exposure levels can occupy this space at ground floor level.
The space-partitioning algorithm we used (Voronoi), though a cliche, provided us with the ability to fill-out the space alloted for the project in a coherent, integrated manner without the urbanistic disruptions created by bar-type blocks (or modernist urbanism and its present refinements). Through the parametric approach used (see previous post) we were able to continualy search for the best solution (regarding geometry, overall&floor height/number of stories, surface areas, access at pedestrian level, acces towards the apartments) within a fluent design process. This allowed us to strictly respect the main given restrictions (POT, CUT, etc.) of the assignement while at the same time keeping and fostering the added benefits of continous and easy experimentation.
For those who really like to play with voronoi regions and stuff, here’s the final grasshopper definition file (right click, save target as – else you’ll get a ~250kb of useless xml in your browser window).
The vcell component outputs now individual cells as closed polylines and closed nurbs curves. This is useful if you are using this for some urban project like i am i would have liked to, mostly due to easy offsetting and area calculation possiblities – included in the definition file – or height extrusion – included as well. You can even go further and color (using shaders) each cell coresponding with its mass/area/height etc.
Works with quite anything (initially deisgned for surfaces).
Have fun with it. I still didn’t have the time to put this to a proper, nicely rendered use and it’s been almost a month now since it’s finished. Quite fustrating.
Trying out Grasshopper:
Grasshopper brings to you real close to actual parametric architecture. I guess you’ll be better off reading the description over on the mcneel site.
boring random surface, as seen on the cover of this book.
Here’s the script:
Now that we didn’t win anything (so it seems) I can publish this project. It was great working on it, though a bit stressful towards its final stages…
Here it goes:
This project is a collaboration between Veronica and me.
The urban bacteria is a responsive structure that is not built; it grows following the path dictated by an algorithm that takes into account the geometry of the site as well as the available sunlight. It adapts to almost any given urban space, evolving into an organism fit for the conditions it encounters.
We created in processing (processing.org) an autonomous system that is emergent (it demonstrates an “internal will to reach coherence” – Cecil Balmond). It was used to compute the structure of the bacteria and simulate its growth in a variety of conditions.
It has a life of its own. It pulses along with the variations in sunlight: when there’s a excess/high amount of sunlight available it increases its volume, regaining its initial form as a direct result of a decrease in available sunlight (caused by clouds, sunset). In its “expanded” form it offers more shadow to the pedestrian space below when it is most needed, increasing its quality and, therefore, inviting people to use it.
Daylight > nightlight; natural light > artificial light
During the day, the “urban bacteria” stores the excess energy resulted from sunlight and releases it during the night. The quality of an urban space is linked with the amount of light it receives during the night – this “living structure” proposes an ecological/economical way of transforming daylight into night light, sunlight into artificial light.
The membrane of the structure has a multiple role: absorb sunlight and create shadow during the day and release light during the night. We propose a multi-layered material consisting of two layers of polarizer sheets (in between which there’s another layer of cellophane) superimposed over a photovoltaic lattice that transforms sunlight into energy. The double layer of polarizing material creates an intense visual effect (by speculating small shifts in geometry and sunlight angle) that can be used to enrich the surrounding urban space.
“Urban bacteria” is an autonomous shape living in concordance with the rhythm of the environment.
This project was developed for the Velux IVA competition.
RhinoScript and Processing
Existing geometry in which the bacteria would evolve was constructed in Rhino and then custom-exported as simple rectangular planes in a specially built p55.in file. This would be custom-imported in Processing.
The growth algorithm was programmed in Processing. Running inside the imported geometry the bacteria would grow. The thus-grown (see above for details) structure would be custom-exported for Rhino.
Via RhinoScript, the “bacteria” would be imported and given a form via a custom script that took into consideration the time of day. Fin.
The following workshop, during the dates below:
Thanks also to Aleluya! Barcelona for providing special rates to eastern students…
I had some fun some time ago with plexiglass, a laser printer, rhino, and a very limited and buggy script that made “ribs” out of a surface.
The results were nice, so I decided to share:
Here’s the bugged up script (it’s quite useless, but people may find inspiration where I didn’t):
As I promised, I hand out some of the scripts I’ve written in the course of the latest project.
Massive unroll Script:
Select as many surfaces as you like and then unroll each one of them.
Adaptive fenestration script:
An interesting script that cuts holes in a surface based on the relation with a given attractor(point). I used it to generate a porous membrane for my latest project.
Those were some scripts that have actually proven to be quite stable…
Here are some other potentially super-bugged scripts:
Faceting. – Does the same as the adaptive fenestration script only it also “facets” the seed surface.
home/house: an architectural organism
The house must not be seen as an opaque shell, but as an osmotic membrane.
The built environment intersects with the living environment.
Create a formal and functional interdependence between the architectural object (building) and the subjective object (home).
So you can see what porosity led to.
And here are some pictures of the model:
Balsa wood and plexiglass, nicely cut by CO2 laser.
Getting a grip on the surroundings:
After an initial study of the surroundings, several ways of tackling this project have been bouncing up and down in my head. I won’t go through all the urban analysis of the area, suffice to say that taking into account the general characteristics (building regulations, urban tissue, the relation between buildings and their respective lots) and specific characteristics (how much sun do I get and from where? how much privacy? what role does vegetation play?) I was able to identify some “core variables” around which I could start working.
The site is a corner site. This must be reflected in the construction.
I can’t directly attack the corner due to the constraint pushed by the general characteristic mentioned above – the relation between buildings and their respective lots – they all are free-standing separate objects.
Sunlight. The south is blocked by high-rise (10 stories) buildings. I must get the most out of what reaches the site while still offering a decent level of privacy (imagine 20 apartments looking down into your house).
The program was a classical single-family home (living room, kitchen, dining, 3 bedrooms, study/library, garage). I also wanted to open up the spaces inside towards the garden and the trees (which act as a natural privacy shield) surrounding the lot.
Air must come in and then out (get as much natural ventilation as possible).
Porosity sprang to mind. What if I can create a living, adaptive porous block that acts as a retreat and yet still opens up to let in fresh air, sunlight, perspective and, most important, a family? I investigated a little bit of fractals, went through to fractal architecture and, most important early-on in the design process, (Steven Holl‘s) porosity architecture.
Initial concept (working towards porosity): *note: this is not how the final project looks like. the img below is just a concept sketch.
So, all talk and no scripts? Wait, no!
More to come in the next post. I promise you adaptive (in relation to an attractor/point) porosity on a given surface and a massive unroll script.
‘Script written by Dimitrie Stefanescu
‘Released under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0
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.
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.
Laser cutting was done here (as always).
Plotting the final presentation was done at studio spot. They don’t have a webiste…
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.