Skip to content

SysML v2 · KerML 1.1 · written in Go

Author, check and run systems models from one toolchain.

OpenSysML parses and validates SysML v2 and KerML 1.1, serves an editor over the Language Server Protocol, executes actions, state machines and constraints, and exports models as RDF — with a Python client for the same runtime.

Apache-2.0 · Linux, macOS and Windows binaries

sysml> part def Wheel { attribute diameter = 16.0; }
✓ part def Wheel

sysml> %instantiate Wheel
✓ Created instance of Wheel
  ID: 1

sysml> calc add { in x; in y; x + y }
✓ calc add

sysml> %calc add 10 20
✓ add(10, 20)
  = 30

Refereed against the OMG pilot implementation

Not self-assessed — measured against the reference 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.

What it does

Install

# macOS
brew install Open-MBEE/tap/opensysml

# with a Go toolchain
go install github.com/Open-MBEE/OpenSysML/cmd/sysml@latest

Linux and Windows archives are on the releases page; the install page covers every route, checksums, and macOS Gatekeeper.

Compliance, stated plainly

Every construct is recorded as faithful, approximate or not implemented. No conformance certification is claimed.

Defects, declared

Where the published reference material is itself defective, the correction is declared and the corpus left as published.

Known gaps

The roadmap lists what is missing, in the order it should be picked up.

OpenSysML documentation

Using OpenSysML

The guide — a handbook, presented in reading order: install, your first model, the command line, the REPL, checks, behavior, saving and RDF, editors, from your own program, troubleshooting.

Runnable models are provided in examples/, together with a catalog describing what each one demonstrates.

Document generation manual — generating documents from models with native document queries: concepts, getting started, a query cookbook, document authoring, outputs (Markdown and PDF), interfaces, a complete worked example and limitations and troubleshooting.

Reference

  • CLI — every flag of sysml, the modes, and the exit status
  • REPL commands — every % command and its arguments
  • LSP extensions — the custom render requests sysml-lsp serves a diagram client
  • Environment variables — the bounds a single run may consume, and paths
  • Client libraries — the Go, Python, Node, Java and Rust surfaces, and how to choose between them
  • Go packagesclient/opensysml and the packages behind it, type by type
  • Python APIopensysml, its generated typed classes and latency
  • Service transports — what sysml-grpc serves on a single port, and the behavior of an absent capability
  • RDF mapping — the triples a model becomes, the constructs that are not mapped, and why the mapping is experimental
  • Grammar — grammar production → parser implementation

Internals

Project status

  • Spec compliance — faithful, approximate or not implemented
  • Training examples — the OMG corpus, 100/100 clean
  • Pilot corpora gate — OpenSysML diagnostics on the three pinned OMG pilot corpora, ratcheted in CI
  • Pilot differential — OpenSysML diagnostics compared against the OMG pilot implementation
  • Grammar coverage — the OMG grammar productions the project's inputs exercise
  • Roadmap — the known gaps, in the order they should be addressed
  • Releasing — the pre-tag gate, tagging, artifacts and Homebrew
  • macOS distribution — Gatekeeper and the signing decision
  • Demo — a scripted walkthrough of the full surface

Contribution guidance, including where a new page belongs, is in CONTRIBUTING.md.