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:
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.
| 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.
Every case-study script takes the same two positional arguments and the same three flags:
uv run examples/scripts/case_study_porosity/run.py <pdf_dir> <output_dir> [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.
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.