Skip to content

SmartHopper is an open-source project that implements third-party AI APIs to provide advanced features for Grasshopper3D.

License

Notifications You must be signed in to change notification settings

architects-toolkit/SmartHopper

Repository files navigation

SmartHopper - Bringing AI to Grasshopper3D

Version Status Grasshopper MistralAI OpenAI License

SmartHopper brings the power of AI assistance directly into your Grasshopper workflow! This innovative plugin seamlessly integrates advanced AI capabilities into the Grasshopper environment, enabling architects, engineers, and designers, to enhance their parametric design process.

🎯 Why SmartHopper?

  • 🖌️ SmartHopper is coded by designers, to designers.
  • 🤖 The emerging artificial intelligence revolution is transforming the way we work. SmartHopper is a tool that empowers designers to harness the power of AI in your Grasshopper3D projects.
  • ⚖️ SmartHopper is about making choices. It integrates MistralAI and OpenAI APIs. Provide your own API keys and pay for usage.
  • ☁️ SmartHopper Cloud [coming soon] is a custom implementation of the MistralAI API that enhances the native AI capabilities by adding cascaded prompts and RAG, providing necessary context on the Grasshopper3D environment.

👥 Who Is This For?

  • Architects and engineers looking to enhance their parametric design workflow.
  • Computational designers seeking AI assistance in their Grasshopper projects.
  • Anyone interested in exploring the intersection of AI and parametric design.

🛠️ Technical Details

  • 🌱 Compatible with Data Tree processing in Grasshopper3D.
  • ⌚ Asynchronous execution to prevent blocking the canvas.
  • 🔄 Run the components with a Button (single manual run) or a Boolean Toggle (run on every input change).
  • 🧱 Clean, modular architecture for stability and future extensibility.

💻 Installation

SmartHopper is not yet available through Food4Rhino. We will be releasing it soon! In the meanwhile, you can download it directly from the Releases section in this repository.

📊 Development Status

Component Planned In Progress Testing Released 🎉
Grasshopper Get Components (GhGet)
Read the current Grasshopper file and convert it to GhJSON format
🟡 🟠 🟢
Grasshopper Put Components (GhPut)
Place components on the canvas from a GhJSON format
🟡 🟠 🟢
AI Grasshopper Generate Definitions (AIGhGenerate)
Automatically generate Grasshopper definitions using AI
- - -
AI Text Evaluate (AiTextEvaluate)
Return a boolean from a text content using AI-powered checks
🟡 🟠 🟢
AI Text Generate (AiTextGenerate)
Generate text content using AI language models
🟡 🟠 🟢
AI List Evaluate (AiListEvaluate)
Return a boolean from a list of elements using AI analysis
🟡 🟠 🟢
AI List Filter (AiListFilter)
Process items in lists (reorder, shuffle, filter, etc.) based on AI-driven rules
🟡 🟠 🟢
AI List Generate (AiListGenerate)
Generate lists dynamically using AI algorithms
- - -
AI GroupTitle (AiGroupTitle)
Group components and set a meaningful title to the group
- - -
AI Chat (AiChat)
Interactive AI-powered conversational interface
- - -
Deconstruct Metrics (DeconstructMetrics)
Break down the usage metrics into individual values
🟡 🟠 🟢

Is there something missing? Do you have a suggestion? Please open a Feature Request in the Issues tab.

📚 Usage Examples

1 Generate a Title for the Current Document

SmartHopper_Generate Title

2 Working with a CSV file

SmartHopper_Working With CSV

⚙️ Configuration

Set Up the API Key and Other Settings

SmartHopper_Settings

Choose the Provider for each Component

SmartHopper_Select Provider

⏩ Developing the Chat Interface (conceptual preview)

Disclaimer: The chat interface is a conceptual preview of future developments and is not currently implemented.

SmartHopper_Chat Concept

🤝 Contributing

Every great innovation starts with a single contribution. Whether you're a designer, developer, or AI enthusiast, your unique perspective can help shape the future of computational design tools.

Please see our Contributing Guidelines for details on how to contribute to this project.

📝 Changelog

See Releases for a list of changes and updates.

⚖️ License

This project is licensed under the GNU Lesser General Public License v3 (LGPL) - see the LICENSE file for details.


Made with ❤️ by designers, for designers