algorithmic modeling for Rhino



gHowl is a set of components which extend Grasshopper's ability to communicate and exchange information with other applications and physical devices.

Location: In Between
Members: 974
Latest Activity: Aug 19

Download the latest set of gHowl components:

gHowl_r50 and example files


Check out the gHowl videos page where you can see how people have been using gHowl.

Our users have connected Rhino and Grasshopper to various protocols, platforms, and softwares including:



Open Office






Google Earth



Pure Data










UDP Components now have the ability to send and receive to a Multicast group.  To send or receive to a Multicast group, make sure you use the IP Range of -

OSC functionality is provided by the Bespoke OSC Library by Paul Varcholik.

Network Source
- Tests the connection of your machine to a network.

UDP Send - Allows the sending of UDP messages over the network.  Also allows the sending of OSC messages to OSC enabled software and hardware devices. (Deleting this component in 0.7.0057 crashes GH / Rhino)

UDP Receive - Allows the sending and receiving of UDP messages.  Also allows the reception of OSC messages and bundles (from Reactivision for example).(Deleting this component in 0.7.0057 crashes GH / Rhino)

OSC Channel - This component allows the storage of a single OSC Channel.  Change the component's nickname to store that address' data.

OSC Dispatch - This component allows the storage of data from multiple OSC addresses.

The spreadsheet components leverage the OpenXML engine.  You must have OpenXMLSDKV2.msi installed in order for these components to work.  These components read and write *.xlsx files.  Supports numerical values and strings.

Spreadsheet Reader - Retrieves spreadsheet data from a file stored on your computer.

Spreadsheet Writer - Allows you to write a spreadsheet file.

These components retrieve xml data from local and web sources (such as RSS feeds).

Pachube - Retrieves data from a Pachube feed.  Must have a valid Pachube API. (Deleting this component after making a connection in 0.7.0057 crashes GH / Rhino)

Pachube Update - Allows you to update a Pachube Feed.  The component has variable inputs to enable streaming to various datastreams.  Must have a valid Pachube API.

XML Parser - This component parses an XML file stored on your computer or on the web.

XML Writer - Writes out XML




These components aid in the mapping and conversion of coordinates from GPS enabled devices to XYZ coordinates.

Format GEO - Takes NMEA formatted GPS coordinates and converts them to Decimal Degrees.

XYZ -> GEO - Maps XYZ coordinates in Rhino/Grasshopper to Longitude, Latitude, and Altitude.

GPS -> GEO - Maps Longitude, Latitude, and Altitude coordinates to XYZ

Elevation Service - This component returns the elevation at the coordinates you supply as inputs.  It queries the Google Elevations API to do this.  There are some limitations on usage, so be warned.



KML Exporter - Exports points, curves, and meshes to a KML File.  Breps should be meshed before exporting.  Brep support will be added soon.  Object attributes such as color, transparency, line width, line color, etc will be added soon.

KML Attributes - Adds Fill Color, Line Color, and Line Width to Exported KML Objects.

Discussion Forum

problem about UDP receiver

Hi, I am using UDP receiver in gHowl. It works well until I packaged everything into a cluster, and the UDP receiver keeps sayting "AddressAlreadyInUse: you might have opened this socket on another…Continue

Started by vapeur Jul 5.

gHowl Spreadsheet Writer columns delimiter? 3 Replies

I have just used the gHowl's Spreadsheet Writer component to export my content into Excel .xlsx file.…Continue

Started by djordje. Last reply by Daniel May 12.

Processing to Grasshopper

Hello,I have a processing scripting that want to take it to grasshopper and would like to connect it live. I was wondering if anyone can help. I know ghowl is the way to do it and I tried and kind of…Continue

Started by Bahar sh Aug 8, 2019.

Android OSCmessage to GHowl. Error Message. 5 Replies

Hello all,I am writing an android interface to communicate with grasshopper.  It's the same idea as some of the OSC apps in the app store, but they aren't open source and I need to be able to have…Continue

Tags: java, osc, udp, ghowl, android

Started by Jon Blout. Last reply by YUAN SHENG LIN Mar 14, 2019.

Comment Wall


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

Comment by Bramiozo on February 19, 2012 at 5:06am

I've been trying to setup communication between Grasshopper and Flash by using ghowl and bubblebird's Flash library ( So far I've been able to send an OSC message to grasshopper by defining the address and value and it comes across fine. so far so good. However when I want to put together a bundle of messages with different addresses and dito values or when I try to send these messages rapidly after oneanother it doesn't work anymore.

When I rapidly send 3 messages after oneanother the first two get dropped and only the last message (address and value) gets across. When I bundle the three msgs the whole bundle gets across but doesn't 'get parsed' so the output of the UDP component shows out the D output: lines 0 till 5 showing on the even index the addresses and on the uneven indexes the values (I guess this is ok?).

The OSC_Dispatch component doesn't seem to split this bundle message. I input the three adresses in the DispatchObject D input (which works fine with single messages). The D Output shows in the output of address0 the rest of the message : "data1,address2,data2,address3,data3" and the data 2 and data 3 fields are empty. I would like to have data2 in the field coupled to address 2, like it the case when I use single messages.

Anybody have any thoughts on how to fix this ? Thanks!

Comment by Jeremy Bamberger on January 18, 2012 at 2:34pm

Hey Luis,

I've been away, but I wanted to follow up from my post in November about large xls files being read into GH via gHowl. The relevant files (I'm importing GIS data using Ben Golder's python script) are 16.8MB, so if you could pass along your email I'd be happy to forward them to you.

I have parcel data for all of San Francisco, and the xls sheet include property value information for each parcel (~ 180,000 columns). Using gHowl as it stands freezes my computer. I've had success importing at most 10,000 columns, but parsing out the data would be too tiresome. I have property value data for the preceeding 10 years.

You'll need the python plugin for GH. You will also have to update the pathname for the files (its setup to read from the desktop, just update the user). If you have a chance I would be grateful for any ideas. Thanks!

Comment by larry lopez on January 18, 2012 at 2:00pm

hi, sorry for asking a this, I know that here is probably not the best place to do so, since my question has to do more with how can I split and re-asign a set of coordinates to an array of objects in processing. I asked there ( with no luck so far. 

Right now I just have a bunch of 3d points, not more than 20, plug to gHowls dpu sender and a simple sketch in processing just to understend how to use this info.

Any ideas on how to do so? I have attached both the sketch and definition just in case it helps, it needs gHowl and the dpu lib for processing; but if you have or know of an example I can look at will be enough.



Comment by Peter Liebsch on December 19, 2011 at 8:37pm

Hi Andy,

Did the setup as discribed but no data comes through. So I assume it's our firewall or network in general as I do that in our office. I will try it at home and see if that resolves this issue.



Comment by Andy Payne on December 19, 2011 at 8:03pm

Hi Peter,

Yes, the setup is basically the same as with the GHowl components.  You just need to specify the UDP port you're listening to. You'll also need to connect a GH_Timer component so that it expires the component quickly (trying to get the latest message sent from the TouchOSC app).  

On you're TouchOSC app, you'll need to specify the IP address of the computer you're trying to send it to.   GHowl has an excellent tool for pinging your IP address called Network Source.  Just enter the IP address of your computer into the app, and pick an outgoing Port number you want to send the message (note: you're Grasshopper component should also use this same port number).  

The only other thing I could think of that might possibly be causing you trouble is whether your network is blocking your UDP message.  Could you describe your network setup.  Are you trying this at home (on a personal router) or at school/work?  Sometimes, different networks block UDP messages (this often happens if I try to connect on an institutional network, like at school).  In this instance, it could be a good idea to try to create an ad hoc network on your computer.  Here are instructions on how to do this:  Once you've created an ad hoc network, make sure both your phone and computer are connected to this same network.  It may take a while to regenerate your IP address (on your computer), but once it does... enter this new number in your phone app.  The port number can stay the same.  Ideally, this should solve your problem.  Let me know if you still have problems.


Comment by Peter Liebsch on December 19, 2011 at 5:14pm


I'm using a OSC Dispatch. It collects the information but struggles as soon as the timer on the FireFly is on. Funny enough it only struggles with the toggle data, the slider data gets through fine.


Thanks for your video link and explanation. I tried to hook up my OSC app via the FireFly OSC Listener but it reports no data... I assume the port is the same for gHowl UDP Reciver and FireFly OSC Listener, right? My setup looks the same as yours in the video... any idea?

Comment by Andy Payne on December 19, 2011 at 7:03am

It sounds like this problem might be because of a threading issue.  As Luis said, one of the great things about the OSC listener in GHowl is that it does not need timers.  It has (I think) it's own threading model which allows it to be very fast.  On the other hand, it's possible that there could be some inconsistencies in the data transfer if the threading isn't sync'd up with the Grasshopper UI threading model (especially if the data is being sent very quickly).  

One thought could be to try the OSC listener in Firefly.  It works similarly to the GHowl version with a couple exceptions... the first is that it requires the use of the GH_Timer to automatically update.  I've found that you can still get pretty good speed using the GH_Timer (I've been able to get up to around 60 fps) but the fact that you're using the GH_Timer means that the solution will always be recomputed in sync with the UI threading.  And since you're already using the GH_Timer for the Firefly component, you should be able to use this same timer to recompute both components.  I've been able to use TouchOSC and the Arduino components without having these issues, so I definitely think it's possible.  Here's one example:  Anyway, I hope this helps.

Comment by Luis Fraguada on December 19, 2011 at 2:17am

gHowl is designed to not need / use timers.  Each time a timer fires, the solution is recomputed and this can significantly slow things down depending on what you are doing. 

How are you storing the toggle values?  Which OSC components are you using?  If you store the toggle in the OSC channel component, what happens, do you still loose the information?  Does the component return a null value or does it go to 0? 

Comment by Peter Liebsch on December 18, 2011 at 9:20pm


Hi Luis,

Great tool. Thanks for making it accessible!

I just have a question. I run a GH file where I get data from OSC iPad app in via gHowl as well as sensor data from an Arduino via FireFly.

The OSC are just simple horizontal sliders.

The problem I'm facing is that additional toggle items in OSC, which write only 0 or 1, don't get through properly. They do without problems as long as the timer on the FireFly is off. I also can write to the OSC app via gHowl to turn LEDs on or off.

As soon the FireFly timer is back on the toggle get lost in 8 of 10 attempts. The sliders still get through correct.

Any idea if this is because of a timing problem between gHowl and FireFly? I played around with different GH timer settings but that didn’t change much.



Comment by Luis Fraguada on November 22, 2011 at 12:02pm

Hello Jeremy,

I have not tried with such a large file.  I would need to have a file like that in order to debug and come up with a better way to parse the data.




Members (974)






  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service