Case Studies
A case study is LeMat-Synth pointed at one scientific domain: the same pipeline, with domain-specific choices about which materials to look for, which plots are worth reading, and how results are written out.
Three are shipped with the repository. Each is a thin script — a few dozen lines — on top of two reusable pieces:
flowchart LR
DC["DomainConfig<br/>(what this domain cares about)"] --> BR["BatchRunner<br/>(PDF discovery, retries, output)"]
BR --> PIPE["SynthesisPerformancePipeline<br/>(the standard stages)"]
BatchRunner handles everything domain-independent — PDF and supplementary-file
discovery, rate-limit-aware retries, resumable runs, progress reporting.
DomainConfig supplies the four things that differ between domains. You never
edit the runner; you assemble a config.
The three built-in domains
| Domain | What it extracts | Script | Guide |
|---|---|---|---|
| Thermocatalysis | Synthesis + NH₃-decomposition conversion curves, benchmarked against human ground truth across several VLMs | case_study_thermocatalysis/ |
Thermocatalysis |
| Superconductors | Synthesis + critical temperature Tc, read both from text and geometrically from ρ(T)/R(T) plots | case_study_superconductors/ |
Superconductors |
| Porous materials | Synthesis + adsorption isotherms for MOFs, zeolites and COFs | case_study_porosity/ |
Porous materials |
Building a fourth one — electrochemistry, battery cycling, thermoelectrics, anything with a plot and a recipe — is covered in Building your own case study, and built end to end in Tutorial 7.
Running a built-in domain
Every case-study script takes the same two positional arguments and the same three flags:
| Flag | Effect |
|---|---|
--max N |
Process only the first N papers — always do this first |
--skip-existing |
Skip papers that already have results, so an interrupted run resumes |
--skip-figures |
Text and synthesis only: no figure detection, no VLM, much faster and cheaper |
Thermocatalysis is the exception — it adds a caching and evaluation harness on top, documented on its own page.
Important
The data/ directory is git-ignored, so no PDFs or ground-truth files ship
with the repository. Every case study needs you to supply your own corpus.
Tutorial 2 shows how to assemble one from the
LeMat-Synth-Papers dataset.
Choosing a starting point
Use the built-in DomainConfig factory and point the script at your PDFs:
Start from that factory, then override the one piece that differs — usually the plot filter or the material prompt.
Work through Tutorial 7, which builds a thermoelectrics domain from an empty file and tests each piece as it goes, then keep Building your own case study open as the API reference.
Skip case studies altogether — lemat-synth batch over a folder of PDFs is
enough. See the CLI Reference.