EarthSciAST
Language-agnostic JSON-based format for earth science model components.
EarthSciML Abstract Syntax Tree Format — a language-agnostic JSON-based format for earth science model components, their composition, and runtime configuration.
Every model is fully self-describing: all equations, variables, parameters, species, and reactions live in the document itself, so a conforming parser in any language can reconstruct the complete mathematical system without executing author-supplied code.
Reference implementations exist in Julia, TypeScript, Python, Rust, and Go.
All share esm-schema.json and a common conformance suite.
Documentation
File structure
— what goes in an .esm document, section
by section, with examples.
Operators — the expression vocabulary: what each operator does, what arguments it takes, what it returns, and worked examples.
Coupling — how components are composed: variable maps, additive and multiplicative coupling, operator apply and compose, and events.
Expression templates
— match rewrite rules, how imports and
metaparameters work, and how spatial discretization is expressed.
Getting started — load, validate, inspect, edit, flatten and simulate a document, side by side in every binding.
API reference — every stable operation of the Julia, TypeScript, Python, Rust and Go bindings, with each binding’s signatures, documentation and runnable examples on one page.
Narrative models — pages that define a model in their own prose, then validate, test and plot it as they are built.
Reference
esm-spec.md— the authoritative, normative specification. Everything here is a guide to it.esm-schema.json— the machine-readable schema; single source of truth for field names and types.- Standard library
— the shipped
.esmlibrary files. - Units — the unit-string grammar and registry.
- RFCs & design notes — design proposals and the reasoning behind them.