Opossum

DOI

Opossum

Opossum is an optimization plug-in for Grasshopper (for Rhino) that implements model-based and evolutionary optimization algorithms for single- and multi-objective problems. The plugin integrates GUI components into Grasshopper to configure runs, visualize results, and persist optimizer state inside Grasshopper documents.

This repository contains a .NET/Grasshopper plugin project targeting .NET Framework 4.8.

Highlights

Model-based single-objective optimization (RBFOpt) Evolutionary single-objective optimizer (CMA-ES) Multi-objective RBFMOpt optimizer Multiple multi-objective algorithms via pygmo Interactive Grasshopper window and result serialization

Notable folders and classes

Opossum2_0_Proto_A/ — main plugin project. Contains component classes, UI windows, serialization utilities, and resources.

  OptComponent.cs — main Grasshopper component implementation: UI hooks, serialization/deserialization, and component registration.
  Resources/ — embedded icons, images, and other resource files used by the plugin.
  Solver/ — optimization solver interface and implementations (RBFOpt, pygmo, etc.).

Requirements and dependencies

Development / build

Microsoft Visual Studio (2017, 2019, or 2022) with .NET Framework 4.8 targeting pack installed. The Grasshopper and Rhino SDK (or runtime assemblies) to resolve references to Grasshopper.dll, GH_IO.dll, and RhinoCommon.dll.

Runtime

Rhino with a matching version of Grasshopper (the plugin runs inside Grasshopper). Opossum installed via Food4Rhino or PackageManager to obtain Python backend and dependencies.

The plugin expects to be loaded inside Grasshopper; it does not run as a standalone .NET application.

Build instructions

Open the solution in Visual Studio. Ensure project references to Rhino/Grasshopper assemblies are valid (point to the installed Rhino/Grasshopper runtime or SDK). These references are typically not committed and must be resolved on your machine. Restore NuGet packages. Build the Opossum2_0_Proto_A project in Debug or Release configuration.

The produced assembly will generally be a .dll file or .gha (Grasshopper plugin), depending on how the project is configured.

Install and run

Install Opossum from Food4Rhino or PackageManager. Copy the built .gha/.dll to Grasshopper's Components folder. Restart Rhino/Grasshopper. The plugin registers its component(s) under the category set in the component registration (for example Params -> Util).

Usage notes

OptComponent manages component serialization (stores GUIDs of linked variables, simulators, and objectives) so saved Grasshopper files keep references and results across sessions. Results can be serialized into the Grasshopper document and later reloaded. The component distinguishes whether results were produced by the optimizer or loaded from a file. If your installation uses an external Python optimizer, verify that the Python environment is accessible from the host machine and any interop code is configured to find the Python interpreter and libraries.

Development notes

To debug the plugin, run Rhino and attach the Visual Studio debugger to the Rhino process. When changing serialization formats (chunk names, GUIDs, or data layout), be careful to preserve compatibility with existing saved Grasshopper documents or provide migration logic. UI classes (windows) are created at runtime and registered with Grasshopper's FormShepard; ensure proper disposal to avoid resource leaks.

Identifier
DOI https://doi.org/10.18419/DARUS-5685
Metadata Access https://darus.uni-stuttgart.de/oai?verb=GetRecord&metadataPrefix=oai_datacite&identifier=doi:10.18419/DARUS-5685
Provenance
Creator Zorn, Max Benjamin ORCID logo; Paule, Robin ORCID logo; Akbar, Zuardin ORCID logo; Wortmann, Thomas ORCID logo
Publisher DaRUS
Contributor Zorn, Max; Wortmann, Thomas; IntCDC RDM
Publication Year 2026
Funding Reference DFG EXC 2120/1 - 390831618 ; BBSR 10.08.18.7-23.21
Rights GPL 3.0 or later; info:eu-repo/semantics/openAccess; https://www.gnu.org/licenses/gpl-3.0-standalone.html
OpenAccess true
Contact Zorn, Max (University of Stuttgart); Wortmann, Thomas (University of Stuttgart); IntCDC RDM (University of Stuttgart)
Representation
Resource Type Dataset
Format application/zip
Size 199045
Version 1.0
Discipline Computer Science; Computer Science, Electrical and System Engineering; Construction Engineering and Architecture; Engineering; Engineering Sciences