Skip to content

dongwoosuk/grasshopper-quality-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ¦— Grasshopper Quality Analyzer

Automated quality analysis for Grasshopper definitions. Bring software engineering best practices to computational design.

License: MIT Python: 3.8+ Status: Alpha Version: 0.3.0


🎯 Two Versions, Different Use Cases

πŸš€ Standalone - For Everyone

Perfect for: Daily work, quick checks, real-time feedback

βœ… Zero setup - Works immediately in Grasshopper
βœ… Real-time feedback - See quality score as you work
βœ… Performance profiling - Identify bottlenecks instantly
βœ… Auto-fix - Automatically fix common issues
βœ… Offline - No internet or external tools needed

πŸ“– 5-Minute Quick Start | πŸ“š User Guide


πŸ”§ MCP + Claude - For Developers

Perfect for: Deep analysis, refactoring, AI-powered suggestions

βœ… Complete accuracy - 100% precise GHX/JSON analysis
βœ… AI suggestions - Claude-powered recommendations
βœ… File analysis - Analyze saved files without opening
βœ… Version comparison - Track changes between versions

πŸ“– Setup Guide | πŸ“š User Guide


πŸ†š Which Version Should I Use?

Scenario Use
πŸƒ Working in Grasshopper Standalone
⚑ Need instant feedback Standalone
πŸ“Š Quick quality check (30 sec) Standalone
🎯 Find performance bottlenecks Standalone
πŸ”§ Deep refactoring MCP + Claude
πŸ€– Want AI suggestions MCP + Claude
πŸ“ Analyze saved files MCP + Claude
🀝 Before sharing files Both!

TL;DR: Use Standalone for daily work (90%), MCP+Claude for deep analysis (10%)


⚑ Quick Start

Standalone (5 minutes)

# 1. Download
git clone https://github.com/dongwoosuk/grasshopper-quality-analyzer
cd grasshopper-quality-analyzer/standalone

# 2. Open Grasshopper
# 3. Add Python component
# 4. Choose a component (Health Check, Performance Profiler, etc.)
# 5. Done!

πŸ“– Detailed Guide


MCP + Claude (10 minutes)

# 1. Install dependencies
cd mcp
pip install -r requirements.txt

# 2. Configure Claude Desktop
# See docs/installation-mcp.md for detailed instructions

# 3. Start server
python mcp_server.py

# 4. Ask Claude
"Analyze this GHX file: [path]"

πŸ“– Setup Guide


πŸ†• What's New in v0.3.0-alpha

⚑ Performance Profiler - Major Feature Addition

  • Real-time Performance Analysis - Measure component execution times
  • 3 Profiling Modes: Quick (1 pass), Detailed (5 passes), Live monitoring
  • Bottleneck Detection - Automatically identify slow components (>100ms)
  • Performance Score - 0-100 scoring system with optimization suggestions
  • Plugin Breakdown - Per-plugin performance analysis
  • Smart Suggestions - Context-aware optimization recommendations

πŸ“Š Enhanced Lint Rules (15 β†’ 18)

  • GH016: Slow Component Execution (warning, >100ms)
  • GH017: Computational Bottleneck (info, >20% total time)
  • GH018: Heavy Preview Geometry (info, large geometries)

🎨 Better Component Organization

  • Preview Control - Simple preview enable/disable
  • Display Mode Manager - Icon/Name/Both per component
  • Split from single Display component for better modularity

πŸ“ˆ Project Growth

  • Components: 5 β†’ 9 (+80%)
  • Code: ~1,500 β†’ ~3,900 lines (+160%)
  • Lint Rules: 15 β†’ 18 (+20%)

πŸ“– Full Changelog


πŸ“Š What It Checks

Lint Rules (18 Total)

❌ Errors (2)

  • Dangling Inputs - Unconnected required inputs
  • Runtime Errors - Components with execution errors

⚠️ Warnings (6)

  • Dangling Outputs - Unused component outputs
  • Unnamed Parameters - Sliders/panels without names
  • Runtime Warnings - Components with warnings
  • Slow Component Execution - Components >100ms ⚑ NEW v0.3.0
  • And more...

ℹ️ Info (10)

  • Missing Groups - Large definitions without organization
  • Preview Disabled - Hidden components
  • Plugin Dependencies - External plugins used
  • Computational Bottleneck - Components >20% total time ⚑ NEW v0.3.0
  • Heavy Preview Geometry - Large preview geometries ⚑ NEW v0.3.0
  • And more...

πŸ“– Complete Lint Rules


πŸ“ˆ Features

Analysis Components (4)

  • πŸ“Š Health Score (0-100) - Overall quality metric
  • πŸ“ˆ Detailed Statistics - Component counts, categories
  • πŸ” Issue Detection - Find problems automatically
  • ⚑ Performance Profiler ⭐ NEW v0.3.0 - Bottleneck identification, execution time measurement

Automation Components (5)

  • πŸ”§ Parameter Namer - Batch rename sliders/panels by component type
  • πŸ” Auto Alignment - Smart layout organization
  • πŸ“ Preview Control ⭐ NEW v0.3.0 - Enable/disable all previews
  • 🎨 Display Mode Manager ⭐ NEW v0.3.0 - Icon/Name/Both control per component
  • 🐍 Python I/O Manager - Auto-manage Python script inputs/outputs

AI-Powered (MCP)

  • πŸ€– Smart Suggestions - Claude recommends improvements
  • πŸ“ Best Practices - Learn industry standards
  • πŸ”„ Version Comparison - See what changed
  • πŸ“Š Performance Analysis - AI-powered optimization advice

🌟 Case Study

Architecture Firm Pilot Project

Metric Before After Improvement
Quality Score 42/100 82/100 +95% ⬆️
Review Time 2 hours 30 min -75% ⬇️
Team Issues 40/week 5/week -87% ⬇️
Performance Issues Unknown Identified 100% visibility

"This tool changed how we think about code quality in Grasshopper. It's like ESLint for computational design."
β€” Dongwoo Suk, Computational Designer


πŸ“š Documentation

Getting Started

User Guides

Advanced

🌏 Languages


πŸ—ΊοΈ Roadmap

Q4 2024 (Completed) βœ…

  • Standalone version (v0.1.0-alpha)
  • MCP + Claude integration
  • 15+ lint rules
  • Public alpha release
  • Performance profiler (v0.3.0-alpha)

Q1 2025 (Current)

  • Beta release (v0.4.0-beta)
  • Component alignment improvements
  • Auto-fix enhancements
  • Documentation completion
  • Community feedback integration

Q2 2025

  • v1.0 stable release
  • Food4Rhino listing
  • First 100 users
  • Community building

2025 Vision

  • 500+ active users
  • 15+ firm adoptions
  • Industry standard tool
  • Plugin marketplace integration

🀝 Contributing

We welcome contributions! Here's how you can help:

  • ⭐ Star this repo - Show your support
  • πŸ› Report bugs - Create an issue
  • πŸ’‘ Suggest features - Start a discussion
  • πŸ“ Improve docs - Submit a PR
  • πŸ”§ Write code - Check open issues

πŸ“– Contributing Guide


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

TL;DR: Free to use, modify, and distribute. Just keep the license notice.


πŸ™ Acknowledgments

  • Grasshopper Community - For making computational design accessible
  • Pilot Testing Team - For supporting this project and providing valuable feedback
  • Claude (Anthropic) - For AI-powered analysis capabilities
  • All Beta Testers - For valuable feedback and bug reports

πŸ‘€ Author

Dongwoo Suk
Computational Designer


🎯 Why This Project?

The Problem: Computational designers spend 2+ hours on code reviews, with 40+ questions per week about unclear Grasshopper definitions. There's no quality standard, no automated checking, no performance profiling, no best practices.

The Solution: Bring software engineering tools to computational design. Automated quality checks, performance profiling, instant feedback, industry standards.

The Impact:

  • ⏱️ Save 75% on review time
  • πŸ“ˆ Improve quality by 95%
  • 🀝 Reduce team friction by 87%
  • ⚑ Identify performance bottlenecks instantly

Join us in improving AEC industry productivity! πŸš€


πŸ“Š Project Stats

  • 🐍 Python 3.8+
  • πŸ“¦ ~3,900 lines of code
  • πŸ“ ~2,000 lines of documentation
  • βœ… 18 quality checks (GH001-GH018)
  • 🎨 2 versions (Standalone + MCP)
  • πŸ”§ 9 standalone components
  • ⚑ 3 performance analysis modes
  • 🏒 Pilot tested at architecture firm
  • πŸ‘₯ Growing community

πŸ”— Links


Built with ❀️ for the AEC community
Improving computational design, one definition at a time.

Get Started with Standalone β€’ Setup MCP Version β€’ View Changelog

About

Automated quality analysis for Grasshopper definitions. Real-time lint checking and code quality scoring to improve AEC industry productivity. Includes MCP server for advanced analysis.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages