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)

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!

10 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.