If Grasshopper was rebuilt for 2026, what should change or stay?

Would this be for running scripts and performing computations headlessly or would you like to do more with it?

Do you still consider this the case in the latest Rhino 9 WIP? I use VSCode daily and have found the Script Editor to be quite close for most of my scripting needs.

We all take it for granted, but I have to say, grasshopper is such an advancement in computational geometry that if it were not a commercial product it would be a candidate for Nobel prize in mathematics. it has, by my ignorant opinion, changed the way we all work with geometry, It is that much of an advance over what came before.

That said, we all forget this as we work with it every day, and in typical craftsperson fashion, blame the tools when something doesn’t go well, rather than our own limited thinking.

My 2 cents’ worth: An ESC function would be great, or a ā€˜supervisor’ mode (or some such name) that stops the calculation if over a specified time (5 minutes, 5 hours, whatever)

3 Likes

I believe G2 is async, and so your solution won’t lock up as you’re doing stuff, or if you accidentally create a week long computation. This should achieve what esc would have done in G1 :slight_smile: .

great!

To be fair, I have not tested Rhino 9 and I’m rarely using Rhino atm. So my knowledge is abit outdated. I have seen improvements here in the forum but Iā€˜m not aware of the current status. But if you think about what VSCode offers nowadays, you could imagine that many more features can be used in this editor apart from writing code. Essentially you can use AI agents, Git Client, Test execution, Pipeline management, Customization, static analysers, profiler and many other things. You embed another language, just download the respective extension.

Regarding the CLI, I could imagine to do many things such as running it headless, serializing, to configure parameters, to build dynamic templates, to autorun integration tests. To modify settings, such as Galapagos, reports/exports etc. I also like the idea to build CLI first. But this is a conceptional thing

This might be an unpopular opinion (and perhaps MacOS-specific?), but I just wish that Grasshopper worked like every other app/window and didn’t insist on doing the the ā€œNo *I* get to ride in the Front!ā€ thing.

MacOS has lots of perfectly nice built-in tools and behavior for switching between apps and windows (hot-corners, command-tab, stage-manager, …), but of course none of them work to switch between Rhino<>GH windows, which is a bummer. Personally, I’d love to be able to turn that GH behavior off and just have it behave like all the other apps and windows on my computer.

2 Likes

What I really miss from macOS is the ā€œdouble click on the header to collapse the GH windowā€ behaviour that is there on Windows. That would be pretty useful – also to circumvent this.

1 Like

If I understand you right, the thing that you want to do, can be set here in the macOS settings:

Grasshopper should have been more parallel. Components like List Item should be able to operate on multiple list inputs simultaneously.

In the absence of an Unentwine component and the inability to rename Entwine in- and outputs (not to mention the inability to propagate the nicknames to downstream components), there should be a dedicated combined data throughput component for many in- and outputs.
Think of the User Text component, which has a Content input and key/value outputs that it propagates by just wiring the Content in- and outputs. Now apply this to non-geometric data where ā€œContentā€ would be replaced by ā€œDataā€ and the key/value in- and outputs would be replaced with any type of data in/out (it wouldn’t even need to be matching in item count nor data structure).

I haven’t tested Rhino 9 yet, but my experience with the Rhino 8 script editor (both in Rhino and GH) is a clunky mess, 90% of the time it’s in my way rather than helping, the interface is confusing, help and find are buggy and jam the editor, basic functions (for me) are missing. My point is: it doesn’t have to necessarily compare to a specific IDE, but please let savvy users do their scripting thing in their IDE of choice (be it VSCode/Codium/JetBrains/Visual Studio/NeoVIm/eMacs/SublimeText, you name it).

I understand I’m slightly hijacking this topic, so I’ll stop here, but soon I would like to plead this cause in a dedicated thread.

1 Like

List Item does work on multiple input lists though.

1 Like

You’ll always end up with multiple List Item components or similar ones (or you need to entwine/ perform extensive data management):


I’m referring to something like this with equal outputs to the list/ tree inputs:

That would help clean up definitions significantly in certain cases.

1 Like

I find this topic especially relevant when recalling an earlier thread where McNeel mentioned that

If that’s the case, then keeping GH1 evolving shouldn’t be seen as wasted effort — it’s still the daily tool for most users. Many of the ideas shared here (better Rhino integration, loops, UI polish) could strengthen both GH1 and GH2’s future. It would be great if this feedback didn’t just fade into the transition but helped shape how the ecosystem grows in the coming decade.

I would love to be able to toggle between the graph view and some kind of code view. So I can work in either and can toggle back and forth whenever I want. I’m not sure how it would work or if its even worth it, but conceptually i like the idea for being able to flip between the 2.

This would allow for AI to help me with my graph and understand my graph better. And then I can use the benefits of the graph for troubleshooting, visualizing, getting specific outputs, etc…without having the downsides of logging/print statements if traditional code.

This is a really good topic and question in my opinion, also answers are really interesting.

My problem with the ā€œrebuiltā€ idea however is I don’t believe it is a good idea for GH generally. Total rewrites are generally very risky in terms of success, especially for such successful tools.

I’ve checked yesterday that I have 30+ plugins installed for GH. It’s very rarely for me to have a full script doing something without any external plugin. I also still look for information about GH in the web a lot to solve something, and I very often find some existing useful info. What I’m trying to say is IMO GH success is a combination of a great product + community phenomenon that happened. Without the community and external plugins such tool is not that powerful. Expecting that the same phenomenon will happen again (no matter how good the rewrite could be) is questionable.

Especially when the rewrite is completely different than the original version. It takes some time to learn any node editor. It takes some time to learn how to create custom plugins for any node editor. I’d have to have really crucial problems with GH1 which are solved by rewrite version to decide that I’m okay to spend months to learn the rewrite. But then when I look at the problems I have, they are not that much painful.

TLDR In my opinion GH1 is too good for the total risky rewrite. I’d prefer small improvements on GH1 version instead.

3 Likes

Just to add on a top of this: simple change of area and volume components some time ago made a big stir in my work as the new components disconnected themselves. Imagine tracking down 100 of them among 7000 components, some inside blocks, in several different scripts.

Any larger updates could become a real headache for established workflow.

1 Like

With the rise of generative AI and code synthesis, the notion of dedicated, static node sets is starting to feel outdated. A more modular, connected, and intelligent system could transform Grasshopper 2 into a living, evolving ecosystem — one where functionality is shared, composable, and truly on demand.

I’d love to see Grasshopper evolve toward a dynamic, on-demand node system — essentially a global pool of all existing nodes (official and community), where components are searched, referenced, and loaded only when needed by a particular definition.

This would be similar to how modules or classes work in traditional coding: you simply import what your script requires. Grasshopper could follow a similar pattern, automatically fetching or virtualizing nodes as needed, keeping the environment light, fast, and organized. Grasshopper could suggest, generate, or combine nodes dynamically based on intent or description.

Beyond that, I imagine this as part of a shared codebase or distributed node repository, where individual contributors don’t have to maintain isolated plugins anymore. Instead of 100 people building 100 plugins (some with overlapping nodes), we could have one collective, modular library — where each node is a unit of functionality discoverable through a dynamic smart search interface, independent of who authored it.

Contributions could be versioned, improved, and merged all while keeping the node discovery process unified and transparent.

And this model could also support paid or premium nodes, where co-authors can choose to license or monetize components within the shared ecosystem. Instead of requiring upfront plugin purchases, access could be usage-based, with a lightweight token or per-compute model. That way, authors are rewarded when their nodes are actually used, while users can freely explore and integrate both commercial and open-source nodes within the same dynamic framework.

Isn’t that pretty much what Yak/the package manager does?

Not quite — Yak is great, but it still works at the plugin/package level, not the node/function level.

What I’m describing is more granular: instead of installing an entire plugin just to access a single useful node (like a mesh edge analyzer), I’d like to search for that functionality directly, see a list of available nodes across all sources, and load just that node on demand.

So, rather than managing dozens of plugin installations for only a handful of components, the system would let me reference or fetch individual nodes > more like searching a global function library or AI-assisted code repository.

This approach would also enable AI-assisted discovery: the system could suggest related nodes or algorithms from across libraries that might fit what I’m doing even ones I’m not aware of or don’t know the right terminology for. For example, if I’m working on a pattern, Grasshopper could propose relevant nodes or generation methods automatically — e.g. ā€œserpentine,ā€ ā€œCairo pentagonal tiling,ā€ or ā€œPenroseā€ and even show a reference image plus or an example script/definition to drop in.

What I’m suggesting is an intelligent, node-level search and suggestion layer on top of that something that makes Grasshopper lighter, smarter, and far more discoverable.
This could even evolve into an ā€œexpert modelā€, where Grasshopper understands what you’re trying to achieve and proactively suggests nodes, patterns, or workflows … almost like a domain-aware assistant that bridges geometry, data, and logic.

Ah yes, that would indeed be cool. But would probably be quite difficult in practice (i.e. because a component may depend upon e.g. a .dll that ships with the Yak package).