Let’s you and me talk about this Grasshopper 2 alpha release, because there’s a lot of expectations and misunderstandings and hype about it we should try to rectify.
You: I saw the official release message, I’m super excited!
Me: Glad to hear it, me too. Although I fear your excitement may spill over into frustration if it’s based on faulty expectations.
You: That sounds like a terrible sales pitch.
Me: Well, I’m not trying to sell you anything yet, I’m trying to recruit you.
You: That sounds like you should be paying me.
Me: Possibly, but I’m hoping you might be one of those chumps who do it for free anyway.
You: Do what exactly? I’m already using Grasshopper in my work, isn’t this just the next version?
Me: Yes and no. Grasshopper 2.0 is the formal successor to Grasshopper 1.0, but it is also a complete and total rewrite. As such, there’s precious little continuity between 1.0 and 2.0
You: … meaning?
Me: Existing files, existing settings, existing plug-ins, … none of it will carry over.
You: Wait, are you telling me I can’t open my GH1 files in GH2?
Me: There are several reasons. First of all the component set in GH2 is just incomplete. We need hundreds more before I think GH2 will be ready for production use. So if a GH1 file uses a component which hasn’t been made yet, that can’t translate. Secondly, components which are already available are often different, sometimes subtly so, sometimes wildly so. Automatic translation in these cases requires a lot of up-front work, and that work hasn’t been done. Thirdly, GH2 uses different data types and different data storage mechanisms, this will sometimes lead to files just not working because those files were designed with the GH1 behaviour in mind. And lastly, GH1 plug-ins won’t work in GH2 either, so any non-standard component doesn’t have any corollary.
You: Plug-ins don’t work either?!
Me: Sorry, no.
You (quoting Lando Calrissian): “This deal’s getting worse all the time!”
Me: See, I told you you’d get frustrated.
You: It sounds like a big risk to start from scratch with an existing product.
Me: I agree, but sadly there wasn’t really a choice. Over the coming weeks and months we’ll try and provide some tools for translating or directly running *.gh and *.ghx files in Grasshopper 2. It’ll never be a perfect match, but we can probably solve the majority of incompatibility issues. The plug-in problem will never be solved, except insofar as we may be able to leverage Grasshopper 1.0 to run plug-ins and then pump the data back into Grasshopper 2.0 for further processing.
You: Why wasn’t there a choice?
Me: Because we knew from the start that Grasshopper 2.0 needed to be multi-threaded, and you cannot “just” parallelise single-threaded code. Most functions and data types in the very core had to be redesigned to be thread-safe, and those changes percolate everywhere. Add to that a number of other core features we wanted to add and you just end up with a brand new product which has to go through a tedious and extensive alpha phase all over again.
You: Great, so everything runs 16 times faster on my 16-core machine now?
Me: No. Some things will complete faster than before. Specifically, calculations which are independent of each other will now sometimes run concurrently instead of consecutively. There’s always overhead involved too, so we certainly won’t hit theoretical limits in terms of speed-ups. Do remember this is an entirely new code-base. Grasshopper 1.0 has over a decade worth of optimisations in it, so will definitely perform better in certain cases. At least for the time being.
You: So what’s in this for me then? Sounds like I’m better off just sticking with Grasshopper 1.0
Me: That’s absolutely true for any kind of production work. Luckily, both versions can be installed and even used simultaneously. So you can keep running GH1 for all the important stuff until you’re confident that switching over isn’t going to be too much of a risk.
You: You didn’t answer my question.
Me: I was hoping you wouldn’t notice… I suppose you get to participate in the alpha phase development of Grasshopper 2. Your opinions and grievances and arguments may well affect how certain parts of the software evolve, and you get to become proficient ahead of the competition. I admit, these are all pretty intangible benefits, and if you’re unsure about spending a lot of time and effort on this then you probably shouldn’t. No hard feelings.
You: Fine, I’ll think it over. There must be some good news too right?
Me: I think so. Despite all its unfinishedness, GH2 has some interesting new features. It’s a more mature computational platform for one. It provides a lot of mathematical tools one would expect to find in a program aimed at computational design. Functions are now data types in their own right and are thus no longer constrained to live within the Graph Mapper. Support for unlimited integer and angle types has been added, which benefits trigonometry and statistics features.
You: Okay. Bit geeky, but okay. What else?
Me: All values inside a Grasshopper document can now be tagged with meta data. Meta data is primarily a mechanism for you to organise your data. For example you can attach material properties to shapes, or subcontractor details, or installation dates, or… whatever you want really. This sort of parallel bookkeeping was a nightmare in GH1 as all that data had to be kept in separate streams and synchronised all the time.
But you can also use meta data with predefined names to affect how Grasshopper treats values. You can for example change the preview colour of shapes, or the bake layer, or the bake section hatching.
You (interrupting): I’m getting information overload now. Some of this sounds terrible, some of this sound interesting. I’m not sure what to do next.
Me: I’d say if you have Rhino 8 Wip, run the
_PackageManager command, install grasshopper2, run the
_G2 command and give it a quick test drive whenever you have an hour or so to yourself. If you don’t like it, or feel like it’s too early for you to get involved, uninstall it and maybe try again in a few months.
Oh, and before you go, be sure to have a look at the Grasshopper 2.0 Documentation (available via the Help menu). It’s far from finished, but it has some content and you can drag the example files from the component specifications directly onto the canvas. May help get you started.