Skip to main content

Developer Overview

Welcome to the InForm developer documentation! This section is designed for engineers, developers, and technical professionals who create parametric models, upload Grasshopper scripts, and configure InForm projects.

Who This Documentation Is For​

Primary Audience​

  • Computational Design Engineers: Creating parametric models in Grasshopper
  • Software Developers: Integrating with InForm APIs and extending functionality
  • Technical Project Managers: Overseeing InForm project implementation
  • System Administrators: Managing InForm deployments and infrastructure

Prerequisites​

  • Grasshopper experience: Basic to intermediate knowledge of Grasshopper
  • Programming knowledge: Familiarity with scripting and APIs
  • Design understanding: Knowledge of parametric design principles
  • Web technologies: Basic understanding of web applications and APIs

InForm Development Workflow​

Project Lifecycle​

  1. Model Development: Create parametric models in Grasshopper
  2. Script Preparation: Package models for InForm deployment
  3. Upload and Configuration: Deploy models to InForm platform
  4. Testing and Validation: Verify model behavior and performance
  5. User Training: Prepare end users for effective exploration
  6. Maintenance: Ongoing updates and optimization

Development Environment​

  • Rhino + Grasshopper: Primary modeling environment
  • InForm Platform: Web-based deployment and exploration
  • RhinoCompute: Server-side computational engine
  • Azure Functions: Backend processing and API services
  • Unity WebGL: 3D visualization and interaction

Core Concepts​

Parametric Design in InForm​

Parameter Types​

  • Continuous parameters: Sliders with numeric ranges
  • Discrete parameters: Lists of specific values
  • Boolean parameters: True/false switches
  • Categorical parameters: Multiple choice selections

Design Space Definition​

  • Parameter bounds: Minimum and maximum values
  • Constraints: Rules that limit valid combinations
  • Objectives: Metrics to optimize or evaluate
  • Dependencies: Relationships between parameters

InForm Architecture​

Frontend Components​

  • React Application: User interface and interaction
  • Unity WebGL: 3D visualization and model display
  • Parameter Controls: Dynamic UI for parameter adjustment
  • Visualization Tools: Charts, graphs, and analysis displays

Backend Services​

  • RhinoCompute: Grasshopper model evaluation
  • Azure Functions: API endpoints and business logic
  • Authentication: Azure Active Directory integration
  • Data Storage: Model results and project configuration

Integration Points​

  • Model Upload: Deployment of Grasshopper definitions
  • Parameter API: Real-time parameter communication
  • Geometry API: 3D model data transfer
  • Analysis API: Performance metrics and calculations

Development Tools and Resources​

Required Software​

Rhino and Grasshopper​

  • Rhino 7 or later: 3D modeling platform
  • Grasshopper: Visual programming for parametric design
  • Required plugins: See Grasshopper Setup for details

Development Tools​

  • Visual Studio Code: Recommended for script development
  • Git: Version control for model and script management
  • Postman: API testing and development
  • Browser Developer Tools: Frontend debugging and testing

InForm-Specific Tools​

Model Preparation​

  • InForm Grasshopper Components: Special components for InForm integration
  • Parameter Configuration Tools: Define parameter types and ranges
  • Output Configuration: Specify geometry and data outputs
  • Validation Tools: Check model compatibility and performance

Deployment Tools​

  • InForm CLI: Command-line tools for model deployment
  • Project Configuration: Define project settings and user access
  • Testing Framework: Automated validation of model behavior
  • Performance Monitoring: Track model execution and optimization

Getting Started​

Quick Start Guide​

  1. Set up your development environment: Install required software and tools
  2. Create your first model: Build and deploy a simple parametric model
  3. Configure project settings: Set up parameters and user access
  4. Test and validate: Ensure model works correctly in InForm
  5. Optimize performance: Improve model speed and reliability

Learning Path​

Beginner Level​

  • Basic Grasshopper parametric modeling
  • Understanding InForm parameter types
  • Simple model upload and configuration
  • Basic testing and validation

Intermediate Level​

  • Complex parameter relationships and constraints
  • Performance optimization techniques
  • Advanced visualization configuration
  • User experience design for exploration

Advanced Level​

  • Custom component development
  • API integration and extension
  • Advanced analytics and optimization
  • Enterprise deployment and scaling

Best Practices​

Model Development​

Design Principles​

  • Clear parameter definition: Well-named, appropriately ranged parameters
  • Logical organization: Grouped parameters and clear model structure
  • Performance optimization: Efficient algorithms and minimal computation
  • Robust design: Handle edge cases and invalid inputs gracefully

Documentation Standards​

  • Parameter descriptions: Clear explanations of what each parameter controls
  • Model documentation: Architecture and design decisions
  • User guides: How to effectively explore the design space
  • Technical specifications: Performance characteristics and limitations

Deployment and Operations​

Quality Assurance​

  • Systematic testing: Validate model behavior across parameter ranges
  • Performance testing: Ensure acceptable response times
  • User acceptance testing: Verify usability and effectiveness
  • Load testing: Confirm system can handle expected usage

Maintenance Practices​

  • Version control: Track model changes and deployments
  • Monitoring: Watch for performance issues and errors
  • User feedback: Collect and respond to user experiences
  • Continuous improvement: Regular updates and optimization

Common Use Cases​

Structural Engineering​

  • Building optimization: Structural member sizing and layout
  • Performance analysis: Stress, displacement, and stability
  • Material optimization: Weight, cost, and strength trade-offs
  • Code compliance: Verification against design standards

Architecture and Space Planning​

  • Layout optimization: Space allocation and circulation
  • Environmental analysis: Lighting, ventilation, and energy
  • Aesthetic exploration: Form, proportion, and visual impact
  • Regulatory compliance: Zoning, accessibility, and codes

Infrastructure Design​

  • Network optimization: Transportation and utility networks
  • Geometric design: Alignment, grading, and cross-sections
  • Capacity analysis: Traffic flow and service levels
  • Cost optimization: Construction and lifecycle costs

Development Resources​

Documentation and Guides​

Community and Support​

  • Developer Forums: Connect with other InForm developers
  • Training Sessions: Regular workshops and tutorials
  • Expert Consultation: Access to InForm development team
  • Open Source Components: Contribute to shared tools and resources

Example Projects​

  • Tutorial Models: Step-by-step learning examples
  • Reference Implementations: Best practice examples
  • Template Projects: Starting points for common use cases
  • Advanced Examples: Complex multi-objective optimization cases

Performance Considerations​

Model Efficiency​

  • Computational complexity: Minimize calculation time
  • Memory usage: Efficient data structures and algorithms
  • Network optimization: Reduce data transfer requirements
  • Caching strategies: Reuse calculations when possible

Scalability Planning​

  • User concurrency: Design for multiple simultaneous users
  • Model complexity: Balance detail with performance
  • Resource management: Efficient use of server resources
  • Growth planning: Anticipate increasing usage and complexity

Security and Compliance​

Data Protection​

  • Intellectual property: Protect proprietary models and algorithms
  • User data: Handle personal and project data responsibly
  • Access control: Implement appropriate permissions and restrictions
  • Audit trails: Track model usage and modifications

Compliance Requirements​

  • Industry standards: Meet relevant technical and professional standards
  • Organizational policies: Align with corporate governance requirements
  • Legal requirements: Comply with applicable laws and regulations
  • International considerations: Handle cross-border data and usage

Next Steps​

Immediate Actions​

  1. Set up your development environment
  2. Review the script upload process
  3. Explore example projects and templates
  4. Join the developer community

Ongoing Development​

  • Stay updated with platform improvements and new features
  • Participate in community discussions and knowledge sharing
  • Contribute feedback to help improve the platform
  • Share your success stories and best practices

Troubleshooting and Support​

Common Issues​

Getting Help​

  • Community forums: Connect with other developers
  • Technical support: Direct assistance for complex issues
  • Training resources: Guided learning and skill development
  • Expert consultation: Access to InForm development team