Version: dev

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 .esm library files.
  • Units — the unit-string grammar and registry.
  • RFCs & design notes — design proposals and the reasoning behind them.