AT6012 · Design Research: Technology Transformations

Reading a climate before you design in it

Grasshopper and Ladybug, taught against a script that checks your canvas. The measure is UTCI, and the question it answers is what this weather does to a person standing outdoors in it.

Cork's air is 6.8 degrees colder than Rome's. Cork's experience is 12.7 degrees colder, and it holds thirty comfortable hours in a year against Rome's eight hundred and seventy-seven. The extra ten degrees is wind, and it appears in no temperature figure a brief will quote at you.

Begin the module Quick start, ten minutes The definitions

Runs without Rhino. The Python side needs no licence Weather: Cork and Rome, TMYx 2011-2025 Written: 30 August 2026
How the module is built

A synergetic nine-square

Position carries meaning. The top row holds the principles, the centre cell is the live probe you run, and the foot of the grid is praxis: the two cities, the honest counter-case, and where to take it next.

North · principle (abstract) West · setup & definitions Centre · the live probe East · tools & metrics South · praxis (concrete)

▲ general / principle  ·  the vertical axis is an abstraction gradient  ·  special / praxis ▼

NWPrinciple

The finding

Air temperature is not what a body feels. The gap between the two is made by wind, sun and humidity, and in a maritime climate the gap is larger than the difference between cities.

In plain terms: the thermometer is not the experience.
NPrinciple

UTCI, the index

The Universal Thermal Climate Index folds air temperature, mean radiant temperature, wind and humidity into one felt temperature, with published stress categories.

In plain terms: one number for what a body actually feels outdoors.
NEPrinciple

What a weather file is

A TMYx year is twelve real months chosen from a stated span of real years and stitched into one. It describes the recent past.

In plain terms: it is a record, and it is never a forecast.
WSetup

Install the engine

Two pip packages, ladybug-core and ladybug-comfort, are the same libraries the Grasshopper components call. Cork and Rome are already in the folder.

In plain terms: ten minutes, and no Rhino needed yet.
The probe

Run the index, then build the canvas

Compute Cork's UTCI in the script, note the two numbers, then assemble the Grasshopper definition and make it agree.

In plain terms: the script is how you find out the canvas is wrong.
ETools

The four definitions

Read the file, sun path and radiation, UTCI, then Honeybee daylight where your own geometry enters. Component by component.

In plain terms: you assemble them once and keep them.
SWCounter-case

Where the index stops

UTCI describes a person standing in the open. It says nothing about a sheltered courtyard, and nothing at all about any building.

In plain terms: the honest limit that makes the rest usable.
SPraxis

Cork beside Rome

Both files run through the same measure. The cohort travels to Rome from 5 to 16 October 2026, and this is the climate they arrive in.

In plain terms: the comparison is the exercise.
SEExemplar

Carry it further

Into infrared.city for a street that exists, into the Revit and Dynamo work in the academy, and into your own dossier.

In plain terms: where the skill goes once you have it.
North · principle

The finding

The claim the whole module tests.

Frames: Bröde et al. (2012), the UTCI operational procedure.

A site brief will give you an average temperature. It is almost always the air temperature, measured in a shaded ventilated box at two metres, and it is not what anybody standing on the site experiences. Wind strips heat off a body. Sun adds it back. Humidity decides whether sweating works.

Run the two files in this folder and the size of that difference stops being an abstraction. Cork's air averages 10.47 C across the year. What a body feels averages 2.82 C. The gap is 7.65 degrees, which is larger than the 6.8-degree difference between Cork's air and Rome's.

So the first move on any site is to find the gap, and the second is to find out what makes it. In Cork it is wind, and a design that shelters without trapping is worth more than a design that insulates.

North · principle

UTCI, the index

What the number means and where the categories come from.

Source: Bröde et al. (2012), Int. J. Biometeorology 56(3), 481-494.

UTCI answers one question: given this air temperature, this mean radiant temperature, this wind speed and this humidity, what air temperature in a reference condition would feel the same. So the output is in degrees Celsius, and it is a felt temperature rather than a measured one.

The index carries published stress categories, and these are its own terms. Do not rename them to fit a legend.

RangeCategory
above 46 Cextreme heat stress
38 to 46 Cvery strong heat stress
32 to 38 Cstrong heat stress
26 to 32 Cmoderate heat stress
9 to 26 Cno thermal stress
0 to 9 Cslight cold stress
-13 to 0 Cmoderate cold stress
-27 to -13 Cstrong cold stress
-40 to -27 Cvery strong cold stress
below -40 Cextreme cold stress
The UTCI assessment scale, Bröde et al. (2012). The band at 9 to 26 C is the one this module counts hours in.
North · principle

What a weather file is

And what it can never tell you.

An EPW holds 8760 rows, one an hour for a year, with temperature, humidity, wind, radiation and sky conditions on each. The year is not a real year. A TMYx is assembled by picking, for each month, the most typical instance of that month from a stated span of real years, then stitching the twelve together.

The files here are TMYx 2011-2025, so they describe the fifteen years to 2025. That has two consequences you carry into every figure you report. The file is a record of the recent past. And the year span is part of the citation, because a Cork file assembled from 2004-2018 gives different answers.

Every analysis in this module is structural and none is predictive. It shows what a change of frame reveals. It never says a number will move by an amount, because a typical year assembled from the past cannot support that claim.

West · setup

Install the engine

Ten minutes. No Rhino licence at this stage.

Ladybug Tools has a Python core, and the Grasshopper components are a canvas over it. Installing that core gives you the same engine without Rhino, which matters twice: a learner without a licence can still do the analysis, and everybody gets a reference to check the canvas against.

python -m venv venv
source venv/bin/activate      # macOS or Linux
venv\Scripts\activate         # Windows

pip install -r requirements.txt

Cork and Rome are already in weather/, so there is nothing to download to start.

Centre · the live probe

Run the index, then build the canvas

The hands-on core of the module.

First the script, so you have a number before you have an opinion.

python utci_from_epw.py weather/IRL_ST_Cork.AP.039550_TMYx.2011-2025.epw

You are looking for a UTCI annual mean of 2.82 C and 30 hours at no thermal stress. Those two numbers are your target for the rest of the session.

Then open Grasshopper and build definition 3 from the definitions sheet: import the EPW, derive outdoor mean radiant temperature, wire air temperature, humidity, wind and that MRT into LB UTCI Comfort.

If the canvas gives you something near 10 C, you have left the wind input unconnected. The component runs happily without it and assumes still air. In Cork that single omission moves the annual mean by about seven degrees, because wind is doing almost all the work. This is the most useful mistake in the module, and it is worth making once on purpose.

Two settings decide the answer and both belong in your dossier. Wind is recorded at 10 m in an EPW and the index is defined at 1.1 m, so the component reduces it. And mean radiant temperature is not in the file at all: it is derived, assuming a person standing in the open with nothing shading them. Change either and you have answered a different question, so say which one you answered.

East · tools

The four definitions

Component by component, in GRASSHOPPER.md.

1. Read the weather file. The one everything else starts from. File path into LB Import EPW, dry bulb into a monthly chart.

2. Sun path and radiation. Location into LB SunPath, direct and diffuse radiation into LB Cumulative Sky Matrix and a sky dome. Cork's path is visibly flatter than Rome's, and the difference is ten degrees of latitude.

3. UTCI. The one the module turns on, described above.

4. Honeybee daylight. Where your own geometry enters: a room as a closed brep, apertures by ratio, then annual daylight through Radiance. Start with one room and a coarse grid, because Radiance is slow. A fine grid over a whole model will run for a long time.

No .gh files ship with this module. A Grasshopper definition is a binary file written by Rhino, and nothing in this repository can author one. A file that claims to be a working definition and turns out to be empty is worse than no file, so the sheet gives the component sequence and you assemble it once. Assembling it is the better exercise: a definition handed over as a black box teaches you to press a button.

South · counter-case

Where the index stops

The honest limit, and the one to state before anybody asks.

UTCI as computed here describes a person standing outdoors in the open, in the wind recorded at an airport weather station, with the sky above them unobstructed. Almost no interesting place in a city is like that.

A courtyard is sheltered, so its wind is a fraction of the recorded figure and its UTCI is much higher. A north-facing lane never gets the sun the file reports. A street canyon radiates stored heat back at night. None of that is in these numbers, and reporting a station UTCI as though it described your site is the error this section exists to stop.

What the station figure is good for is the climate the site sits in, the size of the gap between air and experience, and what makes that gap. Those hold across a city. The moment you want a figure for one place, you need the microclimate, and that is what infrared.city does next door.

South · praxis

Cork beside Rome

Both from the files in weather/, computed 30 August 2026.

MeasureCork AirportRome Fiumicino
Latitude51.8541.80
Air temperature, annual mean10.47 C17.24 C
UTCI, annual mean2.82 C15.51 C
The gap7.65 C1.73 C
UTCI minimum-27.84 C-26.33 C
UTCI maximum31.40 C43.25 C
Hours at no thermal stress30877
Share of the 8760 hours0.3%10.0%
Computed with ladybug-core 0.44.57 and ladybug-comfort 0.19.6 from TMYx 2011-2025 files, Cork Airport WMO 039550 and Rome Fiumicino WMO 162420, retrieved from climate.onebuilding.org on 30 August 2026. Reproduce with python compare_locations.py weather/*.epw. These are station figures for a person standing in the open, so they describe a climate and not a site.

Read the minimum row twice. Cork and Rome bottom out within a degree and a half of each other, which is not what anybody expects. The two climates differ in how much of the year sits in the comfortable band, and hardly at all in how cold it can get on the worst hour.

The maximum row is where they part: Rome reaches 43.25 C on the index, which is very strong heat stress, and Cork never leaves moderate. A design move that is obviously right in one column can be obviously wrong in the other, and the fortnight in Rome is when that stops being a table and becomes something the cohort stands in.

South-east · exemplar

Carry it further

The instruments this one hands off to.

infrared.city takes the next step: a street that already exists, read as UTCI, wind and solar grids, with the question of whether added canopy actually cools it. This module gives the climate, that one gives the microclimate.

The academy holds the Revit and Dynamo side: Revit fundamentals, two family guides, the Dynamo workflow, and the Jitterbug parametric family automation that runs the synergetics geometry into a Revit family. Where this module reads a climate, that one builds the thing that sits in it.

Emergy Explorer on ENGAGE, for Odum's energy accounting, and AECO2 BIM Canvas for actors, stocks and flows.

Into your own dossier. Every project in the module carries a climate reading. Name the weather file with its year span, say whether wind and mean radiant temperature were included, and report the gap as well as the mean. A UTCI figure without those is not checkable by anybody, including you in six weeks.

Sources

Bröde, P., Fiala, D., Błażejczyk, K., Holmér, I., Jendritzky, G., Kampmann, B., Tinz, B., and Havenith, G. (2012). Deriving the operational procedure for the Universal Thermal Climate Index (UTCI). International Journal of Biometeorology, 56(3), 481-494. https://doi.org/10.1007/s00484-011-0454-1 Verified at Crossref on 30 August 2026, all eight authors in that order. Crossref returns 2011 for issued because that is the online-first date; the issue is May 2012 and 2012 is the year to cite.

Weather data from climate.onebuilding.org, TMYx 2011-2025, retrieved 30 August 2026.

Ladybug Tools, ladybug.tools. Open source under AGPL. Rhino and Grasshopper are commercial and a student licence covers the module.

What this module does not do

It does not predict. Every figure on this page is computed from a typical year assembled out of the recent past, and nothing here can support a claim that a number will move by an amount. Where a question cannot be answered from the record, the module says so and names what answering it would take.

Where it lives

AT6012 Design Research: Technology Transformations, Cork Centre for Architectural Education, University College Cork. Back to the module · The MOOC school · Frame School on ENGAGE. Written 30 August 2026.