← analyzer · receipts index

Pre-registered lattice predictions vs. 81 printed specimens

Run 2026-08-10 · calibration study (not blind — the forms were pre-registered in code before this comparison; the data is published literature) · files here: the digitized measurement clouds (JSON), the analysis script, the comparison figure.

The data

The largest public measured lattice dataset we found: 81 printed IN718 sheet-TPMS compression specimens — {Diamond, I-WP, Primitive} × cell {4, 6, 8 mm} × {3, 4, 6} cells × wall {200, 400, 600 µm} — with measured elastic modulus, yield, plateau stress, and relative density per design. Source: Materials 14(14):3962 (2021), CC-BY-4.0. The paper publishes no raw table, so the property-vs-density clouds were digitized from its figures (stated uncertainty ±1 density point, ±5–10% on values — digitized_points.json, reproducible via compare_ga.py).

The pre-registered claims

Our lattice generator writes its stiffness/strength predictions down before anything is printed, using deliberately uncalibrated handbook Gibson–Ashby forms — they exist to be wrong in a measurable direction:

What 81 specimens said

Claim Measured (fitted) Verdict
Modulus exponent 1.2 1.22 / 1.27 / 1.22 per family Confirmed — the scaling form holds across all three TPMS types
Modulus constant ~6.5–7× lower than predicted Wrong, with a caveat: the source tests lack a machine-compliance correction, which systematically deflates absolute lattice moduli — so the correction is a bound, not a truth. The exponent survives that artifact; the constant awaits better data
Plateau exponent 1.5 ~1.9–2.1 Too shallow — real plateaus climb faster with density
Plateau constant measured 2–3× higher than predicted Conservative in the safe direction
One sheet-TPMS curve fits all Families separate measurably (Diamond stiffest per density; I-WP strongest at high density) Per-family constants beat a single curve

Figure: figure — measured clouds per family, the pre-registered curves, and the fitted power laws, all three properties.

What we did with this — and deliberately did not

The calibrated constants are documented (here and in our working notes) as calibration candidates. They were not silently swapped into the generator: pre-registration only means something if the numbers don't move quietly after contact with data. Adopting them is a deliberate, recorded change — and laboratory compression tests with proper compliance correction are the data that would justify it.

One alloy, one machine, as-built condition: these constants are IN718 / Concept Laser M2 specific. Transfer to other alloys is an assumption and is labeled as one wherever our reports use these forms.

Audit this receipt on GitHub → raw reports, data files, commit history