The Full infrared SDK, Inside Your Parametric Workflow
The infrared.city Grasshopper workflow brings the full SDK into a parametric environment. Every analysis type the SDK supports — wind, solar and thermal models — runs directly inside Grasshopper. Change a parameter, re-run, and the results update in place. The geometry, the simulation, and the post-processing all live in the same file.
Large areas covered in a single run, with automatic tile stitching
8 analysis types — wind, thermal and solar models
Under 60 seconds typical result time for a district-scale UTCI run
You can download the ready-to-use Grasshopper file by filling out the form and work through the tutorial alongside the canvas.
Area coverage at city scale
One of the constraints of running simulations in design tools has been area. Most plug-ins handle a building or a small site. This workflow handles districts.
The SDK tiles large analysis areas automatically. A 5 km² study area runs as a grid of tiles that are processed and stitched into a single result mesh — no manual splitting required. If you need to go further, you can tile multiple workflow instances side by side and combine the outputs in Grasshopper. The tiling logic is handled by the SDK; your canvas just sees one result.
This makes the workflow useful not just for individual building studies, but for masterplan work, urban regeneration schemes, and comparative area analyses where you need to understand conditions across a whole neighbourhood at once.
Every analysis type, one workflow
The same four-component setup — IR_ApiKey, IR_BYO, IR_Geometry, IR_Run — works across all SDK analysis types. Switch the analysis type in the panel and re-run. The geometry, location, and weather settings carry over.
| Analysis | What it shows |
|---|---|
| Thermal Comfort (UTCI) | Outdoor comfort at pedestrian height, in °C. Identifies heat stress zones and the effect of shade and planting. |
| Thermal Comfort Statistics | Percentage of hours in each stress category over a season or year. Useful for planning and policy reporting. |
| Wind Speed | Mean wind speed at pedestrian height across the study area. Identifies uncomfortable or dangerous wind zones. |
| Pedestrian Wind Comfort | Lawson Criteria categories mapped spatially. Flags areas unsuitable for sitting, standing, or walking. |
| Solar Radiation | Cumulative solar energy on surfaces. Relevant for PV yield, overheating risk, and outdoor space quality. |
| Direct Sun Hours | Hours of direct sun at ground or surface level during a defined period. Standard input for many planning requirements. |
| Daylight Availability | Daylight factor at street level. Used in residential and public space quality assessments. |
| Sky View Factor | The fraction of sky visible from the ground plane. An indicator of urban density and nighttime cooling potential. |
What’s on the canvas
When you open the GH file, five numbered groups label everything you need to configure. There are no hidden settings — the canvas is the documentation.
First-time setup — do this once
Toggle IR_Setup component’s run input to True.
Wait until info reads OK - infrared_sdk 0.9.x installed … (first run downloads the SDK + dependencies, so give it up to a minute).
Restart Rhino.
That installs the Infrared SDK into Rhino’s base Python, so every other component can use it. You only do this once per machine (re-run IR_Setup later to upgrade the SDK).
1 — Bring Your Own Data
Everything here is optional. Connect what you have, leave the rest empty.
- Buildings — Wire any mesh or brep geometry — modelled in Rhino, generated parametrically, or imported. The component triangulates it automatically. Any number of buildings works: a single pavilion, a full urban block, or a speculative masterplan.
- Trees — Wire Point3d objects at tree locations. These can come from Rhino, a point grid, an attractor field, or any other GH output. Set crown radius and height with two number inputs to define the canopy size.
- Ground materials — 5 dedicated curve inputs: asphalt, concrete, vegetation, soil, water. Wire closed curves from anywhere in your workflow — drawn in Rhino, offset from building footprints, or generated procedurally. Leave any input empty if that surface doesn’t appear in your design.
- Mix your own data with the SDK’s. Two toggles control the trees and ground layers: set
fetch_sdk_treesorfetch_sdk_groundto True to pull the SDK’s context data and merge your own geometry on top. Keep them False to work with just the data you provide. This lets you drop a few proposed trees into an existing planted street, or lay a new ground material over the surrounding context — without modelling everything from scratch.
NOTE: Set the geometry inputs to List Access. The buildings, tree, and ground material inputs each take multiple items, so they must be set to List Access on the IR_BYO component. Right-click any of these inputs → Access → List. With Item Access, the component runs once per item instead of once with the full set, and your data won’t come through correctly.
- EPW weather file — Wire a file path to a local
.epwfile. Either right-click a Panel, paste the path, and wire it in — or use a File Path component (right-click → “Select one existing file”) to browse to the file directly. The component reads all 8,760 hourly records; only those matching your chosen time period are used in the simulation.
2 — Setup API Key and Location
API key: Flip the Set Key toggle to True. A dialog appears — paste your API key and confirm. When the key has been stored successfully, the component displays KEY SET. The key persists between sessions, so you only need to do this once. To clear it and enter a new key, flip the Reset toggle to True. You can find your API key in the infrared.city web app under Billing → API Keys.
Location: Set latitude, longitude, and study area radius in metres. The radius defines how far from your centre point the SDK fetches context buildings, vegetation, and ground materials. For a 5 km² study area, use a radius of approximately 1,250 m.
NOTE: Radius sets the coverage area the SDK fetches around your centre point. If you’re bringing your own buildings, trees, or ground materials via the BYO section, the simulation uses the extent of that geometry as the study area — radius is not required. If you’re not providing any BYO layers, enter a radius to define the area for the SDK to fetch context from.
3 — Visualize Fetched Data
Before running a simulation, preview what the SDK has loaded for your area. Buildings appear as mesh geometry in the Rhino viewport; trees appear as schematic trunk-and-crown forms. If you’ve wired in BYO geometry, this section shows your buildings and trees in the same preview — so you can verify the context is correct and your geometry is positioned as expected. No tokens are consumed during preview.
4 — Setup Your Analysis
All simulation parameters live here as editable panels:
- Analysis type — Select from the 8 available types.
- Time period — Month, start and end hour. Define a summer afternoon, a full cooling season, or any custom window.
- Wind direction and speed — For wind analyses, set the prevailing wind direction in degrees and speed in m/s.
- Additional parameters appear depending on the analysis type selected.
5 — Preview Cost, Then Run
Preview Only = True — The component estimates the token cost for your study area and settings without running the simulation. Check this before committing to a large area run.
Preview Only = False — Runs the full simulation. Results arrive as a heatmap mesh in Grasshopper — UTCI values, wind speeds, or solar radiation per face, depending on the analysis type. The mesh stays in the GH canvas for post-processing, export, or visualization.
Results that stay in Grasshopper
The analysis result comes back as a mesh with values per face. It stays in Grasshopper, which means you can post-process it parametrically: filter by value, compute statistics, overlay with your geometry, export as CSV, or pipe directly into a custom visualization.
Compare two design scenarios by running the same location with different geometry wired in and differencing the result meshes. The parametric chain is unbroken from design model to simulation output.
The workflow file includes the complete Python 3 source for each component. If you want to extend it — add a new analysis type, change how results are displayed, wire outputs into your own post-processing logic — the code is there to modify. The SDK documentation covers every parameter the components expose.