algorithmic modeling for Rhino



Firefly offers a set of comprehensive software tools dedicated to bridging the gap between Grasshopper, (a free plug-in for Rhino) the Arduino microcontroller and other input/output devices. It allows near real-time data flow between the digital and physical worlds – enabling the possibility to explore virtual and physical prototypes with unprecedented fluidity.

Location: Cambridge, MA
Members: 626
Latest Activity: Mar 23

Firefly Experiments

As a generative modeling tool, Grasshopper offers a fluid visual interface for creating sophisticated parametric models, but by default, it lacks the ability to communicate with hardware devices such as programmable microcontrollers or haptic interfaces. Firefly fills this void. It is an extension to the Grasshopper’s parametric interface; combining a specialized set of components with a novel communication protocol (called the Firefly Firmata or Firmware) which together enable real-time communication between hardware devices and the parametric plug-in for Rhino.

Key Features

  • Read / Write to Arduino microcontrollers and other devices
  • Visualize Sensor Data within Firefly / Grasshopper
  • Control LEDS, Lights, Motors, Valves and more
  • Control Stepper Motors (for 3d Printers and end effectors) 
  • Stream Web Cams and connect with Mobile Devices (iOS + Android) using OSC and UDP
  • Connect to Internet Feeds and search XML Feeds 
  • Generate code to upload to an Arduino Board
  • Basic sound input and processing tools
  • Datalogging, counting and playback
  • Machine Vision toolkit including edge detection, color filtering, convolution filtering and much more
  • Kinect toolkit including skeleton tracking

A notable distinction for Firefly is that it is the first visual microcontroller programming environment designed specifically for a 3-D parametric CAD package (such as Rhino). This feature means that real-world data, acquired from various types of sensors or other input devices (video cameras, internet feeds, or mobile phone devices, etc.) can be used to explicitly define parametric relationships within a Grasshopper model. Firefly completes the communication feedback loop by allowing users the ability to send information from Grasshopper back to the microcontroller in order to incite specific actuations (ie. lights, motors, valves, etc). Ultimately, this workflow creates a new way to create interactive prototypes.

Discussion Forum

How to Sync with ABB robot controller? 3 Replies

Hey There. A quick question: is there any way to synch Arduino/Firefly with HAL?I have a tool attached to my robot arm and I kinda manually control it through Arduino. I need to use Firefly to parametrically and maybe in almost real time (if…Continue

Tags: IRC5, Arduino, ABB, Firefly, Robot

Started by Mehdi FarahBakhsh. Last reply by GabrielaSullivan Mar 21.

Writing to SPI/I2C devices through FT232H 1 Reply

Hi all.I'm recently working on a kinetic project involving a number of hobby servo motors controlled by a I2C PWM controller PCA9685. (or some of you refer to the famous Adafruit 16 channel 12-bit PWM/Servo Driver - I2C interface )I realize it would…Continue

Started by Victor Leung. Last reply by DanaHill Aug 1, 2022.

Serial read problem in Firefly 7 Replies

Hi guys,I'm communicating with a 3D printer via Grasshopper / Firefly (and eventually) Silkworm.So far, I can quite happily send G-Code move commands to the printer  - which is a Leapfrog Creatr, based on Arduino Mega / RAMPS electronics - via the…Continue

Tags: GCode, Read, Serial, Firefly

Started by fergal.coulter. Last reply by Aaron Porterfield May 16, 2022.

problem while reading/writing 2 Replies

I hawe a problem with writing/reading data in Firefly.I thought it is mine problem with board, but cant understand this stuffContinue

Started by Philipp. Last reply by Jame jim Apr 5, 2022.


Comment Wall


You need to be a member of Firefly to add comments!

Comment by Andy Payne on February 21, 2011 at 1:25pm

Hi Hassan,

I'm a little confused by your question.  Are you saying that Firefly 1.003 or 1.004 are not working on your machine (with Rhino 4 SR8)?  Have you made sure to remove any previous installation files?  Check these locations to make sure any old installations of Firefly have been removed:

C:\Program Files (x86)\Rhinoceros 4.0\Plug-ins\Grasshopper\Components


Then, go to and download the latest version (which is 1.005... released last week).  Please follow the installation instructions found on the download page (you have to copy/past two files into the proper directory).  If this is still not working, could you please post a screenshot of the error message or provide a little more information so we can help you debug this problem.




Comment by hassan.orion on February 21, 2011 at 1:07pm
m using rhino 4 sr8, which grasshopper version will firefly 3 works? firefly 4 wasnt working withit nor is 3?

Members (626)






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service