Nomograph Labs Nomograph Labs

Projects

All MIT-licensed · hosted on GitLab

We are exploring a methodology for making formal engineering languages legible to AI. Pick a language, build a parser, build composable CLI tooling on top of it, build a benchmark to measure what the tooling actually does for AI performance. Each iteration produces a tool others can use, a benchmark others can extend, and observations about where AI succeeds and fails on that language.


nomograph / sysml
MetricValue
CLI commands14
MCP tools10
Tests123
Token reduction94% avg
LanguageRust
LicenseMIT

gitlab.com/nomograph/sysml →

Rust CLI tool with an MCP server built in. Indexes .sysml repositories into a persistent knowledge graph and exposes it through 14 CLI commands and 10 MCP tools. Single binary, dual mode: run it as a CLI for scripting and benchmarking, or as an MCP server for editor and agent integration.

9-signal hybrid index: keyword scoring (8 signals including exact match, prefix, containment, vocabulary expansion, relationship adjacency) plus fastembed all-MiniLM-L6-v2 vector search (384-dim, HNSW) and 27 SysML v2 structural relationship types. Achieves 94% average token reduction vs raw file injection.

Install

cargo install --path crates/sysml-cli

Key commands

CommandDescription
sysml searchHybrid keyword + vector search across indexed models
sysml traceFollow structural relationships (specialization, usage, allocation)
sysml renderPre-render element views for LLM consumption
sysml checkCompleteness checking against SysML v2 structural rules
sysml inspectDetailed element metadata and relationship graph

nomograph / sysml-bench
MetricValue
Tasks132
Models4
Conditions40+
Observations14
LanguagePython
LicenseMIT

gitlab.com/nomograph/sysml-bench →

Evaluation harness measuring how CLI tool configurations affect LLM accuracy on structured systems engineering tasks. 132 tasks across 8 categories: discovery, reasoning, explanation, layer, boundary, vector-sensitive, structural trace, and corpus scaling.

Per-field structured scoring (Bool, Float, Str, ListStr F1 with threshold). Corpus: Eve Online Mining Frigate SysML v2 model, 19 files, 798 elements, 1,515 relationships. Scaling corpus: 95 files.

Install

git clone https://gitlab.com/nomograph/sysml-bench.git && cd sysml-bench && uv sync

Task categories

CategoryTasksTests
DiscoveryAttribute lookup, element enumerationCan the model find specific facts?
ReasoningMulti-hop inference, constraint satisfactionCan the model reason across relationships?
ExplanationSummarize structure, describe behaviorCan the model explain what a model element does?
Structural traceFollow allocation, specialization chainsCan the model traverse the model graph?
Corpus scalingSame tasks on 5× larger corpusDoes performance hold at scale?

nomograph / tree-sitter-sysml
MetricValue
Tests192
External coverage89%
Bindings6 languages
LanguageC (tree-sitter)
LicenseMIT

gitlab.com/nomograph/tree-sitter-sysml →

Tree-sitter grammar for SysML v2. The parsing foundation for all Nomograph tooling. Built by curating a corpus of real-world SysML v2 models and iterating the grammar against it: run the parser, find failures, fix the grammar, repeat. 89% coverage on external files (models we did not author). 192 tests passing.

Provides incremental parsing with bindings for Rust, C, Node.js, Python, Go, and Swift. The sysml CLI and benchmark harness both depend on it. SysML v2 was adopted by OMG in June 2025; this grammar tracks the current specification.

Bindings

LanguagePackageStatus
Rusttree-sitter-sysmlPrimary (used by sysml CLI)
CHeader + sourceGenerated by tree-sitter
Node.jstree-sitter-sysmlAvailable
Pythontree-sitter-sysmlAvailable
Gotree-sitter-sysmlAvailable
SwiftTreeSitterSysmlAvailable

Future Directions

Candidate languages:

DomainLanguage
EmbeddedAADL
SafetyOSCAL, GSN
ElectronicsKiCad, SV
3D/CADOpenSCAD
Supply chainCycloneDX

We are genuinely curious about the return to composable CLI tools for LLM interaction. There is something appealing about the Unix philosophy applied to AI tooling: small programs that do one thing well, piped together, with text as the universal interface. Our benchmark data suggests this intuition has substance. CLI tool-based search outperformed both MCP transport and RAG on discovery tasks, using 21% fewer tokens. The composable approach seems to produce less overhead and more predictable behavior.

The methodology is designed to extend to any formal language with a grammar. AADL for embedded systems, OSCAL for security compliance, KiCad for electronics, OpenSCAD for parametric 3D. The source code of the physical world, made legible to AI through the same tooling pattern: parse it, index it, expose it through composable CLI commands, measure what happens.