Real-time Mesh Manipulation and Streaming with Rhino Compute

Hi Rhino community,

I’m currently working on a project where I’d like to manipulate a server-side Rhino mesh (with Grasshopper definitions) from a client-side application and stream the rendered output back to the client in real-time. I’ve been exploring various technologies and approaches, and I’m wondering if anyone has experience/insights on the best way to achieve this.

Currently, I have a React front-end with my UI and control elements set up, and as I understand it, I can just call Rhino Compute (billed per core) on the server as REST endpoints, which will also have access to my Grasshopper definitions as ‘hops’. I guess at that point, I have three options which I’m trying to sort through:

  1. I can use Rhino Compute to send the mesh/texture data directly to the front end which can render using a WebGL library like Three.js.
  2. I could use Rhino.Inside to communicate with a game engine like Unreal or Unity and connect those to the client, either through Pixel Streaming or as a WebGL export, respectively.
  3. Figure out a way to render the Rhino data either in a server-side desktop version of Rhino or a 3rd party renderer like (Enscape or Lumion) and stream that back to the front end as a one-way video stream.

It’s very possible I haven’t grasped the full Rhino server-side ecosystem correctly, but if anyone has any thoughts or ideas, it would be greatly appreciated! There’s lots to sort through (and AWS costs to bear, haha), but having a manipulatable fully rendered mesh on a front-end app is a worthwhile goal! Thanks in advance for any and all thoughts!

Best,
Evan