AT6012 · Design Research: Technology Transformations

Forest First: from an ontology to a makable recipe

One pipeline, five strata, built on a single peer-reviewed paper. A vocabulary of tree and timber traits becomes a graph of a real landscape, then a principle, then a case, then five things you can run this afternoon.

337 cells out of 1,649,532 can supply all seven building groups. That is 337 hectares in a landscape 136 by 121 kilometres across. A specification that reaches every group is asking for something that exists on a third of one percent of the forested fifth of a territory.

The five strata The recipes The Grasshopper definition

Built on: Osborne et al. (2023) alone Every table: derived by a script Written: 30 August 2026
The pipeline

Five strata, and what each one hands on

The platform's architecture runs Data to Ontology to Knowledge Graph to retrieval to generation. This module walks the first three and then keeps going, into the two strata a teaching module needs: a case somebody can stand in, and a recipe somebody can run.

01 · ONTOLOGY

A typed vocabulary

35 species, each carrying one ecological group from its forest traits and one building group from its timber traits. Seven of each, named by the paper.

data/building_groups.csv
data/ecological_groups.csv
02 · KNOWLEDGE GRAPH

The coupling, derived

Both tables name species, so the seven-by-seven coupling is their join. Nobody has to invent a cell. 17 of 49 hold species and 32 are empty.

scripts/build_coupling.py
data/coupling_7x7.csv
03 · PRINCIPLE

Push and pull

Builders shape forests through what they specify. The coupling is nearly block-diagonal, so a conifer specification can only ever reach two of seven building groups.

the sparsity of the matrix
is the argument
04 · CASE STUDY

A territory, at 100 m

The graph laid over a real landscape in southeastern Quebec. Every cell answers: which building groups could this hectare supply.

scripts/supply_map.py
qgis/derived/bg_supply_breadth.tif
05 · RECIPES

Things you can run

Five, each with named inputs, a stated output and a written limit. The fourth is the one most likely to end in a thesis, because its output is a named gap.

RECIPES.md
GRASSHOPPER-BOQ.md

Nothing in this pipeline is asserted where it could be derived. The coupling comes out of a script that joins two published tables in front of you. The map comes out of a script that chains the published raster to the published community list to that coupling. Every number on this page can be regenerated from the two DOIs at the foot, and if a number here disagrees with your run, trust your run and tell us.

Stratum 02

The seven-by-seven, and the 32 empty cells

Ecological groups down the side, building groups across the top. Each figure is a count of species. Produced by scripts/build_coupling.py.

BG1BG2BG3BG4BG5BG6BG7tot
CON-Bor44·····8
CON-Pin·3·····3
NHW-Es··21··25
NHW-Ms···212·5
NDC-Es··1·2··3
CHW-Ms···22·15
CHW-Dt···1·416
total473656435

Read the top-left corner first. The two conifer groups reach BG1 and BG2 and stop. Every other cell on those two rows is empty. So a specification made of spruce, fir and pine, which is almost every mass timber building, can only ever pull on two of the seven ecological groups no matter how much of it you buy.

Then read the bottom-right. The hardwood groups spread across BG3 to BG7 and never touch BG1 or BG2. The matrix is close to block diagonal, and that shape is the push and pull the paper is about: the forest traits that make a species ecologically useful and the timber traits that make it structurally useful are largely different traits.

The 32 empty cells are a finding. A cell is empty because no species in this landscape carries that pair of trait profiles. Filling one would mean finding or breeding a tree that does two jobs the region's trees currently divide between them.

Stratum 04

What the territory can actually supply

The published landscape is 1,361 by 1,212 cells at 100 m, in EPSG:32188, covering 136 by 121 km of southeastern Quebec. Each cell carries a map code, each map code lists its species, each species carries a building group. Chain those and every hectare answers a builder's question.

Building groups the cell could supplyCellsShare of landscape
None, or no matched species1,312,44179.6%
121,8691.3%
256,5463.4%
3119,5767.2%
499,9746.1%
536,0892.2%
62,7000.2%
7, every group3370.02%
Produced by scripts/supply_map.py from initial_communities.tif and initial-communities.txt in the Zenodo deposit, joined to the coupling above. 2,016 map codes, 19 species codes in the landscape, all 19 matched to a published group. This is the landscape as recorded at the start of the simulation in 2010: it is not a yield, not a projection and not a harvest plan.

The 79.6% is not an error. The paper calls this a fragmented rural landscape, and that fragmentation is what it looks like counted: water, settlement, roads and cropland are four fifths of the territory. The forest is the other fifth, and inside that fifth the broad-supply cells are scarce.

337 cells is the number worth carrying out of this module. A designer can write a specification reaching all seven building groups in an afternoon. The territory that could supply it is 337 hectares, and they are not necessarily for sale, in one place, or reachable by road. The drawing and the ground are answering different questions, and the pipeline exists to put the two questions on one page.

Stratum 05

Run the whole thing

Four commands rebuild every figure on this page from the two DOIs.

cd scripts
python fetch_landis_data.py     # from Zenodo, and read the notice it prints
python build_coupling.py        # the seven-by-seven, derived
python supply_map.py            # the territory, at 100 m
python boq_to_forest.py ../data/example_boq.csv

Then open QGIS, Plugins > Python Console > Show Editor, and run qgis/make_project.py. Six layers, with the derived one on top and its five inputs underneath so it can always be checked against what it came from.

The five recipes in RECIPES.md take it from there, and GRASSHOPPER-BOQ.md puts the bill of quantities on the Grasshopper canvas so the demand updates as the design changes.

A courtesy that is part of the method. The Zenodo deposit asks that anyone using the data for a research study or project contacts Peter Osborne. The data is fetched from the record and never copied into this repository, so every student passes the request on the way through. Citing a paper is not the same as asking its authors.

And the framework does not travel yet. The trait data is 75 eastern North American species and the study landscape 35. There is no Quercus ilex, no Pinus pinea, no Castanea sativa, and no Picea sitchensis, which is most of the Irish estate. Recipe 4 is the exercise of writing down precisely what applying this in Ireland or in Lazio would require. Its output is a named gap, and a gap named precisely is worth more than a framework applied where its data does not reach.

Sources

Osborne, P., Aquilué, N., Mina, M., Moe, K., Jemtrud, M., and Messier, C. (2023). A trait-based approach to both forestry and timber building can synchronize forest harvest and resilience. PNAS Nexus, 2(8), pgad254. https://doi.org/10.1093/pnasnexus/pgad254 Verified at Crossref on 30 August 2026: six authors, PNAS Nexus 2(8), issue August 2023, open access. Tables 1 and 2 were read from the full text.

Osborne, P. et al. (2023). Supporting data. Zenodo. https://doi.org/10.5281/zenodo.8184010 Record resolved 30 August 2026.

Scheller, R. M. et al. (2007). Design, development, and application of LANDIS-II. Ecological Modelling, 201(3-4), 409-419. https://doi.org/10.1016/j.ecolmodel.2006.10.009 The model is open source at github.com/LANDIS-II-Foundation.

Moe, K. (2013). Convergence: An Architectural Agenda for Energy. Routledge. https://doi.org/10.4324/9780203489444 For the coordinate frames the two halves of this module sit in.

What this pipeline does not do

It does not predict. It describes a landscape as recorded in 2010 and a specification as drawn. It computes no carbon, prices nothing, and runs no simulation: the 190-year LANDIS-II runs belong to the paper and are not reproduced here.

Where it lives

AT6012 Design Research: Technology Transformations, Cork Centre for Architectural Education, University College Cork. Back to the module · The climate half · infrared.city · The MOOC school. Written 30 August 2026.