Grasshopper

algorithmic modeling for Rhino

Information

Firefly

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.

Website: http://www.fireflyexperiments.com/
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.

News

Comment Wall

Comment

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

Comment by Nathan Barnes on March 25, 2014 at 4:16pm

That is it precisely! I took Jasons workshop at Texfab 5 and I got a little understanding of how to code arduino's, so that is a route. My goal is to move 16 motors all with reset pins for zeroing. I will be tied up with Arduino boards as it is so combining the code would be great.

Thanks for such an awesome reply Andy

Comment by Andy Payne on March 25, 2014 at 3:58pm

Hi Nathan,

If I understand correctly, what you're saying is you have some motors that you want to control via the Quad Stepper Firmata... and you have some reset buttons (sensors) that you want to read from using the standard Firefly Firmata.  Normally, I would just tell you to add a few lines of code to the Quad Stepper sketch to read data from your buttons and then use the Uno Read component to get that data... but the Quad Stepper sketch already uses some serial commands to get call-backs from the GH sketch.  The easiest solution (for the moment) is to probably just use two different arduinos... one running the Quad Stepper sketch and connected to your motors... and the other running the standard Firmata and connected to your buttons.  You'll likely have to open both ports (to each board), but this is likely the quickest solution...although it isn't very elegant.  I'll try to think of an alternative solution, but it will probably take some re-working of the stepper sketch (which needs to happen anyway).... Just need to find time :)

Comment by Nathan Barnes on March 25, 2014 at 3:08pm

Hey

Wondering if I can get some assistance. I'm trying to get the stepper and reset pin of the delta stratum printer working. I can run the stepper with the quad stepper sketch and I can run read the reset pin if I load the firmata, but I cant seem to load both at the same time.

Any ideas how to better go about it?

Comment by Andy Payne on January 11, 2014 at 5:49pm

Hi Shahriar,

Yes, it definitely should be possible.  In fact, the QuadStepper firmata already uses the AccelStepper library which is also a Adafruit library, so I imagine it's just a matter of using the correct methods for the library you intend to import.  Best of luck.

Comment by Luke Gehron on June 19, 2013 at 1:38pm

I am having the same problem as Matt with the error: 

Solution exception:Could not load type 'Grasshopper.Kernel.Special.GH_ControlKnob' from assembly 'Grasshopper, Version=1.0.0.20, Culture=neutral, PublicKeyToken=dda4f5ec2cd80803'.

Any idea when the fixed version of the component will be out?

Comment by Andy Payne on June 16, 2013 at 7:59am

Hmm... I didn't realize it was actually throwing an error (just a warning).  I will try to release a fix very soon.  And yes... I'd like to release the Leap component in the next version (along with some other new components).  I just have to check with the Leap license agreement and make sure I can release the accompanying .dll files that the device uses.  I will look into this.

Comment by Matt O'Brien on June 15, 2013 at 6:50pm

yeh it seems to be an actually error (red not orange) and no code gets produced..? looking forward to the next release anyhow, will it have leap motion connectivity by any chance? cheers!

Comment by Andy Payne on June 15, 2013 at 4:46pm

Yes... this will happen because the Code Gen (which was compiled against a different version of GH which used to call the Control Knob a Dial).  So, even though you aren't using a knob... the code gen when it compiles itself into a component... has a definition which is trying to specify what happens when it detects a knob in the definition.  When David updated GH, he changed the name... so the SDK no longer knows what a dial is.  I've changed this in future versions of Firefly so it shouldn't be a problem once I release a new version.  Still... I think it should just be throwing you a warning.  Is it an actual error (where the Code Gen doesn't work at all)?

Comment by Matt O'Brien on June 15, 2013 at 4:42pm

Hi Andy,

Thanks for the reply, although it doesn't seem to matter what definition I use, even your "firefly_05_CodeGen" example throws the same error and no code is produced, and there is no knob/dial to be found?

Comment by Andy Payne on June 15, 2013 at 3:19pm

Hi Matt,

This control knob issue is a minor issue that popped up with the latest release of Grasshopper.  It seems David changed the naming convention of the knob (it used to be called Dial).  I've fixed this in the next release... but I don't think it should cause you any issues with still using the Code Gen.  Are you still having trouble?

 

Members (626)

 
 
 

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service