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.
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.
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.
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.
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 graph laid over a real landscape in southeastern Quebec. Every cell answers: which building groups could this hectare supply.
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.
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.
Ecological groups down the side, building groups across the top. Each
figure is a count of species. Produced by
scripts/build_coupling.py.
| BG1 | BG2 | BG3 | BG4 | BG5 | BG6 | BG7 | tot | |
|---|---|---|---|---|---|---|---|---|
| CON-Bor | 4 | 4 | · | · | · | · | · | 8 |
| CON-Pin | · | 3 | · | · | · | · | · | 3 |
| NHW-Es | · | · | 2 | 1 | · | · | 2 | 5 |
| NHW-Ms | · | · | · | 2 | 1 | 2 | · | 5 |
| NDC-Es | · | · | 1 | · | 2 | · | · | 3 |
| CHW-Ms | · | · | · | 2 | 2 | · | 1 | 5 |
| CHW-Dt | · | · | · | 1 | · | 4 | 1 | 6 |
| total | 4 | 7 | 3 | 6 | 5 | 6 | 4 | 35 |
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.
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 supply | Cells | Share of landscape |
|---|---|---|
| None, or no matched species | 1,312,441 | 79.6% |
| 1 | 21,869 | 1.3% |
| 2 | 56,546 | 3.4% |
| 3 | 119,576 | 7.2% |
| 4 | 99,974 | 6.1% |
| 5 | 36,089 | 2.2% |
| 6 | 2,700 | 0.2% |
| 7, every group | 337 | 0.02% |
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.
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.
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.
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.
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.