GH-Bridge: live Grasshopper in the browser. Please break it

Disclosure first: I’m one of the people building this. This is a “please break it” post, not a recommendation.

The problem we kept hitting: you make a definition that solves something for a client or a consultant, and then there’s no way to hand it to them. They don’t have Rhino, they won’t install Grasshopper, and you end up baking twenty options and sending a PDF. Or becoming a human API, re-running the same definition every time someone wants a different option.

So we built gh-bridge, as part of our tools platform. It’s a tray app on Windows that connects headless Grasshopper on your machine to a browser viewer.

How it works:

  • Drop a .gh file onto the bridge
  • Any slider you prefix IN_ (IN_Grid, IN_Angle) becomes a control in the browser
  • Any component you label OUT_ (OUT_Facade) streams its geometry to the viewer, with materials, colours and mesh vertex colours
  • You get a sharable link. Whoever opens it moves the sliders and sees the definition re-solve: no Rhino, no Grasshopper, no plugins on their end

The honest limitation: your machine is the solver. For a shared link to keep working, your computer has to stay on, online, with the bridge running. It’s not a cloud compute service and we’re not pretending it is: it’s your Grasshopper, reachable through a URL.

The flip side is the reason we built it this way: because it runs on your machine, everything you already own works. Every plugin, every custom C#, every external tool the definition talks to. No porting, no waiting for us to support a library.

Setup and the naming convention: How To: GH Bridge
Download the bridge and sign up: app.differential.tools

What I’d actually like from this forum: feel free to throw definitions at it that I wouldn’t think to test. Heavy meshes. Deep data trees. Definitions leaning on Kangaroo, Ladybug, Karamba, etc. Long solve times. Things where OUT_ geometry is enormous or changes topology on every solve. I’d love to know where it chokes, what it renders wrong, and what a control in the browser should be able to do that a slider can’t.

Ask me anything here: bugs and feature requests both welcome. I’ll reply to everything, and what comes out of this thread shapes what we build next.

Cheers,

2 Likes