glasshopper
Directories
- .git
This directory structure represents a standard Git version control repository, centered around the `.git` metadata folder that manages project history and configuration. It includes essential components such as `HEAD`, which points to the current branch, and the `objects/` directory, which stores all commit data and file contents. The `config` file holds local settings, while `refs/` and `packed-refs` manage pointers to branches and tags, with `logs/` tracking historical changes to these references. Additionally, the structure features automation hooks in `hooks/` for workflow customization and an `info/exclude` file for managing local ignore rules, collectively supporting a complete development environment under version control.
- GlassHopper
This directory structure represents a C# .NET plugin library named "GlassHopper," designed to extend the functionality of Grasshopper, a visual programming environment for Rhino 3D. The core logic is organized into modular components such as `Types`, `Parameters`, and `Forms`, which likely define custom data structures, user interface elements, and input/output definitions. Supporting infrastructure includes helper utilities, converters, and extension methods in dedicated folders like `Helpers` and `Converter`, while metadata and lifecycle management are handled by specific classes like `GlassHopperInfo.cs` and `GlassHopperLoader.cs`. The presence of an `.vscode` directory and standard project files indicates this is a modern .NET development environment ready for compilation and integration.
- GlassHopper.Test
The `GlassHopper.Test` directory serves as the comprehensive test suite for the GlassHopper Grasshopper plugin, designed to validate structural engineering components within the Rhino 3D modeling environment. It relies on a robust infrastructure of base classes and fixtures—such as `RhinoCoreFixture` and `GrasshopperTestBase`—to manage the headless initialization of the Rhino engine and consistent culture settings across tests. Specific unit test files like `TestLoads.cs` and `TestMaterials.cs` inherit from these bases to verify distinct functional areas, including load calculations, material definitions, and mesh processing. The structure is organized around modular testing logic, with auxiliary utilities in `CultureSetter.cs` ensuring localized consistency and configuration handled by `xunit.runner.json`.
- YakPackages
This directory serves as a distribution package for "GlassHopper," a Rhino/Grasshopper plugin that provides a parametric interface to the GlaSSS structural glass analysis platform. It contains essential automation scripts, including batch files for installing, uninstalling, and rebuilding the `.yak` packages for both Rhino 7 and Rhino 8 compatibility. The structure is anchored by a `manifest.yml` file that defines the plugin's metadata and dependencies, while a logo image provides visual branding. Together, these components allow users to easily manage, build, and deploy the plugin across supported software versions.
Files
- .gitignore
This file is a `.gitignore` configuration designed primarily for Visual Studio and .NET development environments. It instructs Git to exclude specific files and directories from version control, preventing the repository from being cluttered with temporary, build-generated, or user-specific artifacts. Key components include patterns that ignore debug/release binaries, object files, and IDE cache folders (such as `bin/`, `obj/`, and `.vs/`). It also excludes third-party tool outputs like ReSharper settings, code coverage reports, and NuGet package caches. By filtering out these non-essential items, the file ensures that only source code and necessary project configurations are tracked in the repository.
- GlassHopper.sln
This file is a Visual Studio Solution (`.sln) file for the "GlassHopper.sln" defines a .NET solution structure for the **GlassHopper** project, likely a Windows application or library. It contains four main components: the primary `GlassHopper` C# project, a unit test suite named `GlassHopper.Test`, an external shared protection library (`Protection`), and metadata folders for setup and documentation. The solution supports multiple build configurations, including Debug and Release modes across Any CPU and x64 architectures, indicating it is designed for flexible deployment and testing environments within the Visual Studio IDE.
- README.md
GlassHopper is a Grasshopper plugin that integrates Rhino7/8 plugin that connects parametric models to GlaSSS, a cloud-based platform by Maffeis Engineering for structural analysis and verification of glass elements. It enables users to export geometry, loads, and boundary conditions from Grasshopper, run finite element method (FEM) analyses in the cloud, and import results back in real time for visualization, optimization, and integrated design workflows. Key components include installation scripts (`RebuildYak.bat`) for generating Yak packages, distribution servers for test and production environments, and automatic testing protocols requiring specific configurations like disabling certain plugins and setting decimal separators. The software supports both Rhino 7 and 8 with distinct package versions and requires careful management of dependencies and environment settings to ensure smooth operation and testing.