Grasshopper update

How to Refresh a Component so it updates a data stream on a timed interval? [Firefly]

Long time lurker, first time poster.

Some background:
I am using an Arduino computer chip hooked up to an extension for GH called Firefly. I’m not sure if you’re familiar with it, but it simply lets you communicate with the chip in real time with other peripherals. In my case, I’m using the Xbox Kinect to read visual movements, assign a point ID to something like the left and right hand, translate its x-coordinate into a number, and have that number move a robotic arm servo. Sorry if this sounds like your upcoming robotic apocalypse.

My problem is that because my hand is always moving, it is continually reading the data in real time and crashing Arduino because it is continually processing the rotational distance (in degrees between 0-179). For example, if my hand was moving from 1 to 50 degrees, it’s computing 1, 2, 3, 4, 5, 6, ..etc instead of 1 and 50 as two separate states.

Is there a way to have a component refresh its value in a certain interval? This would mean it could read my hand at different intervals and print a value at timed increments instead of doing it all in real time. A simple practice exercise would be to create a random component and have the component refresh so that every 1 second or so it would produce a different number. The app is essentially refreshing. I thought the Timer component worked, but I misunderstood what it’s used for, and I don’t think it does what I intend it to do.

I’ve attached some pictures to show what I’m attempting.

And a file to recreate the problem with a different instance.

Thanks so much for your help!

Pieter Segeren

Hi Kryan, you could use the DataDam (From Parameters > Util tab)

Grasshopper – Новое в Rhino 6 для Windows

Длительный период ожидания завершился: Grasshopper включен в состав Rhino 6. Используемый в некоторых самых амбициозных дизайнерских проектах последнего десятилетия, Grasshopper, как и Rhino, стал надежной платформой для разработки сторонних компонентов – от моделирования окружающей среды до роботизированного управления. Grasshopper в комплекте с Rhino 6 – это усовершенствованная версия того же самого Grasshopper, который вы использовали ранее.

Тот же самый Grasshopper . только лучше!

Grasshoper , который входит в состав Rhino 6 для Windows – этот тот же хорошо знакомый Grasshoper, разработкой которого компания Robert McNeel & Associates занималась в течение нескольких лет. Тем не менее, эта версия содержит много новых возможностей и улучшений, которые не были доступны на этапе длительного бета-тестирования.

Один дистрибутив

Grasshoper устанавливается вместе с Rhino 6 для Windows. Исправления обнаруженных ошибок для Grasshoper так же включаются в состав регулярных обновлений текущей версии Rhino.

Привычная среда

Если Вы уже работали с Grasshoper, то начав использовать Grasshoper в Rhino 6, сразу окажетесь в привычной для Вас среде.

Высокое разрешение

Поддержка отображения с высоким разрешением (DPI)


Grasshoper в Rhino 6 имеет совместимость с существующими компонентами.

Новые компоненты

Добавлены новые компоненты Make2D, Symbol Display, Bend, Flow, Maelstrom, Splop, Splorph, Stretch, Taper, Twist

Включен плагин Kangaroo.

Многопоточные компоненты

Ускорена работа некоторых компонентов путем применения параллельного вычисления.

Включен GhPython с собственным GHA компилятором.


Ваши компоненты будут работать со всеми обновлениями текущей версии Grasshopper.

Разработка компонентов Grasshoper с использованием RhinoCommon позволяет использовать основные функциональные возможности Rhino в Grasshoper.

И многое другое

Исправлены обнаруженные ошибки.

Update data only when needed . ?

A short story: (maybe dumb. who care!)

A: Hey B, it’s “false”!

A: Hey B, it’s still “false”!

A: Hey B, you’ll never believe it. It’s still “false”!

B: OK! I got it! Tell me when it changes!

This might happen when sliding a slider, and some part of a big definition continues to be recalculated (maybe also with heavy tasks) very often uselessly.

Every GH component “refresh” whenever any of its inputs refresh.

I did something like this, working with a decimal value converted to integer:

The data dam(s) are set to “0.25 sec” so we can see that it keeps updating.

By using a c# component (or other similar) we can “filter” the updating waves, passing datas only when it changes, etc.

Now, would it be dangerous? In which ways?

Can this be done for every kind of data? (geometries, values, booleans, etc)

In my ignorance i would say every component should do this “check” to lighten the load on the cpu.

But more than anything else. was this already solved in a better way?

In GH2 it would be cool to have a “filter” component.

Maybe I’m just wrong at everything.

Give me your thoughts!

(attached c# script, also some cool component positioning inside, stuff just learnt)

This is a possible alternative approach to running solutions, however it doesn’t work well within the current GH SDK. The current approach is to just erase all data as soon as something expires, and this wave of erasures propagates throughout the document. All the current data is lost, so when new data comes along there’s nothing there to compare it against. In order for your suggestion to work, old data needs to be kept long enough so it can be compared to new data. If, after the comparison, it turns out the new data is identical to the old data, then the old data can be re-used downstream.

Just beyond the fact that the current system is not set up for such an approach, there are several problems with it. Chief among them are:

  1. In addition to calculating a new solution, we now also have to perform a lot of comparisons. I don’t know how common it is for a new solution to be able to re-use large chunks of data from a previous solution, but I do know you have to compare all the values before you can be certain that the before and after states are identical.
  2. Comparisons can be complicated or even impossible for certain data types. It is also impossible sometimes to define a universally agreed on equality. If you have two breps that have the exact same shape, but the order in which faces are stored is different, is it still the same brep? How about userdata on those breps? Is that allowed to differ? If not then you’re in trouble, because plug-in specific user data is not accessible from a different assembly so you’d have no way to test for equality.

The good news is that GH2 will retain solution data longer than GH1. This is necessary because GH2 solutions run on background threads and the old data needs to still be previewable in Rhino viewports while the new solution computes. This at least provides a mechanism by which data before and after a solution could be compared, and even a way for old data to be re-instated without new data having to be computed.

But even in this new scheme I’m hesitant to try and be ‘clever’ about this. Because if you get it wrong you introduce a bunch of really hard to detect and work-around bugs, and that’s not even to mention the increased complexity of the solution logic in general, which is already incredibly convoluted and difficult to debug.

components with a “old” yellow sign across

I downloaded a waffle structure definition from DesignPlaygrounds ( Rodrigo Medina) to study it, I opened it with the lates gh update. And most of the components have a yellow sign across them that say “old” i try replacing some but it would give me an error.

anyone know why

When an OLD icon is drawn on top of a component it means there is a newer one available. It also means that the component is no longer available from the toolbar.

Sometimes when a component is upgraded it no longer behaves exactly the same (indeed, why else would we need an updated version) so replacing them is not always straightforward. In the Solution menu you’ll find an ‘Upgrade Legacy Component’ icon which can auto-replace some of the obsolete components.

Note that there is nothing really wrong with using obsolete components. They work today as they worked yesterday. It is mainly a visual warning to tell you that when you create a new instance of the ‘same’ component, it won’t actually be the same as the one you’ve already got.

Roberto Garcia Rosales

We are using Galapagos to produce a schematic massing model and we found a particular example about it but we had the same problem about the “old” component sign. We’ve been trying to upgrade the components and also to replace them with the new ones but it doesn’t work. The component that we can’t upgrade is “fx1” and a “BoundingBox” one. So we need some help, please, any help just let us know. For any reference, we attach the link. Thanks.


Web Updates


  • New Resource type: Frameworks.


  • New Resource type: VisualARQ styles


  • Fixed wrong message if a bad link was entered in File section during App creation. Added a tooltip to the Link option in App creation page File section .



  • Companion software and Service page display and options updated


  • Improved download system to avoid standard popup blockers.


  • Fixed an error when displaying app platform icons


  • Platform options changed: Grasshopper for Windows for Rhino 6 and Grasshopper for Windows for Rhino 4&5


  • New Resource type: Service.


  • Statistics page updated: now includes history graphs on content, users and downloads from last few years.
  • New details on apps and resources: category and license.
  • New details on resources: Resource Type.


  • New fields added in Resources: images and media.
  • Apps are now classified as Trial or Free


  • Solved an issue with registration from Asia
  • Categories now apply to Apps and Resources.
  • Search engine improved:
    • Most of the filters are now excluding filters in order to get wider search possibilities.
    • Platform filter allows for single option choices
  • New Scripts and Grasshopper Definitions section on home page.


  • User session increased to 30 days.


  • “Additional Software” category redesigned – Download button is replaced by Website button in order to directly access to the software website.
  • Search page – Counter added to each filter
  • Statistics page – New design :
  • Reviews – A link to Support Forum is added in the review form so users can easily contact with developers if they need any help.
  • Fixed a bug that allowed creating Apps or Resources without File or Link.


  • Added general statistics page


New version of food4Rhino released:

  • New Resources types added:
    • Scripts (Python)
    • Scripts (VB)
    • Grasshopper Definitions
  • Reviews design enhanced for better clarity
  • Prices display changed on front page and browser
  • Support e-mail and forum options added to the Resources
  • Search filters were lost when page was changed in the browser. This is fixed.
  • Last download date is added in the users list which is now ordered in descendant order using this date
  • Enhancements and issues fixed in ratings.


New version of food4Rhino released!

  • New design and new platform

All pages load now much faster. Browse seamlessly to quickly get what you need.
See first what was last updated (reviews are not considered anymore as an update)

  • Better search experience

New search system using keywords and filters (platform, type, market segment…) to easily find all the apps and resources you need.

More than 250 apps.
1.800.000 downloads ever.
50.000 downloads/month.

  • Publish your content faster

As a developer you will find it much easier and faster to upload any content.
Add all the information and files to download on one unique page for each App or Resource.
Manage all your content from one page.

It is now possible to upload and download scripts, toolbars, additional software, tutorials. More types will be added in the future.

Following the AEC hackathon a revised version of the Aviary Toolkit has been uploaded to Food4Rhino. This includes Bitmap Vector Tracing, several additions / fixes for the vector drawing workflow, and general ongoing development and fixes to the libraries.

Thanks to Leland Jobson for the implementation of Potrace, and to Hanshen Sun for implementing serialization of inputs on several of the components.

Replies to This Discussion

Version (1.00.09) Uploaded to Food for Rhino.

Major update to the SVG exporter and minor updates to various component including the WPF Drawing components as well as updated Sample Files.

SVG now Supports

  • Cell Animations, uses visibility states to animate through a series of “cells.” Currently only Chrome Compatible
  • Groups, can be converted to Illustrator layers w/ Scripts
  • Text, text objects working for SVG, not yet for WPF, no text wrapping
  • Bitmap Fills, embedded & referenced
  • Gradient Fills, Radial & Linear
  • Cropping, Scaling, Centering (some known issues)
  • Generating selected Styles to reduced redundancy of per object style declaration, particularly for bitmap
  • Preset Pattern (Hatch) Fills, Custom Pattern Fills
  • Additional Effects, Inner Glow, Outer Glow, Feathering.
  • Wrapped Text
  • Possible Transform / Graphic Animations
  • Exploring alternate means of generating animations which are more broadly browser friendly

WPF Drawing updates

  • Gradient Fills, Linear & Radial
  • Bitmap Fills
  • Full Pattern Fill Set
  • Text Objects

Some additional minor revisions to other components have been made, and the WPF Control Categories have been consolidated. Again, the plugin is still under heavy development, so please report any bugs on discourse.

As these are all pre releases, please know that many older files will be broken when updating to the new version.

Version (1.00.10) Uploaded to Food for Rhino.
Data Visualization Update

This is the first major / complete update to the Data Visualization section.

  • Updated all Data Table
  • Updated all Charts
  • Updated all Data Visualization Graphics
  • Added Transparency and Visual controls for windows

The update to Food4Rhino includes the latest version of the plugin as well as updated example files.
Please use this discourse thread to raise any issues that come up.

The next update version (1.00.11) will focus on updating 3D visualization.

Overhauling WPF 3D and adding three.js support will be the top priority.

Note: This build does break several previous components, in particular the Window component. I am doing my best to reduce this, but in some scenarios it is unavoidable to continue to improve the toolkit.

ABB robot programming for Grasshopper.

Download: Taco 0.70

Tutorial: Video Tutorial + Example Files


  • McNeel Rhinoceros 5×64 SR12 or higher.
  • Grasshopper 0.9.0076 or higher.
  • Active Internet Connection (on Installation).
  • IRC5 Stream & Get Calibration Component: Install ABB Runtime Communication


TACO is a free and user-friendly programming plugin for the simulation and control of ABB industrial robots directly within Grasshopper. Taco offers users to program and visualize ABB robots with parametrics. The current and main features include:

  • Single and Multi-Robot(ABB Multi-Move) Tasks
  • I.K Solver + RAPID code generator
  • IRC5 read calibration + Stream Task Files
  • Custom tool definition
  • Custom speed settings
  • Custom rapid commands
  • Lots of options on toolpath TCPs
  • ABB_IRB2600_20165 robot definition
  • Robot simulation


  1. Download the “”, from the link above.
  2. Extract the downloaded .zip file and drag and drop the containing “Taco.gha” file onto the Grasshopper Window.
  3. In case the toolbar “Taco for ABB” or “ABB” does not show up, you have to check your internet connection and firewall settings. You will have to disable your firewall for Rhino.exe for 1 time. Restart Rhinoceros and start Grasshopper. The toolbar should be loded and you can change your firewall settings back. If you want to receive automatic updates, don’t set Rhino.exe to your firewall anymore.

Note: Even if Taco is a set of User Objects (.ghuser) files, you can install it via the Taco.gha. Once installed the .gha will take care of the .ghuser files and constantly look for updates. Once an update is available you will get prompted on the start of Grasshopper. By clicking on “Accept” the update will be finished after some seconds, thats it. No need to replace .ghuser files manually anymore 😉

“The use of TACO is at your own risk as it is a free software. We accept no responsibility for damage or injury! Please check the RAPID code carefully before uploading.”

To completely uninstall Taco, you have to delete both the Taco Folders (subfolder of blickfeld7) in Special Folders – Components Folder and Special Folders – User Object Folder

The Grasshopper Primer (EN)

Third Edition V3.3

Grasshopper is a graphical algorithm editor tightly integrated with Rhino’s 3-D modeling tools, allowing designers to build form generators from the simple to the awe-inspiring.

You have just opened the third edition of the Grasshopper Primer. This primer was originally written by Andrew O. Payne of Lift Architects for Rhino4 and Grasshopper version 0.6.0007 which, at the time of its release, was a giant upgrade to the already robust Grasshopper platform. We now find ourselves at another critical shift in Grasshopper development, so a much needed update to the existing primer was in order. We are thrilled to add this updated, and now web-based, primer to the many amazing contributions put forth by Grasshopper community members.

With an already excellent foundation from which to build, our team at Mode Lab went to work designing and developing the look and feel of the third edition. This revision provides a comprehensive guide to the most current Grasshopper build, version 0.90076, highlighting what we feel are some of the most exciting feature updates. The revised text, graphics, and working examples are intended to teach visual programming to the absolute beginner, as well as provide a quick introduction to Generative Design workflows for the seasoned veteran. It is our goal that this primer will serve as a field guide to new and existing users looking to navigate the ins and outs of using Grasshopper in their creative practice.

This primer introduces you to the fundamental concepts and essential skill-building workflows to effectively use Grasshopper. Foundations is the first volume in a forthcoming collection of Grasshopper primers. Here’s what you can expect to learn from the primer:

  • Introduction – What is Grasshopper and how is it being used?
  • Hello Grasshopper – Make your first definition
  • Anatomy of a Grasshopper Definition – What makes up a definition?
  • Building Blocks of Algorithms – Start simple and build complexity
  • Designing with Lists – What’s a list and how do I manage them?
  • Designing with Data Trees – What’s a data structure and what do they mean for my process?
  • Appendix – References and Working files for continued exploration

We hope that at the very least this primer will inspire you to begin exploring the many opportunities of programming with Grasshopper. We wish you the best of luck as you embark on this journey.


The Grasshopper Primer is an open source project, initiated by Bob McNeel, Scott Davidson, and the Grasshopper Development team at Robert McNeel & Associates.

Mode Lab authored the Third Edition of the primer.

If you would like to contribute to this project, check out the github project wiki to get started (


A special thanks to David Rutten for the endless inspiration and invaluable work pioneering Grasshopper. We would also like to thank Andrew O. Payne for providing the assets from which this work initiated. Lastly, many thanks to Bob McNeel and everyone at Robert McNeel & Associates for their generous support over the years.



Rhino 5.0 is the market leader in industrial design modeling software. Highly complicated shapes can be directly modeled or acquired through 3D digitizers. With its powerful NURBS based engine Rhino 5.0 can create, edit, analyze, and translate curves, surfaces, and solids. There are no limits on complexity, degree, or size.


For designers who are exploring new shapes using generative algorithms, Grasshopper is a graphical algorithm editor tightly integrated with Rhino’s 3D modeling tools. Unlike RhinoScript or Python, Grasshopper requires no knowledge of the abstract syntax of scripting, but still allows designers to build form generators from the simple to the awe inspiring.

The Grasshopper forum is very active and offers a wonderful resource for posting questions/answers and finding help on just about anything. The forum has categories for general discussion, errors & bugs, samples & examples, and FAQ.

The Common Questions section of the Grasshopper site contains answers to many questions you may have, as well as helpful links:

For more general questions pertaining to Rhino3D be sure to check out the McNeel Forum powered by Discourse.

No Comments

Leave a Reply

Your e-mail will not be published. All fields are required.