Primmel SST, the simulated SMART twin
Primmel SST is the simulated-SMART-twin framework of the Primmel SMART platform: simulated instruments, servers, and clients of a SMART twin endpoint. It gives certification software an instrument that behaves like a real one, its indication emerges from constitutive laws (elastic strain, thermal coefficients, creep, quantization), so a test protocol run against it succeeds or fails for physical reasons.
The framework is kind-agnostic: it knows nothing about any particular instrument family. Instrument kinds come from a library; the runtime, the shell, the bench, and the specs are the framework.
The two channels
One process serves two GraphQL surfaces, kept apart by construction:
/twin, the governed projection. What a real instrument could legally answer: its indication, its state, its served registers, its instrument-legal operations. The schema is generated from the instrument’s Primmel product reference package (itsservedeclarations), and a startup conformance check (schema ≡ serves ≡ promises) refuses to boot on any diff, the twin can never drift from its declared contract./world, the physics. Applied load, environment, time, ground truth. Nothing from/worldmay leak into/twin, a real instrument cannot report ground truth, so certification software is wired to/twinonly.
The stream surface rides /twin: point queries for pollers, command
mutations for operations, and watch subscriptions (GraphQL over SSE)
that deliver the current value at subscribe and on every clock
advance, a stream that ends or breaks delivers unavailable, never a
silent close.
The console and the bench
The console is a teaching shell modelled on network-gear IOS:
user exec (sim>) for observation, enable into privileged (sim#)
for world mutation. The epistemic split is grammatical, show indication queries /twin, show ground-truth queries /world, and
the privileged verbs (place load, set temperature, play profile,
advance, scenario) are all world-side.
The bench is a dependency-light SPA with three panes: the console
in the browser, a WebGL2 virtual bench fed exclusively by /world
ground truth, and a live readout of the signal chain and its
constitutive laws.
Standalone, zero prerequisites
git clone … && npm install && npm start
boots a simulated instrument with its console, both GraphQL channels
(with playgrounds), and the bench at http://localhost:5290/, no
SMART checkout, no Primmel knowledge required.
The instrument library
The framework ships no instruments; kinds and instances live in libraries. The OIML instrument library, load cells (R 60), radar speed meters (R 91), dimensioners (R 129), gas analyzers (R 144), and the ACME LC-500 reference instance, belongs to the OIML SMART program: www.oimlsmart.org/sst.
Links
- The framework repo , github.com/primmel/sst: the kind-agnostic runtime, the shell, the bench, the specs.
- The instrument library , www.oimlsmart.org/sst (the OIML SMART program’s library).
- The full chapter , Simulated Instruments, the Wind Tunnel in the platform docs.