AI Audio Summary and Discussion
Want to learn about this topic in the background? Give this AI-generated audio summary a listen (created using NotebookLM).
Designing high-performance buildings requires fast, accurate insights into how structures interact with environmental forces. Traditional simulation tools, while powerful, can be time-consuming and computationally intensive, especially for complex designs. These methods often slow teams down, with each design change taking hours or even days to analyze and reflect in new results.
Machine learning (ML) offers a faster, more efficient alternative by learning from data and making quick, accurate predictions. Its workflows are lightweight without sacrificing accuracy, spotting patterns and making informed forecasts instead of recalculating every detail from scratch. Developing machine learning skills allows architects and engineers to test ideas rapidly, explore more design options, and optimize building performance with greater agility.
One example of applying this workflow is predicting incident solar radiation — the amount of solar energy that strikes surfaces like roofs, walls, or solar panels. Understanding incident solar radiation early in the design process can inform and improve building geometry, material selections, shading strategies, and solar panel placement. Instead of waiting for slow simulations to process complex models, machine learning can rapidly forecast solar exposure based on design and environmental inputs, enabling faster and more proactive design iterations.
LunchBox includes Machine Learning components (LunchBoxML) that make Accord.NET and ML.NET workflows accessible within Grasshopper. These components allow users to train, save, and test machine learning models using a variety of algorithms. Here, we use LunchBox’s Regression Trainer alongside Ladybug’s environmental modeling tools to predict incident solar radiation for an irregular surface.
The example demonstrates a practical way to prepare a dataset, train an algorithm, and test a model — providing a foundation for using ML workflows to make other design predictions as well.
Prerequisites & Resources
- Rhino (Service Release 12 or newer), Grasshopper, and Ladybug (1.8 or newer)
- LunchBox for Grasshopper, Version 2025.04.10.0 (Release date: 10 April 2025) or newer
Part 1: Create a Training Data Set




The process begins by creating or sourcing a dataset that can be used to train a predictive algorithm. For this example, we use Ladybug to calculate Incident Radiation for a series of planes.
- Start a session of Grasshopper.
- Choose a geographic location and use Ladybug’s Download EPW and Import EPW components to bring weather data into Grasshopper. An EPW file, short for “EnergyPlus Weather File,” is a text-based, comma-separated file format used to store weather data for building simulations. These files contain hourly weather data, including temperature, humidity, solar radiation, wind, and precipitation, typically for a full year. EPW files are widely used by energy modelers and building consultants for simulations involving daylighting and energy performance analysis. Ladybug includes components that direct you an interactive map where you can find links to EPWs that can be used in Grasshopper.
- Use the data from the EPW as input values for Ladybug’s Sky Matrix component, which calculates radiation for each part of the sky at the given location.
- Create a series of planes where radiation will be calculated. This example creates a 3D array of points, and then creates a series of rotated planes around the points, so that the dataset will represent incremental 360-degree surface rotation. Then use this geometry run Ladybug’s Incident Radiation component.
- Evaluate each plane to find their Normal vector, then calculate each vector’s Angle from the X, Y, and Z axes as separate lists.
- Organize the Incident Radiation Results (kWh/m2), Angle from X, Angle from Y, and Angle from Z lists and use the ExcelWrite component to save this data as an Excel spreadsheet.
Part 2: Train the Algorithm
The next step is to use the dataset you created to train an algorithm. In this case, we will use a Machine Learning (ML.Net) Regression Trainer. This is a category of trainers that is used for predicting continuous values (like price, temperature, etc.). Regression trainers are used when the output values are real numbers, as opposed to a category.
We’ll configure the Regression Trainer as a Light GBM (Light Gradient Boosting Machine) type. This is a specific trainer in ML.NET that is based on a high-performance, tree-based algorithm that works well for Regression and Classification problems. The decision tress it creates help the algorithm to “learn” in successive steps, so that it does not need to start from scratch when an error is encountered — it can simply return to the previous branch in the tree and move forward.
To summarize this, Regression Trainers are a class of ML training that is good for predicting values along a continuous domain, and a Light GBM trainer is a type of Regression Trainer that learns from errors and improves at each step.
- Create a new Grasshopper document
- Use an Excel Reader component to connect to the Excel file that was created in Part 1 (above).
- Use the “Create Data Set” component to organize the data from the spreadsheet into Labels (the column headers) and values.
- Add LunchBox’s “Light GBM Trainer” component to the canvas.
- Feed the data set values into LunchBox’s Regression Trainer component. The AngleX, AngleY, and AngleZ fields should be connected as “Features”. The kWhM2 field should be connected as the “Label”. Connect the Light GMB Trainer to the “Trainer Type” input.
- Right click on the center of the Regression Trainer component and save the regression trainer as a ZIP file. See our documentation on how to save trained models here.
Part 3: Testing the Model
In this step, we’ll use the model from Part 2 to predict Incident Solar Radiation on a series of panels.
- In a new Grasshopper file, create a panelized surface, and evaluate each of the panels to find their Normal vector. Then, use the same workflow from Part 1 to break the vector into it’s X, Y, and Z angles.
- Load the trained model from Part 2 into the document.
- Use the “Regression Tester” component to predict the Incident Solar Radiation values for each panel.
Part 4: Group Similar Panels by their Characteristics (Optional)
LunchBox ML includes grouping components, such as Gaussian Mixture, that help users to organize elements from a given list into groups their most similar elements. This can be a helpful utility to break down complex information into smaller subsets, and in the case of grouping similar geometry can be used to facilitate the design of modules for construction.
- Define numerical panel characteristics such as Incident Solar Radiation, Area, Out of Plane Distance, and point-to-point dimensions.
- Structure this into a dataset. For this example, we used the “Entwine” and “Flip Matrix” components.
- Feed the values into a “Gaussian Mixture” component and define the number of groups.
- Visualize the groups by color. In this example, a gradient is used to set each group as a different color.
You made it to the end! Thanks for following along. Have questions? Reach out to our team at apps@provingground.io.





