SysML v2 · KerML 1.1 · written in Go
OpenSysML materializes the instances a model describes, evaluates their features with units carried and checked, performs actions and advances state machines on a clock, and decides requirements and analysis objectives against what it finds — so it reports what a validator or expression evaluator cannot reach: the rollup with an unvalued leaf, the result in the wrong dimension, the action with no step to start at. It also parses, validates, serves an editor over LSP, generates documents and exports RDF, with Go, Python, Node, Java, Rust, Julia and MATLAB clients for the same runtime.
Refereed against the OMG pilot implementation
OpenSysML is run beside a pinned build of the OMG pilot implementation over the same models, and the two are compared wherever they can be: the diagnostics each reports, the diagnostics the reference's own test suites declare, how names resolve, and whether an invalid model is turned away. Each comparison has a committed baseline that anyone can reproduce, and the results are kept in the records rather than restated here.
What this is not: the comparison is of what two implementations report on the same files, not an official conformance suite, and no certification or percentage of the specification is claimed. The reference evaluates expressions but executes neither actions nor state machines, so behavior is beyond what it can referee. Read how each comparison is measured and what it currently reports, or which rules are faithful, approximate or missing.
Measured on the public Apollo 11 SysML v2 model (Airbus, MPL-2.0); the commands to repeat it are on the performance page.
Speed is the smaller point. The pinned OMG pilot validator passes all 28 files without a
finding and OpenSysML's own validation reports 2 warnings and no error; asked to
run the model, the runtime stops its delta-v, reliability and injection
calculations and the instantiation of the mission itself at defects only execution
reaches — an e that resolves to a valueless ISO 80000 quantity, a
gravitational parameter typed as a force, three mission phases with no succession between
them. Each is reproduced in
the showcase's Apollo 11 section.
A hand-written parser for the full surface syntax, name resolution, and validation split into tiers so a model is checked as strictly as you ask.
sysml-lsp speaks the Language Server Protocol — completion,
diagnostics, hovers, navigation and diagrams in VS Code or any LSP client.
An interactive session that keeps your model: instantiate parts, inspect feature values, and step through behavior at a breakpoint — in a terminal, a Jupyter notebook, or this browser.
Actions, state machines, calculations, analyses and requirements really run, on materialized objects with units, with a step budget so a model can never spin forever — and a well-formed model that cannot run is reported with the reason.
Views and viewpoints in the model become Markdown, HTML and PDF reports whose tables, figures and figures of merit are queried from the model as it runs.
Round-trip models through RDF/Turtle and query them with OSLC query text, so a model is data other tools can read.
Go, Python, Node/TypeScript, Java, Rust, Julia and MATLAB clients drive the same
execution runtime — in process, or over the sysml-grpc service.
Choosing a client · Go · Python · Node · Java · Rust · Julia · MATLAB
# Linux and macOS
curl -fsSL https://opensysml.org/install.sh | sh
# Windows
irm https://opensysml.org/install.ps1 | iex
# macOS, with Homebrew
brew install Open-MBEE/tap/opensysml
# with a Go toolchain
go install github.com/Open-MBEE/OpenSysML/cmd/sysml@latest
Every release's archives, checksums and signatures are on the downloads page; the install page covers every route, verification, and macOS Gatekeeper.
To try what landed today rather than at the last release, the
nightly snapshot builds
develop every night as a prerelease.
Every construct is recorded as faithful, approximate or not implemented. No conformance certification is claimed.
Where the published reference material is itself defective, the correction is declared and the corpus left as published.
The roadmap lists what is missing, in the order it should be picked up.
OpenSysML is the runtime of the OpenSysML REDK (Runtime Environment and Development Kit), beside a Rust toolchain, the OMG reference implementation and a version-controlled model store.