Difficult not to anthropomorphize this thing coming into being, but maybe that’s one of the things that’s cool in working with a dynamic structure – the weightless way it subtly sways in the breeze or will ripple in the backdraft of a speeding car or contracts and expands when someone enters much like a giant lung. People always liked to put their hands on the silvery metallic membrane and push in, feeling the negative pressure resistance from inside. This is in contrast to the hard steel of the dumpster in that the silver of the inflato gently reacts and responds to touch.
In conjunction with a form-finding exercise in Kangaroo, I was searching for a way to render a single, closed mesh as if it were an inflatable form made of individual, stretchy panels – think soccer ball. Since I was already starting with a mesh, I needed something that could extrude and manipulate individual mesh faces normal to the face centroid with a certain degree of flexibility. I couldn’t find much online, so I put together a super basic, simple grasshopper file. Aside from some of the typical drawbacks with using meshes in Rhino (which have actually become a lot more workable in Rhino 5), I think it’s reasonably clean.
Download here: http://gracefulspoon.com/downloads/EXTRUDE_MESH_FACE-NORMAL_FINAL.gh
Parametric facade apertures on swooping surfaces are out, parametric emoticons are in. A quick experiment using the image sampler node in Grasshopper to parametrically control the relative ecstatic to furious expression of an emoticon. A sampled pure white pixel on the original background image produces full-mouthed, googly-eyed happiness, while a sampled black pixel will unleash furrowed-brow, pursed-mouth rage. Grayscale pixels produce the range of conflicted emotions in between. Grasshopper definition can be downloaded here, works with any image, but simpler images with fewer colors tend to produce more legible results.
I’ve used genetic algorithms for form finding with a previous project, and that time I was using a tenuous connection between catia, modeFrontier and Robot. So I was excited to see grasshopper begin to natively implement an evolutionary solver with Galapagos. As an initial experiment I started with a classic, something simple – I wanted to find a tessellated form that would enclose the maximum volume using the smallest surface area. I’d like to think that this would produce something unexpected, but it’s pretty much the definition of a sphere. I set up the parametric model to wiggle all over the place with various triangulated densities and differing number sided polygons at each joining segment. My hypothesis was that the form would tend toward symmetry and evolve into the aforementioned spherical shape. I believed that the polygons would tend toward the most sides possible to more closely approximate a circle, later generations evolving away from a triangle toward an icosagon. (Just like on Flatland!)
A couple of observations: Galapagos pretty quickly found the overall shape – smaller radii at the extremes and bulging in the middle – the beginning of a sphere. However, while it tended toward bilateral symmetry, it kept a kink in the first segment that prevented the shape from being perfectly symmetrical. I think the solver got stuck in a local minimum as opposed to a global minimum. Perhaps with a higher mutation level or letting it run for a longer amount it could have jumped out of this. On further checks I found that it was correct, after 30 generations and over 2500 iterations, the surviving croissant-like shape of the optimal designs did have a better SF:V ratio than a perfectly symmetrical design. Perhaps it had something to do with the setup of the parametric model or the way the facets resolve themselves at the extremities?
But in general my hypothesis was proven correct. Which leads to the initial problem with Galapagos. There are a lot of opportunities with this type of experiment and people more clever than me will surely do them, but when you can only solve for one objective it becomes difficult to create truly complex solutions. For instance, with my surface area/volume problem there is only one true pareto solution. Eventually Galapagos will find it, or with enough time and a calculator I could calculate this myself. There is one single, optimal solution, it’s just hidden somewhere amongst a number of parametric sliders. Unless you start getting into multiple, competing objectives, then the pareto point becomes a curve and there are multiple valid solutions, each one involving certain trade offs and a criteria for selection. Say you wanted to find a form with the minimum srf area:volume ratio, but also that form had to have the fewest structural members, or provide the most shade on June 21st, or spatially provide the most potential revenue stream for a project stakeholder. That’s when it gets really interesting and opens the possibility for a design space that includes high performing, unexpected results. It’s a great start, and I can’t wait to see Galapagos evolve.
Download the grasshopper definition for version 0.8.0004 here: http://gracefulspoon.com/downloads/Grasshopper_GALAPAGOS_TEST.rar
Spent the better part of the day playing around with the incredibly cool Kangaroo, the live 3D physics engine for Rhino, developed by Daniel Piker. Images are poor substitutes for showing just how fun this tool is to experiment with, so to get a better idea of the program’s potential see Daniel’s great vimeo page. The above images were part of a series of experiments in dropping a series of cubes through an obstacle course, and pulling points around on a 3D space frame. They were based on tutorials found at the always helpful and inspiring Kangaroo google group page.
The “Curve CP” node in Grasshopper allows a curve to act in a similar manner to a point attractor, but checks the distance for the closest points along the entire length of the curve as opposed to one single, solitary point. Here, the curves are generated from a text object. It basically becomes multiple attractor curves, something that could be used for super graphics or possible a glazing frit pattern. Things get a little hairy in the grasshopper definition (see below) when you start getting a lot of letters, so that needs to get resolved for this to work with an entire sentence, or anything longer than four letters. A script font that creates one continuous line would work perfect, but is something of a cop-out, so in the meantime I may have to consult the pros on the grasshopper forum.
A simple test based on Sanghoon Yoon’s Grasshopper definition for using the new image sampler node, I swapped out a text image for an image image, because, well I just like fonts and 3D I guess. One of the things that’s cool is that the image is “live,” so as you change the text, the grasshopper definition updates. And of course you can also parametrically control the size of the pixels, the multiplication of the heightfield and the overall size of the surface. To get a random color on each polysurface, I modified Dale Fugier’s script located on the rhinoscript wiki page to include a function to assign the object color to the material color so it will render out in vray. See grasshopper definition and code below:
Edit: Added Link to download grasshopper definition and source image file. Click Here (zip file).
I didn’t really cut anything from the presentation included below. So, yeah, there’s a lot of slides. It’s (almost) the entire final presentation. I left it pretty much intact because not only 1) I can never edit my own work, but 2) the project is conceived more as a sci-fi narrative of Beijing and it will hopefully make more sense if read in complete order. And you can always just scroll way down to the end for some sweet images. This was for Ed Keller’s SpeedTerritoryCommunication studio, Spring 2009.
quick project description:
Architecture is a system of control predicated on limitations. This project is a study of the existing control systems in Beijing and a projection of how architecture and technology will merge to change not only prisons, but also the urban environment, the social stratification of society. Also addressed are what confinement and freedom will mean in relation to our relationship with how we build our world.
Detail from my final studio presentation of one symbiotic cell. See also a sankey diagram of the flows of energy through this system here.
This was my final project for David Fano’s (of DesignReform.net fame) Meshing Course. It was an intense introduction to using Grasshopper with Rhino. My goal was too make a parametric array of cells, where each cell could be controlled individually, but changing one would affect all other neighboring cells in the system. Creating this type of recursive system led to a giant 18mb Grasshopper file, but the logic of the node-based layout made it surprisingly simple if you break it down into steps. See more for Vimeo Vids:
Mark Collins & Toru Hasegawa, the masterminds behind Proxyarch, and instructors of the course Search: Advanced Algorithmic Design at Columbia, ‘remixed’ the audio waveform code into something much more smooth and elegant. They’re awesome, and there were a lot of super interesting projects from the course which can all be viewed in the video here.
Quick Project Desciption: Airports typically attempt to be all things to all people, resulting in general inefficiency and awkward relationships between program spaces. By seeking new opportunities via trade-offs, for instance a tourist class passenger waiting longer but flying for free, or a business class passenger’s ticket price rises while he waits less in a more luxurious setting, a new circulation map and airport space is created that addresses these disparate groups needs. Optimal relationships between airlines, airport, and users are handled through parametric models and genetic algorithms.
What is the metric for a good design? Or rather, now that parametric modelling allows us to easily create thousands of variations of a given design, how do we chose the “correct” one?
First, Creating a parametric model in catia, whose inputs are optimized through the engineering program modeFrontier with additional structural finite element analysis coming from autodesk’s newly aquired robot. The challenge became how to convert your design position, parti, whatever, into a quantifiable metric that the software can optimize for. For instance, to optimize for material efficiency, you could let the software optimize a shape for maximize volume with minimal surface area. After 3000 designs you’d have a sphere, but things can get very complex fast when you begin optimizing for competing objectives. See our complete studio blog here. Project description…
I was drawn to the metrics of passenger economy and profit. Airports typically attempt to be all things to all people, resulting in general inefficiency and awkward relationships between program spaces and passengers, especially business and tourist class. By seeking new opportunities via tradeoffs, for instance a tourist class passenger waiting longer but flying for free, or a business class passenger’s ticket price rises while creating multiple, separate dedicated entry points that allow shorter waits, a new optimized circulation map presents itself.
Each hanging element is a program + structural column connected by a circulation tube. Within the circulation tube tourist class passengers have the opportunity to fly for free, passing through each commercial program space. One objective is to maximize the length of the tube – thereby allowing more passengers to fly for free maximizing the airports ancillary profits. Another objective is to create an unobstructed space for business class passengers requiring few of the program spaces to touch the ground but rather hang, allowing business class passengers to freely pass through below. The more columns that touch the ground, the more structurally stabe the ceiling space frame becomes, allowing more housing towers above. The program mediates between these competing objectives finding high-performing, unexpected solutions and it becomes the role of the user to rank and chose designs based on desired criteria. Most housing = most columns = fewer business class travellers, etc…