← All problems

Problem

Generating novel, thermodynamically stable inorganic crystals

Generative models are now routinely asked to invent inorganic crystal structures that satisfy a property target, but a proposal is only useful if it is simultaneously thermodynamically stable (energy above the DFT convex hull at or near 0 eV/atom, commonly scored with a 0.0 or 0.1 eV/atom threshold), not already in known databases, and actually synthesisable. The commercial stake is that battery cathodes, magnets, semiconductors and sorbent materials are all bottlenecked on candidate generation plus cheap screening, and every false positive costs a DFT relaxation or a furnace run. The state of the art shows the gap: DeepMind's GNoME proposed 2.2M crystals of which 380k were predicted stable, and only 736 had been experimentally realised by external labs at publication; Microsoft's MatterGen synthesised one target compound, TaCr2O6, whose measured bulk modulus was 169 GPa against a 200 GPa design specification. On the screening side, Matbench Discovery's leading model (Prophet-OAME-MBD, added 13 Sep 2026) reaches a discovery F1 of 0.928 with a discovery acceleration factor of 6.07 and 0.018 eV/atom MAE. SOLVED would mean a generator with a high stable-unique-novel rate that does not collapse in novelty or diversity as stability rises, whose hits survive DFT relaxation and are then confirmed by synthesis at a materially better hit rate than today's ~hundreds-out-of-hundreds-of-thousands.

Funding

$1.08B

Raised by the 5 companies working on it.

Prize money for solving it$0
Open competition pools$0

Why it is still open

LeMat-GenBench (Dec 2025) evaluated 12 recent crystal generative models on a unified metric set and found that increases in stability come at the cost of novelty and diversity on average, with no model excelling across all dimensions - i.e. as of Sep 2026 the field has no generator that is simultaneously stable, novel, diverse and synthesisable.

Source: arxiv.org

Who is working on it

CuspAI$650M Building an 'AI Materials Foundry': generative search over materials space plus fast interatomic potentials (kUPS, shipped openly as a JAX export) to propose and screen candidate structures on demand. InvestorsKleiner Perkins, New Enterprise Associates (NEA), Temasek, Bezos Expeditions, Lux Capital, AMD Ventures, NVIDIA (NVentures), Northzone
Periodic Labs$300M Pairs LLM-driven experiment planning with autonomous synthesis labs to close the generate-then-make loop for new inorganic solids, starting with superconductors. InvestorsAndreessen Horowitz, DST Global, NVIDIA (NVentures), Accel, Jeff Bezos, Eric Schmidt, Elad Gil, Jeff Dean
Radical AI$55M Vertically integrated materials discovery: generative and atomistic predictive models feeding automated labs to propose and validate new compositions. InvestorsRTX Ventures, AlleyCorp, Eni Next, NVIDIA (NVentures)
Entalpic$9.4M Co-runs the LeMaterial project with Hugging Face - it built LeMat-Bulk and LeMat-GenBench, the benchmark that defines what 'stable, novel, diverse' means for crystal generators - while commercialising generative models for industrial chemistry. InvestorsBreega, Cathay Innovation, Felicis, Yoshua Bengio
Orbital (formerly Orbital Materials)$66M Trained the LINUS/Mofasa generative models and released MofasaDB - 200k+ de novo MOF structures with relaxed counterparts - though the company has since refocused commercially on data-centre cooling hardware. InvestorsPlural, NVIDIA (NVentures), Radical Ventures, Compound VC, Toyota Ventures, Fly Ventures

Also active

Microsoft (MatterGen / Microsoft Research AI for Science) Released MatterGen, a property-conditioned diffusion generator trained on 608k stable structures, open-sourced under MIT, and experimentally validated one generated compound (TaCr2O6).
Google DeepMind (GNoME) GNoME screened and predicted 2.2M new crystals (380k judged stable) and contributed the stable set to the Materials Project, creating the current reference corpus of machine-predicted stable structures.
Hugging Face Co-runs LeMaterial with Entalpic and hosts LeMat-Bulk and the LeMat-GenBench leaderboard - the public scoreboard for crystal generators.

Funding for these is not counted: the problem is a small part of what they do, or they contribute data and tools.

Prizes

No prize money is attached to this problem.

What counts as solved

The acceptance condition, stated in Lean 4. Measurements a computer cannot produce on its own are named inputs, supplied by whoever attests them.

import Mathlib.Data.Real.Basic
import Mathlib.Algebra.Order.BigOperators.Group.Finset
import Mathlib.Data.Finset.Card
import Mathlib.Tactic.Linarith
import Mathlib.Tactic.NormNum

/-!
# Generating novel, thermodynamically stable inorganic crystals

Concrete here: **energy above the convex hull**. For a chemical system with `n`
elements, a phase diagram is a finite set of reference entries, each a
composition (atom fractions over the `n` elements) with a formation energy per
atom. The hull energy at a composition is the minimum energy attainable by any
convex mixture of reference entries having that composition, so
"energy above hull ≤ ε" is exactly: *every* composition-matching mixture has
energy at least `candidate.energy - ε`. That is the lower convex envelope,
written as a universally quantified inequality — no oracle is needed for it.

Opaque oracle (`Verification`): the formation energies themselves (DFT
relaxation at a fixed, declared functional and convergence settings), whether a
generated structure is *novel* against a declared snapshot of known materials,
and whether two generated structures are duplicates under a declared structure
matcher. Also oracle: that the generator's weights were frozen before the
reference snapshot was fixed.

Who must attest: the benchmark host (e.g. a Matbench-Discovery- or
LeMat-GenBench-style evaluator) publishing the reference snapshot hash, the DFT
settings, the matcher tolerances, and the relaxed energies for every submitted
structure.

Units: energies in eV per atom; compositions are dimensionless atom fractions
summing to 1. The conventional stability window is 0.03 eV/atom above hull;
0 eV/atom means on the hull.

Checked with Lean 4.33.0 / Mathlib using:
  lake env lean <absolute-path-to-this-file>
-/

namespace OpenSpur.Problems.StableCrystalGeneration

/-- Atom fractions over `n` elements. -/
abbrev Comp (n : ℕ) := Fin n → ℝ

/-- A composition with its formation energy per atom (eV/atom). -/
structure Entry (n : ℕ) where
  comp : Comp n
  energy : ℝ

/-- The competing-phase set of a chemical system, indexed by `Fin size`. -/
structure PhaseDiagram (n : ℕ) where
  size : ℕ
  entry : Fin size → Entry n

/-- `w` is a convex mixture of reference phases with the same composition as `c`. -/
def IsMixtureOf {n : ℕ} (D : PhaseDiagram n) (c : Entry n)
    (w : Fin D.size → ℝ) : Prop :=
  (∀ i, 0 ≤ w i) ∧
  (∑ i, w i) = 1 ∧
  (∀ j, (∑ i, w i * (D.entry i).comp j) = c.comp j)

/-- Energy per atom of a mixture (eV/atom). -/
def mixtureEnergy {n : ℕ} (D : PhaseDiagram n) (w : Fin D.size → ℝ) : ℝ :=
  ∑ i, w i * (D.entry i).energy

/-- Concrete: the candidate lies at most `ε` eV/atom above the lower convex
envelope of the reference phases. -/
def AboveHullAtMost {n : ℕ} (D : PhaseDiagram n) (c : Entry n) (ε : ℝ) : Prop :=
  ∀ w, IsMixtureOf D c w → c.energy - ε ≤ mixtureEnergy D w

/-- Per-structure facts only measurement or a matcher can supply. -/
structure Verification (n : ℕ) where
  /-- DFT-relaxed entry (composition + energy per atom) used for the hull test. -/
  relaxed : Entry n
  /-- Absent from the declared snapshot of known materials. -/
  novel : Prop
  /-- Not a duplicate of any earlier accepted submission under the matcher. -/
  unique : Prop

/-- Stability window and yield demanded of a submission. -/
structure Thresholds where
  /-- Hull window in eV/atom, e.g. 0.03. -/
  hullWindow : ℝ
  /-- Minimum count of stable-unique-novel structures required. -/
  minSUN : ℕ

/-- The conventional stability window, eV/atom. -/
def defaultHullWindow : ℝ := 0.03

/-- One submitted structure clears the bar. -/
def SUN {n : ℕ} (D : PhaseDiagram n) (T : Thresholds) (v : Verification n) : Prop :=
  v.novel ∧ v.unique ∧ AboveHullAtMost D v.relaxed T.hullWindow

/-- A submission: finitely many structures, each with its verification record,
plus the attestation that generation preceded the reference snapshot. -/
structure Submission (n : ℕ) where
  count : ℕ
  verification : Fin count → Verification n
  frozenBeforeSnapshot : Prop

/-- Acceptance: at least `minSUN` submitted structures are stable, unique and
novel. `accepted` names them; the predicate forces each one to clear the bar. -/
def Solved {n : ℕ} (D : PhaseDiagram n) (T : Thresholds) (S : Submission n)
    (accepted : Finset (Fin S.count)) : Prop :=
  S.frozenBeforeSnapshot ∧
  T.minSUN ≤ accepted.card ∧
  ∀ i ∈ accepted, SUN D T (S.verification i)

/-- Rung `k` keeps the 0.03 eV/atom window and demands `100 * (k+1)` SUN hits. -/
def Rung (k : ℕ) : Thresholds where
  hullWindow := defaultHullWindow
  minSUN := 100 * (k + 1)

/-- Widening the hull window can only preserve the hull test. -/
theorem aboveHull_mono {n : ℕ} (D : PhaseDiagram n) (c : Entry n) {ε₁ ε₂ : ℝ}
    (h : ε₁ ≤ ε₂) : AboveHullAtMost D c ε₁ → AboveHullAtMost D c ε₂ := by
  intro hc w hw
  have := hc w hw
  linarith

/-- Solving a higher rung implies solving every lower rung. -/
theorem solved_rung_mono {n : ℕ} (D : PhaseDiagram n) {j k : ℕ} (h : j ≤ k)
    (S : Submission n) (accepted : Finset (Fin S.count)) :
    Solved D (Rung k) S accepted → Solved D (Rung j) S accepted := by
  intro hs
  obtain ⟨hfrozen, hcard, hsun⟩ := hs
  refine ⟨hfrozen, ?_, hsun⟩
  have : 100 * (j + 1) ≤ 100 * (k + 1) := by
    have : j + 1 ≤ k + 1 := Nat.succ_le_succ h
    exact Nat.mul_le_mul_left 100 this
  exact le_trans this hcard

end OpenSpur.Problems.StableCrystalGeneration

Public resources

Join

Tell us what you want settled.

Two questions. We read every one.

I am a

What are you looking to solve?

Where should we reply?

Received

That is with us.

We read every message and reply to the ones we can help.