Professional Documents
Culture Documents
various filters/analysis components and visualize the image at any point using
this component.
Blur (New Component) - This filter will blur a Firefly Bitmap. The intensity of
the blur can be controlled through the number of iterations.
Brightness and Saturation (New Component) - This filter will modify the saturati
on and brightness of a Firefly Bitmap.
Color Correction (New Component) - This filter will modify the color properties
(red, green, and blue) of a Firefly Bitmap.
Contrast (New Component) - This filter will modify the contrast of a Firefly Bit
map.
Custom Convolution Filter (New Component) - A convolution kernel describes how t
o scale and add together the values of the neighbours of a pixel in order to com
pute a new value for that pixel. Using a custom 3x3 matrix, you can create all
kinds of different image filters including: gaussian blur, edge detection, and s
harpening etc. For more information see the Firefly_15_Convolution_Kernels.gh f
ile included in the Grasshoper examples folder.
Edge Detection (New Component) - Find edges in a Firefly Bitmap.
Emboss (New Component) - This filter will provide an embossing filter for a Fire
fly Bitmap.
Gamma Correction (New Component) - This filter will provide gamma correction of
a Firefly Bitmap.
Invert (New Component) - This filter will invert a Firefly Bitmap.
Replace Color (New Component) - This filter will replace any given color in a Fi
refly Bitmap with another color. The intensity can be controlled with a thresho
ld input.
Sharpen (New Component) - This filter will sharpen a Firefly Bitmap.
Bitmap Sampler (New Component) - Sample a Firefly Bitmap based on an incoming se
t of points for a given filter type (Color, Red, Green, Blue, Hue, Saturation, a
nd Brightness). This component works similarly to the Grasshopper Bitmap Sample
r, only this component is customized for Firefly images. The Bitmap Sampler wil
l return values for a series of points mapped at normalized units. Thus, the lo
wer left hand corner of the image can be found by sampling point (0,0,0) and the
upper right hand corner represents point (1,1,0) - so if you want a normal mapp
ing, you will need the domain of your point grid to fall within a u:{0.0 To 1.0}
and v:{0.0 To 1.0} range. For more information see the Firefly_14_Video_Filter
.gh file included in the Grasshopper examples folder for more information.
Gradient Vector (New Component) - The Gradient Vector component creates a vector
field based on changes in brightness in a Firefly Bitmap. The derivatives dx an
d dy measure how fast the brightness values vary along the x and y axes of the i
mage. If the image were a heigh field then they would measure the slope at each
point along the x and y directions. The two derivatives dx and dy form the compo
nents of a vector called the gradient of the image. The gradient is a vector tha
t at each point points toward the direction of maximum change. For more informat
ion see the Firefly_16_Video_Synthesis.gh file included in the Grasshopper examp
les folder for more information.
Contour Vector (New Component) - The field perpendicular to the gradient is the
mic outputs depending on the feed type. The component also features better pars
ing for CSV files from the existing file. See updated Firefly_08_Pachube.gh exa
mple file for more information.
Is Geometry Selected (New Component) - The Is Geometry Selected component accept
s a list of GUID numbers for specified geometry and will return a true boolean v
alue if the geometry is currently selected. Note: This component requires the u
se of the GH_Timer component (Params/Special/Timer).
Firefly_QuadStepper_Firmata.ino (New Firmata) - Firefly now supports the control
of up to four stepper motors using the Firefly_QuadStepper_Firmata Arduino sket
ch (included in the Arduino Code folder). This sketch uses the AccelStepper wri
tten by Adafruit industries and is available for download at https://github.com/
adafruit/AccelStepper/downloads. Please read the ReadMe.txt file included in th
e firmata sketch folder for instructions on how to install this library.
Quad Stepper Format (New Component) - This component will format incoming data t
o control up to four stepper motors. Note: This component will format the data a
ccording to the Firefly Stepper Firmata. With this component you can control th
e number of steps to move the motors, the maximum speed of the motors, accelerat
ion, and calibration setpoints. Please see the new Firefly_13_StepperControl.gh
file included in the Grasshopper Example folder for information on how to use t
his component.
Quad Stepper Format (New Component) - This utility component will convert an ang
le value in degrees to the appropriate amount of steps to move a motor.
The Firefly Code Generator has been updated to work with the new Arduino 1.0 IDE
. The component now saves all sketches with the appropriate extension (.ino) pe
r the new specifications.
The Upload To I/O Board (Arduino Bake) component has been temporarily removed wh
ile I make some adjustments on how to upload sketches according to the new Ardui
no 1.0 specifications. This component will hopefully become available in the ne
ar future.
All existing Grasshopper examples have been updated to work with Grasshopper 0.8
.0063 and two new examples have been added (Firefly_12_Undulating_Delaunay_Mesh.
gh and Firefly_13_StepperControl.gh). Make sure to check them out.
Firefly_1.0063 (released Oct. 6th, 2011)
-------------------------------------------The Stop Watch component (released in 1.0062) was renamed to Framerate, as it re
turned the time in milliseconds since the data had last been updated, as well as
an estimated frames per second interval.
Stop Watch (New Component) - A new Stop Watch component was created to replicate
the functionality of a real stop-watch. When you set the start input toggle to
true, the timer will start counting, and when you switch it back to false, then
it will return the time in milliseconds for that interval. You can repeating t
his pattern, adding more time each time the stop watch is started and then stopp
ed. You can reset the Stop Watch interval by toggling the reset input.
Bang (New Component) - A new Bang component was added to register edge condition
s for a boolean input. The T-output will register a momentary True value when t
he input toggle has been set to True. The F-output will register a momentary Tr
ue value when the input toggle has been set to False. Note: This component requ
ires the use of a Timer component (Params/Special/Timer). This component is the
equivalent to a Bang component in other programs like Pd, Max/MSP, and VVVV.
Is Key Pressed (New Component) - This is a new component that will register if a
key on your keyboard has just been pressed. Simply specify a string value that
you would like to test, and connect a Timer component to this component. The o
utput will return True if the key was just pressed. This component recognizes a
ll alpha numeric inputs, F-keys, and special keys (like up, down, left, right, c
ontrol, shift, space, etc.)
NOR Flip Flop (New Component) - The NOR flip-flop has two inputs, namely, a Set
input (S) and a Reset (R) input. A simple representation of an S-R flip-flop is
a pair of cross-coupled NOR gates, i.e, the output of one gate is tied to one of
the two inputs of the other gate and vice versa. Thus, setting the output gate
to false requires R=true and S=false, while setting the output gate to true requ
ires S=true and R=false.
AND Flip Flop (New Component) - The AND flip-flop differs from the NOR flip-flop
in the sense that the output gate is determined by its present output state as
well the states of both of its inputs. Thus, in a AND flip-flop, the output will
not change if both S and R are false, but will toggle to its complement if both
inputs are set to true.
Counter (New Component) - Counts upwards and downwards. You can set the directi
on to count, step size, and constraint limits for the counter. Note: This compon
ent requires the use of the GH_Timer component (Params/Special/Timer).
Several new functions were added to the Code Generator Library including: Counte
r, AND Flip Flop, NOR Flip Flop, Bang, Stop Watch, FrameRate, Equality, Larger T
han, Smaller Than.
The Firefly Code Editor (double click on the Code Generator component) has gone
through a major overhaul. The scripting editor still lacks some major functiona
lity (such as verifying a sketch, and uploading to an Arduino board), but many n
ew items have been added for editing Arduino code directly within Grasshopper.
The component will now look for a current installation of Arduino installed on y
our computer, so that it can search for your sketchbook folder. You also have d
irect access to all of the example files that are included in the Arduino IDE.
More functionality will be added to the Code Editor in coming releases.
Some of the Firefly Component panels were renamed.
Firefly_1.0062 (released Aug. 11th, 2011)
-------------------------------------------This is a minor release to fix issues pertaining to the changes made in the most
recent release of Grasshopper (build 0.8.0050). Much of the functionality rema
ins the same as the previous version, however all components have been updated t
o work with this new build.
Stop Watch (New Component) - There is a new stop watch component which will retu
rn the time in milliseconds since the input data was updated. Along with the ou
tput time interval, this component will also return the frames-per-second (fps)
to give you a relative idea of how many solutions are being calculated each seco
nd.
This build unveils the very first attempt at a Firefly Code Editor (which can be
invoked by double clicking on the Code Generator component or through it's comp
onent menu). The Firefly Code Editor is a text editor for modifying Arduino ske
tches. It is similar to the Arduino IDE (or hopes to be in the future), although
it is built directly inside the Grasshopper interface. At the moment, only the
basic functionality exists (New File, Open, Save, Close, etc.) but there will b
e many more improvements made to this over the coming months (including verifyin
g and uploading Arduino sketches to your board). Stay tuned for more information
on this in later releases.
The baud rate on the Wii_Nunchuck sketch was changed to 115200 (from 9600) to be
consistent with the other Firefly Firmata sketches.
any other Arduino sketch by specifying the appropriate file path. For example,
you can upload the Firefly Firmata sketch directly using this component.
NOTE: WinAVR is required to be installed in order for the Upload to I/O Board co
mponent to work properly. WinAVR (pronounced "whenever") is a free suite of exec
utable, open source software development tools which includes avr-gcc (compiler)
, avrdude (programmer), among other things. To install WinAVR on your machine:
- Go to: http://sourceforge.net/projects/winavr/files/WinAVR/
- Click on the folder called "20100110" and download the file WinAVR-20100110-in
stall.exe
- Run the executable and follow the instructions.
UDP Listener (New Component) - User Datagram Protocol (UDP) is a transmission mo
del for sending/receiving messages over a network. The UDP Listener component si
mply opens a UDP port and listens for any incoming message.
An IP address is not required for listening for messages (only for sending messa
ges). The return value is a string.
NOTE: the GH_Timer component should be used to automatically refresh the incomin
g message.
UDP Sender (New Component) - The UDP Sender component sends any string message t
o a specified IP address on the
network through a given port. This can be useful in sending messages to other p
rograms running on another computer
(such as Processing) or other mobile devices.
OSC Listener (New Component) - Open Sound Control (OSC) messages are essentially
specially formatted User Datagram
Protocols (UDP) transmissions. The OSC Listener component works by opening a UD
P port and listening for any OSC
message on the network. It receives a message it creates a data tree structure
which contains the OSC name and the
value (can be floats, integers, strings, etc.). If a new message is received wi
th a different name, then a new branch
is created for that message. However, if message is received and a branch alrea
dy contains that name, then the value
will updated. Use a List Item or Tree Item to retrieve the latest value for eac
h message in the data tree. A reset
toggle can be used to clear the data tree values. NOTE: the GH_Timer component s
hould be used to automatically refresh
the incoming message.
OSC Sender (New Component) - As stated above, OSC messages are specially formatt
ed messages which can be broadcast over a network. In order to send an OSC messa
ge, you must know the IP address of the device you're trying to send the message
to. You must also specify a unique UDP port. Once you have specified the IP a
ddress and the Port, you can connect any type of data (sliders, toggles, panels,
etc.) and it will automatically format the data into an OSC message and broadca
st that to the specified address. This can be useful for sharing files among mu
ltiple computers, allowing certain people access to control different parameters
. Can be used in tandem with the OSC Listener component (above).
For more information about OSC specifications, visit:vhttp://opensoundcontrol.or
g/spec-1_0
XML Search (New Component) - This component allows you to search through an XML
file (either from the web or from a local directory) for a specific element tag,
returning the value of that tag in a list.
State Detection (New Component) - The State Detection component is used when you
want to do some action based on how many times a button is pushed. It checks t
he number of times the current value has switched from HIGH to LOW (or vice vers
a) and whether or not the modulo of that counter value equals zero. If so, it f
lips the state detection output. So, if the modulo value is 2, then every other
time the button is pushed, the state value will switch. Or if the modulo value i
s 4, then every 4th push of the button will trigger the state value to change.
****Bug Fixes****
The speed has been dramatically improved (roughly 10x faster). For performance
reasons, the decision was made to go back to using the built-in Grasshopper Time
r (Parameters/Special/Timer) instead of using the Form Timer that was built into
the previous versions of Firefly. The Grasshopper Timer is now threaded and ve
ry stable.
The Uno and Mega Write components have been overhauled. Each input with a (~) ti
lde symbol can now be set to one of three states (Digial, PWM, and Servo). All
other pins can be set to one of two states (Digital or Servo). Right-click to ch
ange these states. The digital state will allow only HIGH/LOW values to be sent
to the board, while PWM will allow any integer value between 0-255. Similarly,
the Servo state will allow any integer between 0-180. These components are now
much more flexible as Servo control can now be invoked on any pin.
The Firefly Firmata has also been completely re-worked to handle the different v
alues being sent from the Uno and Mega Write components. The code now allows fo
r dynamic attach/detachment of servos, so a servo can be hooked up to any pin.
This makes everything much more flexible.
Not all of the pins on the Mega Write component had been assigned in the previou
s version, so the pin setup on the this component has been reworked.
A bug was found in the Open Port component which would not allow the port number
to be changed after the initial solution was computed. This has been resolved.
The Fader-One-Way and Fader-Two-Way components now rely on the Grasshopper Timer
(Parameters/Special/Timer) to continuously update. This timer is threaded and t
hus significantly faster than the old timer which was built-in to these componen
ts.
A loop counter output was added to the Fader-One-Way and Fader-Two-Way component
s.
A reset input was added to the Playback component to restart the data output.
The Data Log component no longer stores null or empty values.
A small bug was found in the Pachube Read component pertaining to how it dealt w
ith the incoming XML data. This has been fixed.
The Wave component was removed.
Firefly_1.005 (released Feb. 15th, 2011)
-------------------------------------------This is a minor update to fix a bug inside the reacTIVision component which was
causing Rhino to crash when a document was closed.
This is the first major public release of the Firefly Tool bar. New components
include:
Open/Close Port component. Open or close the serial port connection. To be used
in tandem with the Serial Read and Write components to establish the connection
between Grasshopper and the Arduino.
DUEM Read component. Using the FireFly Duemilanove sketch, this component will r
ead values for all corresponding digital and analog pins on the Arduino Duemilan
ove,
Diecimilla, or Lillypad board. Note: This component is meant to be used in tande
m with the FireFly Duemilanove Arduino Sketch.
DUEM Write component. Using the FireFly Duemilanove sketch, this component will
write values for all corresponding digital pins on an Arduino Duemilanove, Dieci
milla,
or Lillypad board. Note: This component is meant to be used in tandem with the F
ireFly Duemilanove Arduino Sketch.
MEGA Read component. Using the FireFly Mega sketch, this component will read val
ues for the corresponding digital and analog pins on an Arduino Mega board. Note
: This
component is meant to be used in tandem with the FireFly Mega Arduino Sketch.
MEGA Write component. Using the FireFly Mega sketch, this component will write v
alues to all corresponding digital pins on an Arduino Mega board. Note: This com
ponent
is meant to be used in tandem with the FireFly Mega Arduino Sketch.
Serial Read (Generic). Returns any string value coming over the Serial Port. Thi
s component does not have any specific Arduino sketch associated with it, which
means
you can create your own code to send a string value from the Arduino using the S
erial.println command.
Serial Write (Generic). Write any string value to the Serial Port. You will need
to also provide some Arduino code to process the string value coming over the S
erial Port.
Pachube Reader component. Read a file from any online Pachube feed. Will require
an online URL and your pachube API key. Visit www.pachube.com for more informat
ion.
Wii Nunchuck Reader component. This component will allow you to read all of the
sensor values (accelerometers, joystick, C and Z buttons) from the Wii Nunchuck.
Note: This component is meant to be used in tandem with the Wii Nunchuck Arduino
Sketch.
Binary Blink component. Oscillates 0's and 1's based on an incoming pattern of i
ntegers. Can be used to create intricate (HIGH/LOW) blinking patterns to be sent
to the
Serial Write components to control LED's, etc.
Fader One Way component. Fade from one value to another based on a single time i
nterval (ms).
Fader Two Way component. Fade between a minimum and maximum value based on the f
ade in and fade out time interval (ms).