Introducing NodePen: Grasshopper on the Web

This week, after almost three years of drafts, revisions and demos, I’ve released NodePen, a platform for creating, sharing, and exploring Grasshopper scripts online:

This started as a curiosity (“now that we have Rhino Compute, what would it take to run Grasshopper from the web?”) and has grown to the point I’m trying to give it more sunlight. Grasshopper is the software that got me into software, and I’m stoked to finally share NodePen here, with some of the people who know Grasshopper best and use it the most.

On NodePen, you can:

  • Create new scripts, with native Grasshopper components, and run them from your browser (or touchscreen device, if you’d like)
  • Download the .gh for any of your scripts, or scripts shared by other users
  • Open a script in multiple tabs, so you can have one open to the model and one open to the script, just like with Rhino/Grasshopper

And if you share the script with others, you get these neat little thumbnails of your work (I’ve always wanted visual Grasshopper thumbnails)

https://nodepen.io/chuck/gh/0f5cc1ef-6c9f-4ea1-8405-601f574b7184

https://nodepen.io/chuck/gh/0b12d73a-02c3-4fec-adaa-5f038a6abe73

There is still a lot of work left to do, and a number of limitations (missing components, shortcuts, etc), but I’m hoping after a bit of time in the sun I’ll have a clearer idea of where to go next.

Please enjoy, and reach out here any time to share your thoughts or something neat you managed to make with the components available!

19 Likes

Very Cool! What’s the best way to keep up with updates?

Thanks! I’ve been using my twitter for small videos and progress, but plan to post updates here (in this thread probably) now too.

The github repo also has the latest and greatest, if that’s your speed.

1 Like

First test of a parametric surface

1 Like

Me too!

Looks like a huge amount of work to make… How difficult / or time consuming is it to add components? How about plugins eventually?

I just have to make sure I’m handling GH types correctly in all the steps between the browser and the rhino compute server. So once all of a component’s types are covered, the component should come “for free” BUT I’m constantly tripping on how some types get converted within components.

So for now, I’m testing them all by hand, and am just waiting to get a sense of which of the missing ones to bring in next. Requests are always welcome!

It’s the same story with plugins, but I want to cover all of the native grasshopper components first. I can add any plugin that can be installed with Yak. And if they use custom types, I’ll need to test those out too.

If you are using “single component” calls like Hops supports, you should be getting all of the information about input and output parameter types.

100% it’s all there. Sorry should have been more clear that this is a “my architecture” problem and not a limitation with Grasshopper at all. Right now I do too much manual work instead of leaning on C# ToJson() and the rhino3dm CommonObject.decode(). Trying to find the simplest way forward before digging myself into a deeper hole by covering more types with a bad approach.

That was a fun release! Thanks to all who’ve tried things out. The main fires are all put out now, though, and now I’m thinking about what’s next.

What sort of things would you expect to see from Grasshopper, if it lived on the web?

I’m still interested in the “it’s literally grasshopper in you browser” story, as a fun technical challenge. But if I wanted to use Grasshopper, and I’m on my desktop, I’d just use Grasshopper.

The web-based configurator story makes a lot of sense, but that’s already well-covered by products like ShapeDiver x TT Swarm.

Low-touch sharing & discovery feels nice? I can imagine hosting plugins + interactive examples. I was also a bit surprised how often I was asked “cool, what’s Grasshopper?” Like the configurator, though, we do have a tool (mostly) for that already in Food4Rhino.

No matter what, I have some clear next steps, if this continues:

  • Bring in the full component library. Too much is missing right now. Borderline not enough to call this grasshopper (even though I included voronoi)
  • Overcome the upper limit on component count. Rhino compute continues to brush everything off no problem. But my current infrastructure can’t stomach more than ~50 components in a script because of some surprise bottlenecks.
  • Handle large amounts of geometry. Almost immediately had some users hitting limits they shouldn’t. I’m already looking at Speckle for this.

Thanks for playing!

2 Likes

Hi @Chuck_Driesler ,
NodePen looks fantastic based on the video you attached!
I thank you for all the hard work.

When will it be online again? When I enter the website, it says that it is ‘Offline’.

Hey, many thanks! Sorry, I fixed a typo and didn’t realize that would bump the thread.

I don’t have a timeline for when it will be back online. It’s too expensive to keep on 24/7, so it’ll be down for the foreseeable future while I think about next steps.

I might do some limited weekends online to test new features, but I’d expect that’s several months out, if work continues at all. I’ll give a heads up in this thread if something like that comes together, though.

2 Likes

Hi Chuck,
Thank you for the reply and for informing on the online status in this topic.

1 Like

We’re back online! Some context and details in this twitter thread.

The twitter thread also has notes about what I’m planning to tackle next.

( cc @djordje - sorry, if it’s not obvious I wasn’t expecting this to happen so soon! )

3 Likes

Thank you for letting us know Chuck! Great news! Thank you to Glide too!

1 Like

Why offline