algorithmic modeling for Rhino

In a collaboration with Shajay Bhooshan (, Autodesk Maya 2009 can communicate with McNeel’s Rhinoceros::Grasshopper. The work on communicating to and from Grasshopper via the user datagram protocol (UDP) was to effectively speed up communication between programs without the use of each program writing and reading a text file. This investigation was begun to open up Grasshopper to the outside world and eventually use it to drive physical associations via arduino and other interfaces. Processing was used initially as it is a very simple platform to used to test communication to and from Grasshopper. The first objective of the investigation was to eventually connect up with a custom plugin which Shajay Bhooshan has been developing.

On the Maya side, Shajay is controlling and augmenting this already vast platform with custom C++ API Nodes. His work can be seen on We Work 4 Her. This particular ‘fluid_UDP_Node’ transmits fluid data per voxel over UDP. Shajay has also taken advantage of the Open Frameworks, leveraging some of the code within the Maya plugin.

On the Rhino Grasshopper side, I have developed a very simple UDP receiver component in The data is transmitted as one long string of comma separated values. Currently Shajay can send me fluid density and velocity information per voxel, but really, any type of information could be sent out. This information is parsed in the GH component and used to visualize the fluid as a Surface. As with the rest of the UDP experiments, Giulio Piacentino’s “The Engine” ( component made the refreshing of the Grasshopper canvas possible.

As you can tell, running all of these applications (including screen capturing) start to have an effect on this single processor machine. Maya can effectively optput the data between 8 - 12 frames per second depending on how many applications are running. The promising aspect of using UDP is that data can be sent from one computer to another via a network. This could effectively distribute the workload of complex combinations of processes to many devices.

Views: 679


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

Join Grasshopper

Comment by Olivier Pasquet on August 19, 2009 at 6:50pm
Nice work indeed !! I've succeed sending data FROM grasse-whopper. But I cannot make it work the other way : sending data TO GH. It makes Rhino freeze maybe because I do not know how to control the canvas refresh rate. Do you want to share your code ? Or maybe you can help me and tell me how you use “The Engine” or how to deal with threads in GH ? I'd be very happy!!!
Comment by nathan french on August 3, 2009 at 10:07pm
this is gr{eat} just started learning maya a week ago....interoperability always gets me excited.... (side note) have you ever used Houdini... i am thinking about learning it?
Comment by Miguel Villegas on July 28, 2009 at 10:03am
Comment by Patrick Bedarf on July 27, 2009 at 2:00am
Thumbs up! Thats awesome work mate, I can hardly imagine all possibilities arising. Keep on kickin' it! Patrick





  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service