SURFACE PATTERNS FOR GRASSHOPPER

It has been entirely too long since I last posted but that should change over the coming weeks as I've been working on some really amazing projects.  To kick things off, I thought I'd share a one week project that I developed to create a dimple halftone pattern on a surface using a custom build Grasshopper definition which writes the all of the G-code (for a ShopBot CNC mill) in real-time.  I'll talk more about the fabrication setup below, but first... a little about the concept.  I've always been fascinated with the skeletal patterns of Radiolarians (a family of microscopic protozoa that float along the ocean floor). Here's aWikipedia link for more information. These creatures (perhaps "fossil" is a better word) were made popular by someamazingly detailed and beautiful drawings made by German biologist Ernst Haekel.

I decided to take something very big (the final piece is milled out of a half size sheet (72"x30") of Corian) out of something that is very very small.  To get the desired relief pattern, I used a 3/4" V-bit endmill on the CNC mill so that the circle diameter had a linear relationship to the depth of the plunge.  Below are some process images showing the original source image and the step needed to take it into final fabrication using the ShopBot Writer definition I developed for this project.

Before I get too far, there are a few precedent projects that I would like to acknowledge.  The 'dimple halftone' pattern idea was a concept developed by Associated Fabrication and 4-pli and was published in Transmaterial 2MachineHistories has also made a series of beautiful panels that can be seen here.  The concept for the work below is inspired by these precedent projects, but the method through which it was employed is new and documented below. 

Radiolaria_01.png
Cropped and zoomed-In on the image.

Cropped and zoomed-In on the image.

Gaussian Blur and Highlight Sampling (blur added to reduce noise in original image).

Gaussian Blur and Highlight Sampling (blur added to reduce noise in original image).

Grasshopper Approximation of Milling Pattern (automatically generates Shop Bot G-code in real-time).

Grasshopper Approximation of Milling Pattern (automatically generates Shop Bot G-code in real-time).

CAD/CAM Preview of Tool Path from Shop Bot Controller (simulation of final cut).

CAD/CAM Preview of Tool Path from Shop Bot Controller (simulation of final cut).

The Final Installed Piece (72"x30"x1/2").

The Final Installed Piece (72"x30"x1/2").

The image becomes more pronounced on the oblique.

The image becomes more pronounced on the oblique.

Radiolaria_08.png

 The parametric process for this project was relatively straight forward. There have been many examples of patterns generated using the Image Sampler component, and this one is pretty similar to those, so I won’t go into great detail about how that part is set up. The Shop Bot Part file format (.sbp) is essentially just a text file with commands about how the machine should behave. The trickiest part on this entire project was learning the exact command prefixes that are needed to drive the machine.  Since these are proprietary (for the Shop Bot), the commands are slightly different than traditional g-code. I found two helpful manuals on the Shop Bot website.

With these two manuals as my guide, it was quite easy to setup the entire tool path part file. I found that the Weave component became very handy when joining together the movements needed for the plunges. I did have to write a little custom code to deal with the header file.  This header works for this specific application (using a V-bit 0.75" dia.) but might need some minor modifications if the method of milling were to change (such as surface milling, or profile cutting as opposed to direct plunging). Below are a few screen captures of the Grasshopper definitions.

Click to Enlarge.

The file is meant to be used for academic, and other non-profit institutions for non-commercial, non-profit internal research purposes. This file was created (and tested) in Grasshopper version (0.7.0055). Results may vary if using a different version.

Disclaimer: This file is provided by Andrew Payne | Lift Architects and is furnished "as is".  Any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed.  In no event shall Andrew Payne be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this file, even if advised of the possibility of such damage.

FLUX OPENING NIGHT

The FLUX exhibition opened last night at the California College of Arts and we had an incredible turnout.  The exhibition explores contemporary architecture and design through its relationship with changes in design technologies such as parametric modeling, digital fabrication, and scripting.  Over 40 projects are featured in the exhibition through drawings, photographs, and specially made models that explore the techniques and processes presented in the projects.  Eight topics dealing with the geometric and performative aspects of the projects are explored: Stacked Aggregates, Modular Assemblages, Pixelated FieldsCellular Clusters, Serial Iterations, Woven Meshes, Material Systems,Emergent Environments.  I was brought in as a parametric modeling and complex geometry consultant to write a Grasshopper definition that would generate the form, ribs, plexi-glass panels, and all of the connection details.  These would in turn be flattened in Rhino so they could be sent directly to the CNC mill.  Final fabrication started just 2 weeks before the opening and because all of the details had been controlled in the parametric model, each of the 4 modules could be constructed in just two and half hours.     

Director of Architecture, CCA: Ila Berman
Project Design and Fabrication: Kory Bieg, Andre Caradec, Andrew Kudless
Parametric Design Consultant: Andy Payne
Sponsors: K Bieg DesignStudio Under Manufacture, Solid Thinking

Photos courtesy of Kory Bieg 

fluxexhibition_09.jpg
fluxexhibition_23.jpg
fluxexhibition_08.jpg
FLUX_photo_01_small.jpg
fluxexhibition_11.jpg
fluxexhibition_24.jpg
fluxexhibition_13.jpg
fluxexhibition_14.jpg
FLUX_photo_02_small.jpg
fluxexhibition_22.jpg

FLUX FABRICATION

Below are some of the in-progress shots for the FLUX Exhibition which will open on March 30th at 8:30pm at the San Francisco campus of the California College of the Arts. The school is located at 1111 Eighth Street, San Francisco, CA.

Director of Architecture, CCA: Ila Berman
Project Design and Fabrication: Kory Bieg, Andre Caradec, Andrew Kudless
Parametric Design Consultant: Andy Payne
Sponsors: K Bieg DesignStudio Under Manufacture, Solid Thinking

Photos courtesy of Kory Bieg 

Flux_web_01.jpg
Flux_web_01.jpg
flux_11.jpg
Flux_web_02.jpg
Flux_web_03.jpg
Flux_web_04.jpg
Flux_web_05.jpg

FLUX PARAMETRICS

The following are a series of diagrams that help explain the parametric process I used for the FLUX Exhibition which opens in San Francisco on Monday, March 30th.  The entire project was completed using the Grasshopper plugin for Rhino and was used to create all of the flattened information - such as the rib outlines, the plexiglass panels, and all corresponding connection details - which was then sent directly to the CNC mill for fabrication. 

STEP 1:  A series of points, pre-definied in three dimensional space, are referenced into the parametric software. The points can be controlled by a set of sliders that allow translation along any of the orthographic axes, ultimately driving the shape of each interpolated curve that passes through the control points.

STEP 1: A series of points, pre-definied in three dimensional space, are referenced into the parametric software. The points can be controlled by a set of sliders that allow translation along any of the orthographic axes, ultimately driving the shape of each interpolated curve that passes through the control points.

STEP 2:  A set of planes are created at 10½” O.C. along the full length of the curve network. The distance between each plane, which controls the spacing between each rib, can be updated by changing a numeric slider.

STEP 2: A set of planes are created at 10½” O.C. along the full length of the curve network. The distance between each plane, which controls the spacing between each rib, can be updated by changing a numeric slider.

STEP 3:  Because some of the interpolated lines in the curve network do not run the full length of the nave, but instead branch off of the two main lines, the topology of the curves would yeild an unloftable surface. However, the software can solve the intersection between a plane and a curve which results in a point. A line can be created between each new intersection point to form the outlines of each rib.

STEP 3: Because some of the interpolated lines in the curve network do not run the full length of the nave, but instead branch off of the two main lines, the topology of the curves would yeild an unloftable surface. However, the software can solve the intersection between a plane and a curve which results in a point. A line can be created between each new intersection point to form the outlines of each rib.

STEP 4:  The outside rib curves are offset 4” to create the inside of each rib curve. The ribs are then split into four modules for easier installation.

STEP 4: The outside rib curves are offset 4” to create the inside of each rib curve. The ribs are then split into four modules for easier installation.

STEP 5:  Each rib set is then re-oriented to the XY plane to facilitate the CNC milling process.

STEP 5: Each rib set is then re-oriented to the XY plane to facilitate the CNC milling process.

STEP 6:  Once the rib curves have been flattened, the outlines can be offset and subdivided to create a series of notches in the ribs and the corresponding tabs on each side of the plexiglass panels. The software evaluates the length of each piece of plexiglass and determines the number of subdivisions on each side, so that longer panels have more tabs and thus more support than smaller pieces.

STEP 6: Once the rib curves have been flattened, the outlines can be offset and subdivided to create a series of notches in the ribs and the corresponding tabs on each side of the plexiglass panels. The software evaluates the length of each piece of plexiglass and determines the number of subdivisions on each side, so that longer panels have more tabs and thus more support than smaller pieces.

STEP 7:  A detail view of a flattened rib and the corresponding pleixglass panels. The perforations that occur in some of the panels are created in Rhinoscript and are coordinated with one of the eight architectural topics represented in the exhibition.

STEP 7: A detail view of a flattened rib and the corresponding pleixglass panels. The perforations that occur in some of the panels are created in Rhinoscript and are coordinated with one of the eight architectural topics represented in the exhibition.

A screenshot of the final definition used to create the entire FLUX exhibition. Click to enlarge.