3D knowledge graph of fusion materials irradiation data — built from FusionMatDB.
134 nodes · 1,094 edges · 34,701 measurement records across materials, properties, irradiation conditions, facilities and ORNL reports.
A complementary, open-source extension of the UKAEA fusion knowledge graph — adding experimental measurement nodes.
Quick Start · Schema · White-Space Analysis · FusionMatDB · FusionGuide · FusionUQ · HuggingFace
Rotating 3D view of FusionGraph — material classes (red), properties (blue), irradiation conditions (yellow), facilities (green), ORNL reports (purple). Edge weight = record count in FusionMatDB.
Fusion materials R&D is scattered across decades of experimental reports. Two recent UKAEA + DeepMind efforts laid the foundation:
- Loreti et al. (UKAEA, arXiv 2504.07738, April 2025) — extracted 108K nodes from the fusion literature corpus to build a scientific knowledge graph.
- MatDB4Fusion / EUROfusion EDDI — canonical material property tables, but unirradiated baselines only or behind EU consortium access.
FusionGraph adds the missing piece: experimental measurement nodes. It reads FusionMatDB's SQLite (22,269 structured records from 65 ORNL semi-annual progress reports 1990–2024 + SDC-IC ITER library), canonicalises messy reactor names (e.g. FFTF/MOTA 2B → FFTF), bins (dose, temperature) into a 3×3 condition space, and assembles a 5-node-type, 4-edge-type knowledge graph ready for reasoning, visualisation, and white-space analysis.
"An open-access, single source of truth for high-quality fusion materials data... is essential for this new phase of technology development." — Jim Pickles, Head of Materials, Tokamak Energy (COP29, November 2024)
git clone https://github.com/Khalizo/fusiongraph
cd fusiongraph
pip install -e .
# Summary of the graph built from FusionMatDB
fusiongraph stats --db /path/to/fusionmatdb.sqlite
# Render the rotating hero GIF (+ static hero PNG) into figures/
fusiongraph gif --output figures/ --frames 60 --fps 20
# Interactive HTML export — open in a browser, drag to rotate
fusiongraph render --html figures/fusiongraph.html
# Cache the graph as GraphML (loads into Gephi / Cytoscape / networkx)
fusiongraph build --output cache/fusiongraph.graphml
# White-space report — which (material class × condition bin) cells are unexplored?
fusiongraph gaps --csv data/white_space.csvfrom fusiongraph import FusionGraphBuilder, find_white_space, graph_stats
G = FusionGraphBuilder.from_sqlite("fusionmatdb.sqlite").build()
print(graph_stats(G))
gaps = find_white_space(G) # pandas DataFrame of empty research cellsFive canonical node types and four directed edge types. Measurement rows are aggregated into weighted edges rather than duplicated as per-row nodes — this keeps the graph small enough to render and reason about while preserving the "who was tested where, under what conditions" story.
| Node type | What it represents | Example |
|---|---|---|
material |
19+ material classes from FusionMatDB | RAFM_steel, vanadium_alloy, tungsten, CuCrZr |
property |
Measured mechanical / physical quantity | yield_strength, uts, swelling, hardness, DBTT |
condition |
3 × 3 bin of (dose_dpa × irradiation_temp) | mid_dose / mid_T |
facility |
Canonicalised irradiation facility | HFIR, FFTF, ATR, EBR-II, ion_beam, RTNS-II |
report |
Source document (ORNL volume or SDC-IC) | ornl_vol_42, sdc_ic |
| Edge type | Direction | Weight |
|---|---|---|
exhibits |
Material → Property | # rows with that property populated |
tested_at |
Material → Facility | # irradiation records at that facility |
measured_under |
Material → Condition | # records in that (dose × T) bin |
documented_in |
Material → Report | # material entries in that report |
FusionGraph: 134 nodes · 1,094 edges · total edge weight 34,701
Nodes by type: Edges by type:
material 21 exhibits 146
property 12 tested_at 187
condition 9 measured_under 136
facility 26 documented_in 625
report 66
fusiongraph gaps enumerates every (material_class × dose_bin × temp_bin) cell and flags those with zero records in FusionMatDB — these are publicly-documented experimental gaps. Current FusionMatDB corpus: 53 of 189 cells empty. Examples:
| Material class | Missing (dose × temp) cells |
|---|---|
| HTS_tape | all 9 irradiation cells — no irradiated HTS data in ORNL corpus |
| zirconium_alloy | 8 of 9 cells empty |
| titanium_alloy | 4 cells (notably all 3 high-dose) |
| nanolaminate | 5 cells — a materials-by-design gap |
| beryllium | high-temperature cells entirely |
| tungsten_alloy | high-dose / mid-T |
These cells feed directly into FusionGuide's Bayesian active-learning campaign planner.
FusionMatDB SQLite (22,269 records)
│
▼
┌─────────────────────────────────────────┐
│ FusionGraphBuilder.from_sqlite() │
│ materials, irradiation, mech, papers │
└────────────────┬────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Canonicalisation │
│ • reactor name → {HFIR, FFTF, ATR, ion} │
│ • dose_dpa → {low, mid, high} │
│ • irr_temp → {low_T, mid_T, high_T} │
│ • source_url → ornl_vol_N | sdc_ic │
└────────────────┬────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ networkx.MultiDiGraph │
│ 5 node types, 4 edge types, weighted │
└────────────────┬────────────────────────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
3D plotly GraphML White-space
+ GIF (Gephi) DataFrame
| ⚛️ FusionMatDB | 22,269-record irradiation materials database — the source of truth |
| 🧭 FusionGuide | Bayesian active learning for experiment planning — consumes FusionGraph gaps |
| 🔬 FusionUQ | Uncertainty quantification for MACE-MP-0 ML interatomic potentials |
| 🕸️ FusionGraph | This repo — knowledge-graph view over FusionMatDB |
| 📊 Dataset on HuggingFace | Parquet + SQLite (DOI 10.57967/hf/8386) |
pip install -e ".[dev]"
pytest # 28 tests, < 2 sTest coverage spans schema validation, builder correctness on a synthetic SQLite fixture, canonicalisation helpers (_canonicalise_facility, _bin_dose, _bin_temp, _report_label), white-space analysis, and CLI smoke tests (stats, build, gaps, render).
@software{fusiongraph_2026,
author = {Babs Khalidson},
title = {FusionGraph: 3D knowledge graph of fusion materials irradiation data},
year = {2026},
url = {https://github.com/Khalizo/fusiongraph}
}MIT. Copyright (c) 2026 Babs Khalidson.
