Reference
Downloads: sample models, templates and tools
Everything the pages describe, as files. Each was generated, built or run on this machine;
the page that explains a file is named beside its group. Nothing generated by vsiBuild is
included (a twin folder carries a Siemens proprietary header); regenerate those with
vsiBuild -c -f FILE.vsi.cmd from any command file below.
Everything in one archive: vsi-samples.zip (470.1 KB, 68 files).
Two-component templates
One protocol or language pair each, all generated, built and run on this machine. Start here for a first twin. See getting-started/first-twin-in-ten-minutes.
| file | size | what it is |
|---|---|---|
| README.md | 13.3 KB | what each template proves, how it was run, and the traps it found |
| cpp-pair-genericpayload.vsi.cmd | 1.1 KB | two C++ components, one int over GenericPayload |
| python-pair-genericpayload.vsi.cmd | 755 B | two Python components over GenericPayload |
| python-cpp-pair-genericpayload.vsi.cmd | 916 B | a Python producer feeding a C++ consumer |
| ethernet-pair-tcp.vsi.cmd | 1.2 KB | a TCP server and client socket pair |
| can-frame-pair.vsi.cmd | 906 B | one CAN frame shared by two nodes |
| systemc-cpp-pair.vsi.cmd | 825 B | a SystemC client beside a C++ one |
| fmu-cpp-pilot.vsi.cmd | 1.8 KB | the Amesim QX-250 FMU driven by a C++ observer |
| python-delay-chain.vsi.cmd | 1.6 KB | four Python components in a delay chain |
| README.md | 4.0 KB | the delay chain's design and run notes |
| apply_glue.py | 4.2 KB | glue script for the delay chain |
| delay_config.json | 202 B | per-stage delays |
| vsi_delay.py | 4.0 KB | the delay behaviour |
| test_delay_chain.py | 3.1 KB | host-side test of the delay behaviour |
Wizard example
The answers file the wizard replays and the command file it wrote: Python sensor, C++ controller, Python actuator, GenericPayload links plus a shared CAN frame. See building-a-twin/wizard-python-models.
| file | size | what it is |
|---|---|---|
| Wiz3DT.answers.json | 1.5 KB | answers file; replay with vsi_wizard.py --answers |
| Wiz3DT.vsi.cmd | 2.5 KB | the command file the wizard wrote from it |
Generated twin command files
What the Teamcenter and SysML v2 pipelines produced for the real models, each with the assumptions file that lists every derived value. See building-a-twin/from-teamcenter-icd.
| file | size | what it is |
|---|---|---|
| wildfire_grouped.vsi.cmd | 58.6 KB | SENTINEL-W Wildfire, 63 logical blocks grouped from 152 Teamcenter ports, all C++ |
| wildfire_grouped.vsi.cmd.assumptions.md | 16.7 KB | its assumptions |
| wildfire_py.vsi.cmd | 58.7 KB | the same model with four blocks as Python components |
| wildfire_py.vsi.cmd.assumptions.md | 17.2 KB | its assumptions, including the Ethernet demotion |
| msp2_A.vsi.cmd | 6.7 KB | MSP-2 Candidate A, 7 components |
| msp2_B.vsi.cmd | 7.0 KB | MSP-2 Candidate B, 7 components |
| msp2_A_sysmlblock.vsi.cmd | 7.7 KB | Candidate A plus a block that exists only in SysML v2, from sysml2vsi.py |
| msp2_A_sysmlblock.vsi.cmd.assumptions.md | 603 B | its assumptions |
SysML v2 models
Exports of the twins as SysML v2 text (validated by the OMG pilot, loadable in the SysML v2 Modeler) and the hand-authored driven-block model. See building-a-twin/from-sysml-v2.
| file | size | what it is |
|---|---|---|
| Msp2_A.sysml | 7.1 KB | Candidate A as a SysML v2 package |
| Msp2_A_views.sysml | 18.3 KB | its interconnection and definition diagrams |
| Msp2_B.sysml | 7.4 KB | Candidate B |
| Msp2_B_views.sysml | 18.7 KB | its diagrams |
| Msp2_A_sysmlblock.sysml | 8.5 KB | Candidate A plus the SysML-only Python ground test monitor |
| WildfireGrouped.sysml | 95.4 KB | the 63-block Wildfire twin |
| WildfireGrouped_views.sysml | 215.4 KB | 26 per-bus diagrams |
Interactive twin pages
Self-contained HTML, open online under /flow/ or save the file and open it offline. The message-flow pages replay a tracked run, one symbol per producer value change travelling to its bus and fanning out to the subscribers, built by vsi_flow.py in the vsi-message-flow repository (rm-7h76ks76). The IMS page is a topology view of the co-verification demo, built by vsi_viz.py. See running-and-controlling/stimulus-glue-and-rates.
| file | size | what it is |
|---|---|---|
| wildfire.html | 165.1 KB | Wildfire, 63 components: 269 transmissions over 100 steps, seen as 459 producer signal changes |
| wildfire-python.html | 165.1 KB | the same twin with four Python components |
| msp2.html | 134.0 KB | MSP-2 with the SysML v2 block, 8 components |
| wiz3.html | 61.5 KB | the wizard's three-component twin |
| ims-twin.html | 39.3 KB | the HW/SW co-verification twin: 7 components, 171 signals, 88 interconnects |
| ims-flow.html | 187.4 KB | the HW/SW co-verification twin ANIMATED on the baseline-2t run: 158 transmissions over 955 steps, seen as 1,243 producer signal changes, the run where the freshness defect fires |
HW and SW co-verification demo
The IMS demo end to end: the Cameo model that is the source of truth, the twin generated from it, the Python behaviours, the twin-construction decisions the model does not carry, and the campaign record that every number on the page is read out of rather than typed. See building-a-twin/hw-sw-coverification. See building-a-twin/hw-sw-coverification.
| file | size | what it is |
|---|---|---|
| IMS_Coverification_Demo.mdzip | 218.9 KB | the Cameo SysML model, source of truth for the whole demo |
| README.md | 4.6 KB | every generated artefact named, and how to rebuild from nothing |
| ImsDT.vsi.cmd | 21.2 KB | the generated vsiBuild command file |
| ims.assumptions.md | 7.6 KB | the twin-construction decisions the model deliberately does not carry |
| ims.answers.json | 22.3 KB | the generator config: languages, gateways, protocol choices |
| campaign.json | 16.0 KB | the nine run records the page's numbers come from |
| ims_common.py | 21.7 KB | ALL the component logic: the Ethernet model, the switch queueing, the receivers and the mission software as a timed activity interpreter |
| MissionProcessor_behaviour.py | 483 B | dispatcher for the mission processor; the logic is in ims_common.py |
| ReceiverVendorA_behaviour.py | 481 B | dispatcher for the vendor A receiver stand-in |
| ReceiverVendorB_behaviour.py | 481 B | dispatcher for the vendor B receiver stand-in, the late one |
| RuggedizedSwitch_behaviour.py | 483 B | dispatcher for the switch |
| Transmitter_behaviour.py | 473 B | dispatcher for the transmitter |
| CommunicationArray_behaviour.py | 487 B | dispatcher for the communication array |
| TargetScenario_behaviour.py | 479 B | dispatcher for the test fixture |
Tools and glue
The scripts the pages describe. Python 3, no packages beyond the standard library except where a page says otherwise. See running-and-controlling/stimulus-glue-and-rates.
| file | size | what it is |
|---|---|---|
| vsi_wizard.py | 29.3 KB | the question-and-answer twin builder |
| icd_to_vsi.py | 35.5 KB | Teamcenter ICD JSON to command file |
| gateway_map.json | 5.5 KB | declared interface-class to protocol mapping |
| sysml2vsi.py | 14.8 KB | SysML v2 text to command file |
| vsi2sysml.py | 17.8 KB | command file to SysML v2 package and diagrams |
| vsi_cmd.py | 13.8 KB | the command-file parser vsi2sysml.py imports, keep it beside it |
| validate_sysml.py | 7.0 KB | runs the OMG pilot headless on a model |
| vsi_viz.py | 15.5 KB | command file to an HTML twin diagram (owned by the vsi-message-flow repository since 2026-09-10) |
| generic_stim.h | 3.1 KB | C++ stimulus primitives |
| generic_stim.py | 3.4 KB | Python stimulus primitives |
| apply_glue_generic.py | 14.2 KB | writes the glue into every component |
| check_traces.py | 9.8 KB | verifies a run from the traces |
| README.md | 11.7 KB | roles, periods, the CAN mute, run history |
| msp2_stim.h | 7.1 KB | the scripted MSP-2 scenario |
| test_msp2_stim.cxx | 3.7 KB | host-side proof of that scenario |
| apply_glue.py | 8.7 KB | writes the scenario into the seven skeletons |
| README.md | 3.5 KB | the scenario's design |
A browser shows a .vsi.cmd, .sysml or .py file as text; use Save As to keep it, or take
the archive. Files are refreshed with npm run collect-downloads in the site repository and
carry the collection date in the manifest at /downloads/manifest.json.
Source: innexis-vsi repository, collected by vsi-knowledge-base/scripts/collect-downloads.mjs on 2026-09-10 · retrieved Thu Sep 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)