A few weeks ago, I came across Emil Poulsen’s work with Modelup3D. As someone who’s been using Rhino3D for almost a decade, I’ve always seen Grasshopper as something tied to a desktop workflow. But seeing it run in the browser, powered by Rhino.Compute, made me curious.
Could I build something similar?
I decided to give it a try in my free time. The first challenge? Finding a subject for the prototype. Instead of overthinking it, I grabbed a book from my shelf:
📖 PARIS HAUSSMANN by LAN Architecture & Franck Boutté.
I picked one of LAN’s drawings and started building a Grasshopper definition that could generate a simplified, customizable version of a post-Haussmannian building. To keep it grounded, I used a real-world reference: a building I often pass by in my neighborhood—73 Avenue Ledru-Rollin in Paris 12e, built between 1871-1890 by Gravereaux.
Once the definition was ready, I connected it to the web. Now, instead of tweaking parameters inside Grasshopper, I can interact with the model directly from my browser. My Mac (computer B) runs the interface, while my PC (computer A) does all the computation in the background—both machines communicating over the web.
This setup isn’t just for fun. Companies like Modelup are leveraging this approach to create 3D configurators, letting users interact with customizable products in real time.
Still experimenting, but it’s been a fun process!
Tech Stack
🖥 Computer A (Compute Server):
• Rhino.Compute (running locally)
• Nginx (bridging the open port to the local app)
💻 Computer B (Frontend & Backend):
Frontend:
• React.js with Next.js
• Three.js + Drei + Fiber (for displaying the 3D .gltf)
Backend:
• Node.js with Next.js
• Prisma (ORM)
• Neon (Database)