Playground

Learn a paper

Drop a PDF. A language model proposes each value the paper reports as a map entry, with a verbatim quote and its page; you accept or reject each one. No account, no API key.

Your paper: the browser extracts its text and sends the first 120,000 characters to a relay the OpenMaterials maintainers run on Cloudflare. The relay passes the text to Anthropic's API (Claude Opus 4.8) and returns the reply. It saves no paper text. It keeps a request count per IP address and the day's total spend, each for two days, and Cloudflare logs each request. Limits: five papers per address a day, and a daily budget shared by all visitors. Relay source.

Drop one or more PDFs here
Or choose files from your computer.

Already have a proposal?

A proposal lists the map nodes a paper reports. The page draws the map edges that produce them, here and on the canvas.

For developers
The mapping, in code

        

Resolve a method

Type a method or quantity as a paper names it. The matching quantities and operators on the map appear, best match first. It runs in your browser, with no model call.

A sub-map from JSON

A sub-map is a list of edges and the map version they came from. Paste the JSON to render it. Share copies a link that carries the edges in its URL fragment, so no server stores them. Node symbols and formulas load from the live map by id.

Copy as Mermaid gives a flowchart that GitHub renders in Markdown files, issues, and pull requests.

How far apart are two structures?

A content hash tells you whether two configurations are identical. The distance layer measures how far apart they are, with named, versioned metrics and one default.

Each metric on a set of silicon structures

Distance between two sources

Pick two sources. Values they share (same quantity, material, and units) are compared with curve@1, the symmetric relative L2 distance over the shared temperature range; their materials with comp@1, the Element Mover's Distance on the Pettifor scale.

How far apart are two materials?

Type two formulas for their comp@1, the Element Mover's Distance on the Pettifor scale. Zero means the same composition in any structure: diamond and graphite are both C.

vs.

Try: NaCl vs. KCl · diamond vs. graphite · Si vs. Ge · GaAs vs. GaP · SiO2 vs. GeO2 · Fe vs. Au · Si vs. C3H8O (isopropanol)

A lineage as a link

A lineage record names a result and the inputs and settings that produced it. Share puts the whole record in the URL, and the link reopens it here.

How this works

A lineage record is small. Its identity is its lineage: the output node on the map, or, when the map has no node for it, a template with its hyperparameters and setup values. Heavy artifacts stay with their host, such as MaterialsCodeGraph, and the record points to them. Paste a record or drop a .json file, including a record served by MaterialsCodeGraph, to open its data view: every field of the lineage, its source, where the data lives, and a link to run it on MaterialsCodeGraph. Share writes the whole record into the #x= fragment of the URL, so nothing is uploaded or stored. A link can also carry a set of lineages from one paper, with the publication metadata stated once; it opens as a list with each lineage's datasheet below.

Drop a .json record here, or click to choose a file.
Parse a paper, or draw a proposal below the dropzone, and the paper's sub-map appears here.