Upcoming Events

Jason Kelly Johnson will be running a one-day intensive Firefly/Arduino Workshop "RESPONSIVE BUILDING FACADES" on July 27, 2012 in San Francisco (as a part of the Architect's Newspaper "Art and Science of Building Facades" Symposium.) Register here.

*Read Jason's Hardware Recommendations blog post for 2012-13 Firefly Workshops.  

Are you teaching or participating in a workshop that is using Firefly?  Let us know about it and we'll feature it here on the Firefly website! (info@fireflyexperiments.com)

Note: You can also download these files directly at: http://www.box.net/firefly

*Please sign-up for the Firefly Mailing List to receive e-mails about software updates.

Firefly Installation Files (included in zip file)

The Firefly.gha and Firefly_X.gha (Grasshopper Assembly files) are the most current build file which gives you access to all of the Firefly custom components needed to communicate directly between the Arduino and Grasshopper.  There is also two external libraries included in the zip file which must also be installed in order for Firefly to work properly.  The C_sawapan_media.dll library was created by Panagiotis Michalatos and Sawako Kaijima - founders of Sawapan, a computational design and consultancy group based out of London, UK.  For more information about their work, visit: www.sawapan.eu.  The libTUIO.dll library was developed by Martin Kaltenrunner and Ross Bencina at the Music Technology Group at the Universitat Pompeu Fabra in Barcelona, Spain and is used in conjunction with the ReacTIVision camera tracking engine.  Please follow the installation proceedures below for more information about how to install these files.

Firefly Arduino Sketches (included in zip file)

The Firefly Arduino Firmata is a sketch that is uploaded to your Arduino board once. This sketch initializes all of the pins on the board and establishes the basic communication protocols between Grasshopper and the I/O board. Note: this code is open source and can be modified at the users discretion if needed.

Grasshopper Examples (included in zip file)

A series of Firefly/Grasshopper examples files are provided to teach specific topics and to get you up and running in no time.  Copies notes and diagrams have been added to these tutorials to thoroughly explain the process.  More tutorials will be added to the list in future releases.

Firefly Primer (pdf format)

If that wasn't enough, there is a Firefly Primer (manual) which provides an in-depth look at each individual component and walks you through the entire process of using this powerful new tool (from installation to final output). It also includes some basic tutorials, links and references to get you up and running quickly.

Getting Started


In order to begin working with Firefly, you'll want to make sure you have the following software installed on your computer:

  1. Rhinoceros 4.0 (or 5.0 WIP beta)
  2. Service Release 9 (for Rhino)
  3. Grasshopper (version 0.8.0050 or higher)
  4. Arduino IDE (Integrated Development Environment)

Step 1 (Install the Firefly Toolbar - only needed once)

The first thing we'll want to do is to copy and paste the Firefly.gha and Firefly_X.gha files (found inside the zip file above) and the two external libraries libTUIO.dll and C_sawapan_media.dll into the proper Grasshopper directory.

First, launch Rhino and type the word ‘Grasshopper’ in the command line. This will launch the Grasshopper editor.

  • Click on File>Special Folders> Components Folder.
  • Delete any older versions of Firefly (either older .gha files or the libTUIO.dll or C_sawapan_media.dll) if they are already installed on your computer.
  • Next, open the Firefly Installation folder (in the .zip file you just downloaded) and copy all four files (Firefly.gha, Firefly_X.gha, C_sawapan_media.dll and libTUIO.dll)  into the Components Folder that was opened from within Rhino.

Note: All fourof these files have to be copy/pasted into that directory for Firefly to run properly.  This process only has to be done once!  Make sure to remove any prior Firefly installation files (if you are upgrading from an earlier release and had the build files stored in this folder). 

If you had installed an earlier version of Firefly and you had placed the build files in the C:\Program Files (x86)\Rhinoceros 4.0\Plug-ins\Grasshopper\Components directory... please remove them!

Now, Restart Rhino and Grasshopper

This time when you launch Grasshopper, you should see a new Firefly tab at the top of the Grasshopper
Editor. Congratulations! You’ve now installed the Firefly toolbar.

Note: If you are having problems getting Firefly to load properly in Rhino 5.0 beta, try the following steps:

  • Open the Special Components folder (where we just copied the 3 files) and right-click on each file and select "Properties". Under the General tab, check the box to "Unblock" the file.  Do this for each of the three files.
  • Now, Restart Rhino and Grasshopper

Step 2 (Load up the Firefly Firmata - only needed once)

We're going to assume that you've already installed the Arduino IDE (the software needed to upload programs to the Arduino board) and have downloaded the appropriate drivers.  But, just in case this is your first time, you should probably take a look at these tutorials (Win, Mac).

In order to begin working with Firefly, we'll first need to program the Arduino to set up all of the pins so that they can communicate back and forth with Grasshopper.  Fortunately, we've already taken care of all the dirty work, so you don't have to worry about a thing.  First, copy/paste the folder named “Firefly_Uno_Firmata” (which contains an Arduino sketch called Firefly_Uno_Firmata.ino) into your Arduino Sketchbook folder which is usually found in one of two places:

  • My Documents\Arduino
  • Username\Documents\Arduino

Now, launch the Arduino 1.0 IDE application and open the Firefly Firmata sketch: File > Sketchbook > “Firefly_Uno_Firmata.ino”.  Click on Tools > Boards and make sure you have assigned the appropriate board.  Now, click on Tools > Serial Port and make sure you have designated the appropriate COM # (these are automatically assigned when you connect your board to your computer).

Note: You'll want to make a note of the Serial Port number.  We will use this again once we get into Grasshopper.

The only thing that is left is to upload the sketch to the board.  Select the "Upload to I/O Board" button (at top).  Wait a few seconds - you should see the RX and TX leds on the board flashing. If the upload is successful, the message “Done uploading.” will appear in the status bar. You will keep the USB connected to the Arduino - this is how Firefly will communicate with the sensors, motors and LEDS connected to the board.

Congratulations! Your Arduino board is now ready to "talk" to Grasshopper.

Step 3 (Have Fun! - needed everytime)

Your now set to start playing around with Firefly.  Launch Rhino, and type the word "Grasshopper" into the command prompt to launch the Grasshopper Editor.  Open one of the example files located in the 'Grasshopper Examples' folder (inside the zip file) and begin exploring the connection between the physical and virtual worlds!