Hi everyone,
Over the past few months, I’ve been exploring how to deeply integrate architectural workflows with multi-agent LLM systems. While tools like Cursor and Claude Desktop are revolutionizing coding, bridging them directly with our parametric design logic in Grasshopper has always been a friction point.
To solve this, I’m excited to share an open-source project I’ve been working on: HOGER.
GitHub Repository: GitHub - bcshih/hoger · GitHub
What is HOGER? HOGER is a middle-layer application that takes any standard .gh file and, via Rhino.Compute, automatically exposes it as both a Hops Endpoint and a Model Context Protocol (MCP) Tool.
This means you can now let AI agents (like Claude or Antigravity) natively “call” your Grasshopper definitions headlessly to perform automated decision-making, geometric operations, or environmental data analysis without them needing to write complex Python scripts from scratch.
Breaking the Scalability Barrier: The 600/300 Stress Test & HTML Generation
Recently, HOGER passed an extreme stress test: successfully parsing and converting a massive GH definition with over 600 inputs and 300 outputs.
Not only did it handle the conversion without crashing, but HOGER successfully mapped the entire project structure and automatically converted the complex output values into a clean, readable HTML format.
Why this is a game-changer: This fundamentally changes how we approach Grasshopper design and team collaboration. Instead of navigating an unreadable “spaghetti” canvas during project handovers, designers can now rely on HOGER to read the structural logic and document it automatically. It essentially turns a messy GH file into a structured backend service with an auto-generated HTML frontend, drastically reducing the handover friction for complex projects.
Key Features for the AEC & Dev Community:
-
Zero-Code Auto Conversion: Drop a
.ghfile into the Web UI (localhost:8600). HOGER automatically parses it, handles theRH_IN:/RH_OUT:grouping, and exposes the parameters. -
Dual-Faced Expose: Serves
/hops/{id}for Grasshopper-to-Grasshopper headless calls, and/mcpfor LLM Function Calling. -
LLM Intent Parsing: Integrated with Gemini API to automatically generate rich semantic descriptions for your GH tools, helping LLMs understand when and how to use your specific architectural definitions.
-
AI-Ready Setup: We built an
AGENTS.mdso you can literally just paste the repo link to Cursor/Claude, and the AI will auto-install the Python environment, check your Rhino 7/8 SDK, and configure the MCP safely.
Handling the Edge Cases (For the Tech-Savvy):
If you’ve built headless tools before, you know the pain points. HOGER handles several out-of-the-box:
-
The Millimeters Trap: Built-in warnings for
modelunitsmismatches (since Rhino.Compute defaults to mm, which often breaks environmental analysis scripts modeled in meters). -
Strict Output Filtering (Tail-End Rule): HOGER only registers “tail-end” geometry/data parameters as outputs, preventing LLM hallucination from intermediate logic components.
-
String vs. Numeric Routing: Text is strictly baked into
.3dmviaAttributeUserTextto prevent data loss, while numbers are routed directly to the LLM via JSON.
If you are building AI agents for the AEC industry or just want a cleaner way to manage your Hops endpoints and document your files, I’d love for you to try it out. The Web UI supports both English and Traditional Chinese natively.
Feedback, pull requests, and discussions on how to push multi-agent collaboration in AEC further are highly welcome! ![]()