Grasshopper2 plugin development planning

Hi there!

I wondered if it was possible to get some info regarding the GH2 timeline?
I’m not asking for a GH2 release date, but in more general terms:
From a plugin developer point of view… Would it be advisable right now to start working on a GH1 plugin which would take maybe 6-10 months or so…
Or would it be better to wait for GH2 to drop. I guess this question also alludes to how similar plugin development between GH1 and GH2 will be and how much code will have to be rewritten.

I just want to avoid working on something that’s obsolete by the time its done…

Cheers
Ben

GH1 will be there in the next few years at least, as long as Rhino 6 and 7 are still used, probably for Rhino 8 as well. Probably GH1 will still be available later, why not?

My current plugin is planned to be developed in two years, no fear. In the core project I don’t even reference Grasshopper.dll and I have another project for the GH version. When GH2 comes out, I will make another wrap of my core. At the end my plugin it is a Rhino plugin, even though I’m GH first, since it depends on Rhinocommon.

It depends on what your plugin does, on how dependent you make it on Grasshopper. If it takes care of making geometry, using Rhinocommon, no problem, if it takes care of playing with the canvas, you won’t be able to migrate it. GH2 is written from scratch, so you shouldn’t expect any compatibility. Instead of making the logics inside the components, make them outside and call them from the components (besides you can also call them from scripting components and do unit tests in GH or even develop it over). Wrapping your plugin in GH, taking into account 5 types, 5 parameters and 30 components, with descriptions, icons, etc, shouldn’t take more than three days with the proper experience or a week, so for a half year or more project, it’s acceptable. I mean, if you develop the logic on the one hand and the GH wrap on the other, it’s worth doing it now.

After grasshopper 2.0 is released there will be long beta period, quite possibly 1 to 2 years. In that time grasshopper 1.0 will still be the default version.

You should try to minimise your dependence on external apis anyway, so start with those parts of the plugin which do not depend on a specific version of grasshopper.

There are two things you’ll want to keep in mind with regards to making future proofish code:

  1. Grasshopper 2.0 no longer uses IGH_Goo as a way to store data, so only create goo wrappers for your own data, don’t implement the interface in your core types.
  2. Grasshopper 2.0 makes it possible to store meta data alongside regular data. This metadata can only be of a small number of preset types (although that includes strings and byte-arrays), so if your plugin defines metadata-like functionality make sure it’s serialisable.