The Grasshopper Primer - Spanish Edition

Posted on November 18, 2009 by Registered CommenterAOP | Comments3 Comments

After an arduous amount of work the digital publication of the Grasshopper Primer (Second edition) has been translated into Spanish.  The goal of this endeavoer was to bring this knowledge to all interested professionals and students from the Hispanic community.  Congrats to the team for this amazing effort!

Translator's team: Francisco Calvo - Katherine Cáceres, both Chilean architects specialists in Rhino, and also members of Digital Tectonics - www.tectonicasdigitales.com - a web platform based on research in advanced architecture and the impact of new digital technologies in areas such as parametric design and urban simulation models.
Luego de una ardua tarea hemos finalizado la publicación digital del Manual de Grasshopper (Segunda edición) en su versión en español. Esperamos con esto, contribuir a la difusión acerca del manejo de este plugin para todos los profesionales y estudiantes de habla hispana interesados en el tema.

Grupo traductor: Francisco Calvo – Katherine Cáceres, ambos arquitectos Chilenos especialistas en Rhino, y miembros de Tectónicas Digitales – www.tectonicasdigitales.com - una plataforma web de investigación en base a la arquitectura avanzada y el impacto de las nuevas tecnologías digitales en temas como el diseño paramétrico y los modelos de simulación urbana.

Source Files:
The Grasshopper Primer_Spanish Edition.pdf
(size: 13.3mb - right-click and select 'Save Link As' - adobe acrobat needed)
Primer Source Files (size: 193k - right-click and select 'Save Link As' - this is a collection of definitions and Rhino files needed to complete the examples in the primer)

Advanced Grasshopper Workshop in Los Angeles, CA

Posted on November 12, 2009 by Registered CommenterAOP | Comments Off

FORWARD DESIGN OFFICE | LOS ANGELES, CA | ADV. GRASSHOPPER WORKSHOP | DEC. 6th, 2009 | 9:30am-5:30pm

Being able to quickly and efficiently control large amounts of data is vital in order to increase productivity with Grasshopper.  This one day advanced Grasshopper workshop will focus on developing strategies for dealing with complex data structures and list management through a series of well defined tutorials that deal with constraint based and associative modeling techniques.  This class will be similar in nature to the Advanced Grasshopper workshop taught at Forward Office Design in June, 2009 however specific topics can be addressed through participant feedback prior to the workshop (feel free to email me requests of particular areas of interest).  Note, this workshop does not require you to have taken the first workshop but will require a working knowledge of the software.  

If you are interested in signing up for this class, please email Jeffrey Kim at jeffrey@fwdoffice.com.  Cost $299.00 per peson and open to students and professionals (laptops required).

Location: Forward Design Office 758 East Colorado Blvd, Suite 210  Pasadena, CA 91101

TEX-FAB

Posted on October 6, 2009 by Registered CommenterAOP in , | Comments Off

ARLINGTON, TX | INTRO/INTERMEDIATE GRASSHOPPER WORKSHOP | FEBRUARY 6th, 2010 | 9:00am-6:00pm

I would like to thank Andrew Vrana, Brad Bell, and Kevin Patrick McClellan for inviting me to teach two sessions at the first ever TEX-FAB event being held at the University of Texas at Arlington School of Architecture from February 4th-6th, 2010.  The weekend event promises to be an exiciting one with key note speakers, workshops, and an exhibition planned to highlight the growing interest in digital fabrication and design.

TEX-FAB is a new resource for designers, academics, fabricators, and students seeking out the innovative application of digital technology to the physical environment. Within Texas there is an emerging network of companies, institutions, and individuals focusing on the exploration of parametric design and the digital production of building components. Specifically, there is a growing opportunity for collaborative exchange between the academic, technical, and professional communities by leveraging the immense resources found in some of the largest metropolitan centers across the United States. TEX-FAB seeks to create a forum for the exchanges of these ideas and techniques through workshops, lectures, and exhibitions.

Using Grasshopper to Control a Pan/Tilt Servo

Posted on September 12, 2009 by Registered CommenterAOP in , | Comments4 Comments

The above is a follow up video to the posting I made last week showing how we can use a Wii nunchuck to control parametric data in Grasshopper.  However, in this video, we are looking at reversing the flow of information and using parametric data (numeric sliders in Grasshopper) to control two different servos.  In this case, one slider controls the panning servo, while the other controls the tilting servo.

In this demo, we need to set up two different files.  The first is the Grasshopper definition (written for ver. 0.6.0019) which sends the numeric slider information over the serial port via a custom VB.NET component.  This component formats the two variables (the pan slider and the tilt slider) into a string that is separated by a comma.  This comma will serve as our delimeter when we read the data over the serial port on the Arduino side.  You can download the Grasshopper source file below.

On the Arduino side, we first have to understand that serial communication receives individual bytes of information as a stream.  This can become complicated because most data types are more than 1 byte... so you have to understand the data type and then convert it on the Arduino side to the format you are looking for.  In this example, we are reading a string into the buffer and then working through each individual byte until we reach our delimeter (don't forget about the comma).  Once we reach the comma, we pass the data that has been read into the buffer into a variable that ultimately controls one of the servos.  We do a similar process for the second set of bytes after the comma.  The Arduino source code can also be downloaded below.

Again, I'd like to thank Robert Lee for his explanations and insights on how to set up this demo.

Source Files:
Grasshopper_controlling_PanTilt_Servo.pde (Right-click to 'Save Link As') This is the Arduino source code needed to program the micro-controller.  This file was written for Arduino IDE ver. 0017.

Grasshopper to PanTilt Servo.3dm (Right-click to 'Save Link As') This is the Rhino file that accompanies the Grasshopper definition.

Update: Please use the new FireFly toolbar to facilitate the Grasshopper to Arduino connection.  Click here for more information.

Note: These documents are in the public domain and are furnished "as is". The author, Andrew Payne, makes no warranty, expressed or implied, as to the usefulness of the software and documentation for any purpose. This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License. http://creativecommons.org/licenses/by-sa/3.0/us/

Using a Wii Nunchuck to Control Grasshopper

Posted on September 9, 2009 by Registered CommenterAOP in , | Comments2 Comments



The video above demonstrates how we can feed a stream of live sensor data (in this case, I chose to use the accelerometer data from a Wii nunchuck) into Grasshopper to control a parametric model.  I'll be the first to admit that this is not a 'new' demo... In fact, this demo was heavily inspired (in concept) by this video that was created in 2008 that shows how a Wii nunchuck can control a mechanical arm in 3D Studio Max . 

However, my own research was primarily concerned with understanding how to get the sensor data into Grasshopper (and how we can also reverse this flow of information to get Grasshopper to control servos, motors, LED's, etc...) in order to create more complex and sophisticated digitial and physical environments.

Before we get too far, I'd like to say thank you to Robert Lee for his insights on how to setup the VB.NET listener.

Now onto the more technical aspects.  Let's start with the hardware setup.  I am sending the accelerometer data from the Wii nunchuck to an Arduino Diecimila micro-controller which allows me to format the data into a block of code that the Grasshopper VB.NET listener will be able to understand.  I could have spliced up my Wii controller to connect the various parts of the circuit to the appropriate pins on the Arduino board, but I decided to buy a wonderful and cheap little adapter that simplifies the entire process.  You can buy your own from these online stores:

- FunGizmos.com. International shipping for $1 more.
- Tinker.it (UK)
- Little Bird Electronics (Australia)
- Sparkfun. Ships domestic & internationally. Be sure to order header pins too!
- Freduino.eu (EU)

Now, that we've properly connected the Wii nunchuck to our micro-controller, we'll need to program our Arduino board so that it can read the incoming sensor data and send it over the serial port.  For this, I have used a custom built library written by Tod E. Kurt that was designed to help the communication process between a Wii controller and the Arduino.  You can download the "nunchuck_funcs.h" library from his website at: http://todbot.com/blog/.  You can also get the source file needed to program your own board by clicking on the links below.

On the Grasshopper side of things, we need to create a custom VB.NET listener component that can read a string of data coming in over the serial port.  The nice thing about this listener is that it will display any string that is being sent from the Arduino... What you do with that string is another matter... but in this example, we are feeding a string of information that is separated by a comma ",".  The comma will be our delimeter which essentially tells us where to split the string so we can extract the integer value on the left side of the comma (which cooresponds to the X-value of the accelerometer) and the integer value on the right side of the comma (which will cooresponds to the Y-value of the accelerometer). 

Once we have successfully read the data from Grasshopper, we can connect a Timer Component to automatically refresh the solution at a given time interval.  In the video above, I was able to refresh the sensor data at 50 millisecond (the smallest time interval that is currently available in Grasshopper) without any lag or delay.  You can download both the Rhino file and the Grasshopper definition needed for this demo by clicking on the links below.

Source Files:
Wii Nunchuck to Grasshopper.pde (Right-click to 'Save Link As') This is the Arduino source file.  This file was written for Arduino IDE ver. 0017.

Wii Nunchuck to Grasshopper.3dm (Right-click to 'Save Link As') This is the Rhino file that accompanies the Grasshopper definition.

Update: Please use the new FireFly toolbar to facilitate the Grasshopper to Arduino connection.  Click here for more information.

Note: These documents are in the public domain and are furnished "as is". The author, Andrew Payne, makes no warranty, expressed or implied, as to the usefulness of the software and documentation for any purpose. This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License. http://creativecommons.org/licenses/by-sa/3.0/us/

Testing the Grasshopper G-code Writer for 2D Shape Milling

Posted on August 30, 2009 by Registered CommenterAOP in | Comments2 Comments

This video shows some on going research on how the Grasshopper plugin for Rhino can streamline the CNC milling fabrication process; specifically for 2D shape milling on a PADE spin-W 5 axis continuous CNC Work Center.  Special thanks to Matthew Spremulli (former University of Toronto Grashopper workshop attendee) and Greg Everett of the Airport Railings & Stairs Co. Ltd. located in Mississauga Ontario Canada for running the code on their 5-axis CNC mill. 

The original Grasshopper definition has been updated to write both the G-codes (which are the individual groups of numerically controlled functions called packets which tell the mill how and where to move) and the P-codes (which are the instructions that are read by the PADEeasy software to call up the packets in a specific order).  Both sets of codes are streamed automatically to .txt files and are automatically updated upon any changes in the definition or Rhino geometery.

More videos to come on surface milling and 5-axis milling techniques.

Team:
Parametric Modeling - Andrew Payne & Matthew Spremulli
CNC Milling - Greg Everett

Fabrication Tools:

Parametric Modeling Software - Grasshopper plugin for Rhino
CAM Manager - PADEeasy
CAM Controller - OSAI Controller
CNC Milling Machine - PADE spin-W 5 axis continuous CNC Work Center

Fabrication Shop:
Airport Railings & Stairs Co. Ltd. located in Mississauga Ontario Canada

Fall 09 Workshops

Posted on August 25, 2009 by Registered CommenterAOP | Comments Off

SAN FRANCISCO, CA | INTERMEDIATE GRASSHOPPER WORKSHOP | September 13th, 2009 | 10:00am-5:00pm 

Open to all CCA students/faculty who are interested exploring new forms and shapes using generative algorithms, this one day workshop will cover a range of diverse topics with a focus on fabrication techniques.  We will look at the various ways that the graphical algorithm editor can facilitate traditional laser cutting methods and other fabrication tools available to the CCA students. 

This workshop is an extension of the spring Grasshopper workshop and will require a basic understanding of the plug-in (attending the spring workshop is not a pre-requisite).  All inquiries for the workshop can be sent to assistant professor, Andrew Kudless at akudless@cca.edu

BERKELEY, CA  | GRASSHOPPER + GIS WORKSHOP | September 19th-20th, 2009 | 9:00am-5:00pm

LOCAL CODE proposes a new paradigm in architectural design, systematically bringing place-based data to bear on automatic digital modeling and manufacturing, in order to leverage architectural intelligence to multiple, local settings. The work takes advantage of widespread existing research in Geographic Information Systems (GIS) and parametric design, but is among the first the first to synthesize these two strands of thinking and technology to question basic assumptions about the architectural profession, and its role in shaping our changing human landscape. Look for work, including creative-commons licensed scripts and examples, to be distributed in late 2009 and 2010.

This workshop will aim to support the research seminar and thesis studio developed by assistant professor Nicholas de Monchaux.  The workshop is available (limited space) for UC Berkeley students and faculty.  Please contact demonchaux@berkeley.edu if you are interested in enrolling in the workshop.

LOCAL CODE is supported by the Berkeley Center for New Media (bcnm.berkeley.edu), UC Berkeley's Geospatial Innovation Facility, and a grant from the Hellman Family Faculty Fund.


CHARLOTTESVILLE, VA  | GRASSHOPPER WORKSHOP | September 26th-27th, 2009 | 9:00am-5:00pm

GRAPHIC THINKING is a rigorous investigation focused on the exploration of field structures which serve to establish dynamic relationships among multiple systems (social, political, ecological, economic, etc).  This research, led by T. David Fitz-Gibbon Professor of Architecture Robin Dripps, will examine how the Grasshopper plug-in can be used to create various forms of parametrically controlled field structures that might undergo a process of intervention and transformation that ultimately question the relationship between program, context, and environmental energies.  We will explore the different ways that generative modeling makes one think and how this thinking leads to other ways of working with the translation of idea to form.

This workshop will be open to graduate level architecture and landscape architecture students enrolled in the GRAPHIC THINKING course.  Please direct any inquiries to dripps@virginia.edu

Grasshopper G-Code Writer for Surface Milling

Posted on July 29, 2009 by Registered CommenterAOP in , | Comments4 Comments



In this video, we will walk through how to setup a Grasshopper definition that will write the G-code for surface milling on a 3-axis CNC milling machine.  When surface milling - the contouring engine is crucial.  For speed reasons, I found the C# contouring definition written by Giulio Piacentino works extremely well because it allows the user to specify a step distance (tool path offset).  After we have generated the contours (or tool paths) we can subdivide each curve, using the evaluate length component, to create a series of points which will guide the CNC mill head in order.   Because we now have data structures, we can weave formatted text strings that have been derived from the point data into a G-code that will work with the ShopBot CAM software.

As in the previous example, we have formatted our text strings to work with the opensource CAM software, Shopbot.  You can download a free version of the software here: http://www.shopbottools.com/controlsoftware.htm.

 You can also check out this video in HD after the jump.

Note: This video is for demonstration purposes only. Andrew Payne and LIFT architects will not be held responsible for any damages that might arise from using this method. Please consult your machine's operating manual before implementing this fabrication method.

Grasshopper G-Code Writer for 2D Shape Milling

Posted on July 28, 2009 by Registered CommenterAOP in , | Comments1 Comment

In this video, I will explain how to setup a Grasshopper definition that will write the G-code for 2D shape milling on a 3-axis milling machine.  G-codes are the codes that position the tool and do the actual work, as opposed to M-codes which manages the machine.  Actually, there are a whole host of different codes that can be written to control a CNC mill, however G-codes are what we are most interested in for this definition as it will allow us to streamline our fabrication process by sending the parametric data from Grasshopper directly to a CNC mill.

In this example I will be writing the tool path information for a 2D Vornoi Pattern generator, originally written by Sang Hoon Yoon.  You can find his vornoi diagram definition on his site www.sac3.blogspot.com.  This video explains how to use your data-structure (trees) to help weave together various text strings which control how the CNC mill head will operate.

I have formated the text strings to work with the open source ShopBot CAM software.  This software is excellent for many reason, not least of which is the fact that it's free and has a large online help community... much like Grasshopper.  It also allows the user to preview the cut even if their computer isn't connected to an actual CNC mill which can come in handy while testing out your cuts.  Syntactically, ShopBot part files are setup slightly differently from traditional G-code which harkens back to the days when cutting files were stored on punched tape and it's format was optimized for brevity.  You can find a lot of helpful resources on how to setup ShopBot part files in their Programming Handbook

You can check out this video in HD after the jump.

Note: This video is for demonstration purposes only.  Andrew Payne and LIFT architects will not be held responsible for any damages that might arise from using this method.  Please consult your machine's operating manual before implementing this fabrication method.

University of Toronto 3-day Grasshopper Fabrication Workshop

Posted on July 8, 2009 by Registered CommenterAOP in | Comments6 Comments

I am pleased to announce that I will be teaching a 3-day fabrication workshop at the University of Toronto from July 17th-19th.  The first two days of the course will be set up to teach the fundamentals of the software plugin and we will work through a diverse range of topics.  However, the third day will be focused on the construction of a full scale urban intervention where we will be using Grasshopper to facilitate the fabrication of a full scale prototype.  We will examine Toronto's existing urban infrastructure, namely it's post and ring bicycle lock system, and develop a parasitic design that can be modified for each site's unique characteristics (such as volumetric dimensions (length, width, height), bike lock spacing, screening systems and solar orientation, and acoustical response.  We will also be using a 5-axis CNC Mill (PADE Spin-W) capable of machining 1.2m in the z-axis and roughly a 2.5m x 2.5m x-y bed-size. 

I'd like to thank Matthew Spremulli and Valentina Mele for helping organize the event.  The workshop is open to University of Toronto students only and is currently sold out.  I will be posting more about the workshop and some fabrication shots very soon.  Stay tuned!

Update 21 July: Below are a few screenshots from the workshop hosted at the University of Toronto this past weekend.  We really covered a lot of ground and the images below display an amazing amount of progress made for students who were completely new to the software system (after just 2 days).

The Grasshopper Primer - Chinese Edition

Posted on June 9, 2009 by Registered CommenterAOP in | Comments4 Comments

A huge congratulations goes out to Wu Di (aka Woody) and his team of translators for taking on the arduous task of translating the entire 160 pages of the Grasshopper Primer (second edition) into the Chinese language.  Months of hard work went into this translation and it is our hope that this printing will help spread information about this powerful software plugin to mainland China and across the world.  Wu Di has graciously offered to answer any questions you may have about this edition and you can reach him by his email address wudiwudi1212@gmail.com or at the Chinese 3D forum website http://g.shaper3d.cn.

Source Files:
The Grasshopper Primer_Chinese Edition.pdf
(size: 6.3mb - right-click and select 'Save Link As' - adobe acrobat needed)
Primer Source Files (size: 193k - right-click and select 'Save Link As' - this is a collection of definitions and Rhino files needed to complete the examples in the primer)

The Grasshopper Primer - Japanese Edition

Posted on June 4, 2009 by Registered CommenterAOP in | Comments Off

After a monumental effort from Rhino specialist Atsuo Nakajima, the Grasshopper Primer has been translated into Japanese.  The tutorials found in the Japanese edition have been written to work with plugin version 0.6.0012 and will match the first set of chapters in the second edition (English version).  These tutorials primarily deal with getting familiar with the plugin interface and will walk new users through the process of creating beginning and intermediate level definitions.  For now, the main difference between the two editions is that the advanced chapters dedicated to VB scripting and creating your own custom components can only be found in the English edition.  Personally, I am extremely excited about this release, as it is a fantastic addition to the growing community dedicated to helping people around the world help understand this amazing tool.  Should you have any questions about this version, please feel free to contact Atsuo at the address below.

Atsuo Nakajima
151-0063 Tomigaya 1-6-9 A-1 Bldg, 2F
Shibuya, Tokyo, Japan
(tel) 81-3-5790-8431 (fax) 81-3-5790-8432
(email) nakajima@applicraft.com
URL:http//www.applicraft.com http//www.rhino3d.co.jp

Source Files:
The Grasshopper Primer_Japanese Edition.pdf
(size: 8.44mb - right-click and select 'Save Link As' - adobe acrobat needed)
Primer Source Files (size: 193k - right-click and select 'Save Link As' - this is a collection of definitions and Rhino files needed to complete the examples in the primer)