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:

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.