algorithmic modeling for Rhino

Widget to select and instantiate components from the canvas. It uses an XML database to record the more frequent components and connections between components.
This allows selection using tabbed distribution, frequency of components/connections, frequency of parameters/connections and random components.

To use: alt + right click or dragging a wire + right click. To access the menu right click on inner circle.

I always wanted something like this to have a faster workflow. However, it is not much improvement as I expected, but it also requires getting used to this. Please note that the frequency components that appear depend of the xml database, so that with time your database will be closer to your really habits of components. However, you can register the components and connections of gh files from the This file also contains more details.

To install:
- Put the .gha and .xml files in the Components Folder:
-- File > Special Folders > Components Folder.
-- Or C:\Users\USER\AppData\Roaming\Grasshopper\Libraries
- Restart Rhino + Grasshopper.

AxonWidget.gha (v 0.2.2  | 13/09/2017)

AxonConnectivityDatabase.xml (requires Human plugin)

About AxonFile:

Perhaps I have done very confusing for someone. I wanted to put options to manipulate the database, but this is not necessary to use the widget.

Write connections from gh files in the Axon Database
This serves to read gh files and add that information (how many times a component is used and the connections between them) to the database. With this you can fill the database with your habits of use of components.

Reset Axon Database
This is to empty the database. Do not use if you do not want to lose the entire database. Without this registration, the widget does not work. This is intended for later to use WriteFromFile script with your own files, to have a database that collects your usage habits of components and connections between them.

Deserialize the top components of the Axon Database
This shows in human language most used components and their connections. It is only for the curious, or for those who need the information of the database for some reason.

Major changes of 0.2.1 release:

- Now when the widget is disabled, are not accessed at any time to the database, is completely isolated.

- Reduced runtime. Instantiate a component or create a connection and add it to the database took between 200 ~ 400 ms, now only takes between 2 ~ 10 ms!!. The database is only saved when you close a document, and not on any new record as before. I know, this was obvious, but really good improvement anyway.

- Bugs fixed.

Major changes of 0.2.2 release:

- Bug fixed: when the definition is very large instantiation took a long time.

Views: 6066


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

Comment by Derin Yilmaz on September 13, 2017 at 9:34pm

Daniel, thank you! It seems to be working great.

Comment by Daniel González Abalde on September 13, 2017 at 10:38am

Hi Derin,

I was aware of this problem. I have touched the code a bit and updated the gha, can you confirm if the bug is resolved please? You only need to replace the .gha.
If it is now solved, the problem was that it was previously recomputing the entire definition instead of the instantiated component when it is automatically wired, on that day I did not find the right way to do it. 

Comment by Derin Yilmaz on September 13, 2017 at 7:53am

Hi Daniel. The instantiation is really slow once there are a lot of objects in the grasshopper definition. I think it's actually the rhino objects that might slow it down, not the number of GH components on the canvas. Do you know why that might happen?

Comment by asaf yaacobi on May 17, 2016 at 6:51am


Comment by Tim on May 14, 2016 at 11:10am

I see, indeed, what you have in mind is not a simple task. An ambitious goal, I hope you succeed in achieving it (but to be honest, if I understood it the right way, that might be kinda too hard to be worth doing for now, no?)

Comment by Daniel González Abalde on May 14, 2016 at 5:21am

Thanks Tim,

my intention is to register and instantiate not only components but also procedures (pieces of definitions), but the current version of gh not put me it all easy because it does not treat the definitions as an object in itself. Since the idea of this plugin was to make a faster workflow, along with that I'd like to instantiate pieces of definitions (eg, range-graphmapper-remap-bounds-constructdomain-twosliders, all connected) with very few clicks, and also make a record of the proceedings or sub-procedures more frequent in the axon database. However, this would imply great deal of time which I do not have now, so it is in very low positions of my pile of unfinished tasks.

Comment by Tim on May 14, 2016 at 12:09am

Hey Daniel, how are you doing?

I was very interested in Axon Widget but I was working on an important project back then and was afraid of crashes that some guys reported before so I decided to wait a bit to let you polish the code. I'm curious if the development is still going and if it is safe to download (more or less I think it is gonna be fine). Maybe I'm wrong but I have an impression that the development is currently at a halt and I was wondering if there is gonna be an update in near future.

All talk aside, I respect your personal time and work and ask you from mere curiosity and appreciation for such an amazing tool.

Awesome work, thank you!

Comment by Sergey Dmitriev on April 20, 2016 at 5:54am

Axon Widget & MetaHopper conflict.
To operate the Axon Widget, you need to turn off the "Memory load" in GrasshopperDeveloperSettings. But then it does not work MetaHopper.
And vice versa. How to combine them?

Comment by Daniel González Abalde on March 11, 2016 at 6:05am


thanks for the feedback Abraham, and to all for the compliments.

Comment by Abraham Yezioro on March 11, 2016 at 5:30am

Hi Daniel,

Seems to be working fine.







  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service