grasshopper – john locke http://gracefulspoon.com/blog adventures in architecture Wed, 06 Jun 2018 01:44:43 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.2 Extrude Mesh Faces http://gracefulspoon.com/blog/2013/06/16/extrude-mesh-faces/ http://gracefulspoon.com/blog/2013/06/16/extrude-mesh-faces/#respond Sun, 16 Jun 2013 20:08:32 +0000 http://gracefulspoon.com/blog/?p=3281


 

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

]]>
http://gracefulspoon.com/blog/2013/06/16/extrude-mesh-faces/feed/ 0
=) http://gracefulspoon.com/blog/2013/03/29/3052/ http://gracefulspoon.com/blog/2013/03/29/3052/#respond Fri, 29 Mar 2013 15:45:37 +0000 http://gracefulspoon.com/blog/?p=3052


 

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.

]]>
http://gracefulspoon.com/blog/2013/03/29/3052/feed/ 0
devilish hairpieces http://gracefulspoon.com/blog/2011/12/31/devilish-hairpieces/ http://gracefulspoon.com/blog/2011/12/31/devilish-hairpieces/#respond Sat, 31 Dec 2011 20:27:51 +0000 http://gracefulspoon.com/blog/?p=2456

 
]]>
http://gracefulspoon.com/blog/2011/12/31/devilish-hairpieces/feed/ 0
bucky was right http://gracefulspoon.com/blog/2011/06/05/bucky-was-right/ http://gracefulspoon.com/blog/2011/06/05/bucky-was-right/#comments Sun, 05 Jun 2011 13:06:12 +0000 http://gracefulspoon.com/blog/?p=2257 design-space_galapagos
grasshopper galapagos
galapagos_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

]]>
http://gracefulspoon.com/blog/2011/06/05/bucky-was-right/feed/ 1
kangaroo tests http://gracefulspoon.com/blog/2011/02/25/kangaroo-tests/ http://gracefulspoon.com/blog/2011/02/25/kangaroo-tests/#comments Fri, 25 Feb 2011 18:00:01 +0000 http://gracefulspoon.com/blog/?p=2079 spaceframe012

spaceframe011

spaceframe02

spaceframe03

drop01

drop02

drop03

 

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.

 


grasshopper

]]>
http://gracefulspoon.com/blog/2011/02/25/kangaroo-tests/feed/ 9
inflatable mobile voter center http://gracefulspoon.com/blog/2010/06/20/inflatable-mobile-voter-center/ http://gracefulspoon.com/blog/2010/06/20/inflatable-mobile-voter-center/#comments Sun, 20 Jun 2010 16:50:58 +0000 http://gracefulspoon.com/blog/?p=1689 street_view
A quick entry I put together for a mobile voter registration and information center competition which had a pretty cool set of limitations – it had to be under 1000 dollars, fit inside a 3’x3’x3′ box, and be assembled and ready to hit the streets by September. The immediacy and modest budget were compelling and a nice change of pace. An inflatable structure was used to get around the rigid packaging requirements to produce the maximum volume to surface area, that, and I really dig the giant inflatable union rat that has been popping up around lower Manhattan streets. Unfortunately and inexplicably, the deadline was pushed back to 2011 (which is not an election year) so I guess I’ll be waiting to see how I did.

 

concept1
concept
The gesture of the “i want you” poster was extruded and placed in a cylindrical shape for maximum exposure. Each arm becomes a customizable exhortation to vote and the end cap can be written and erased with a dry erase marker. The gesture is returned by the prospective voter who has to reach into the arms and place the completed form inside the unit.

 

dwgs

 

inflate
assembly

 

elevation

]]>
http://gracefulspoon.com/blog/2010/06/20/inflatable-mobile-voter-center/feed/ 6
closest point on a curve http://gracefulspoon.com/blog/2009/10/21/closest-point-on-a-curve/ http://gracefulspoon.com/blog/2009/10/21/closest-point-on-a-curve/#comments Thu, 22 Oct 2009 02:20:48 +0000 http://gracefulspoon.com/blog/?p=1266 text01
text03a

 

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.

 


text02
text04

text03

]]>
http://gracefulspoon.com/blog/2009/10/21/closest-point-on-a-curve/feed/ 2
parametric image sampling http://gracefulspoon.com/blog/2009/10/15/parametric-image-sampling/ http://gracefulspoon.com/blog/2009/10/15/parametric-image-sampling/#comments Fri, 16 Oct 2009 02:08:48 +0000 http://gracefulspoon.com/blog/?p=1144 imagesampler021
imagesampler04

 

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).

 


imagesampler01
imagesampler03

 

rhino
From Dale Fugier’s ObjectColor.rvb:

 

Sub SetObjectColorRandom

 

Dim objects, red, green, blue, i, material

 

objects = Rhino.GetObjects(“Select objects for randomly color change”, 0, True, True)
If IsNull(objects) Then Exit Sub

 

Rhino.EnableRedraw False
For i = 0 To UBound(objects)
red = Int(125 * Rnd)
green = Int(200 * Rnd)
blue = Int(180)
Rhino.ObjectColor objects(i), RGB(red, green, blue)

 

Call Rhino.ObjectColor (objects(i), RGB(red, green, blue))
material = rhino.AddMaterialToObject (objects(i))
Call rhino.MaterialColor (material, RGB(red, green, blue))
Call rhino.MaterialShine (material, 255)
Next
Rhino.EnableRedraw True

 

End Sub

 
]]>
http://gracefulspoon.com/blog/2009/10/15/parametric-image-sampling/feed/ 11
beijing 2014 http://gracefulspoon.com/blog/2009/05/29/beijing-2014/ http://gracefulspoon.com/blog/2009/05/29/beijing-2014/#respond Fri, 29 May 2009 22:15:39 +0000 http://gracefulspoon.com/blog/?p=509 01
single-cell-section

 

Detail from my final studio presentation of one symbiotic cell. See also a sankey diagram of the flows of energy through this system here.

]]>
http://gracefulspoon.com/blog/2009/05/29/beijing-2014/feed/ 0
grasshopper final http://gracefulspoon.com/blog/2009/05/18/grasshopper-final/ http://gracefulspoon.com/blog/2009/05/18/grasshopper-final/#respond Mon, 18 May 2009 15:09:48 +0000 http://gracefulspoon.com/blog/?p=456 grasshopper rhino 3d meshing
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:

Single Parametric Cell from John Locke on Vimeo.

Multiple Cell Network from John Locke on Vimeo.

meshing02
meshing03
meshing04
meshing05
meshing06
meshing07
meshing08
meshing08b
meshing09
meshing10
meshing11
meshing01

]]>
http://gracefulspoon.com/blog/2009/05/18/grasshopper-final/feed/ 0