Skip to content

Release Notes

New features, improvements and fixes of realvirtual WEB and realvirtual CONNECT, newest release first. Each entry names the product and version it belongs to.

  • Customer deliveries build project plugins that use the viewer core.
  • FMU co-simulation: attach an FMI 2.0 FMU to a node, run it through CONNECT after a trust confirmation, edit parameters and start values, restart it from a signal. Includes a bouncing-ball FMU demo.
  • Signal units: signals carry units and bindings convert between them.
  • Mechanisms: cartesian paths, a trajectory visualizer (path line, playback marker, waypoints) and offline drive sizing with trajectory, inertia override and SERVOsoft export.
  • Projects dashboard: search the documents of all projects, quick-open type-ahead, “Open in new tab”.
  • Documents remember and restore their last-used mode.
  • Seven more drive behaviours; every drive behaviour can be added in the editor.
  • Mesh section in the property inspector with baked-geometry details.
  • Nested references: referenced assets may contain references of their own.
  • Delta robot kinematics model in the demo project; descriptions for all demo and library models.
  • Build time shown in the version line.
  • Property inspector: one value column, a ⋮ menu for component actions (Replace, Remove), Jog − | Stop | Jog + as one control, collapsible package details, English texts throughout.
  • Number fields accept comma or dot as decimal separator.
  • Buttons, menus, shortcuts and AI tools share one command system with consistent enabled state and reasons.
  • Faster, more precise picking and hover on large models; groups no longer cost draw calls and can still be hidden and isolated.
  • Asset cache verifies file versions and never keeps a missing file.
  • Better performance for large layouts with many parts.
  • Typing “9,81” in a number field no longer stores 9.
  • FMU section header follows the FMU state.
  • Viewer mode shows Play, Pause, Reset and speed again.
  • Paths honour the global speed override.
  • Follow-position drives keep rendering while they move.
  • Snap picker opens only on a click near a marker, not on a drag.
  • Reset restarts logic steps.
  • Picking imported CAD in the editor works again.
  • A failed model preparation is shown as a load error.
  • Project thumbnails refresh when a document changes.
  • Siemens PLCSIM Advanced, natively. A new interface type PlcSimAdvanced talks to a running PLCSIM Advanced instance through the official Siemens simulation API in-process — no coupler process, no shared memory, no PUT/GET. It attaches to a registered instance by name, browses its tags symbolically, exchanges them as one batch read plus one batch write per cycle, and rebuilds itself after a TIA software download. Unlike the existing S7comm route to the same instance it needs no absolute DB addresses, no non-optimized blocks and no virtual Ethernet adapter — Softbus works. Windows only; the Siemens API is never shipped with CONNECT, it is loaded from the customer’s own PLCSIM Advanced installation. Without that installation the interface is parked with a readable reason in GET /status instead of retrying forever. See doc-connect-interfaces.md § PLCSIM Advanced worker (native API).
  • FMU co-simulation. CONNECT runs FMI 2.0 co-simulation FMUs that realvirtual WEB uploads, in a separate worker process: a trust confirmation per package, a lease per connected viewer, start-value overrides, restart in place, and simulation time that follows wall-clock time with a bounded catch-up.
  • OPC-UA client timeout is applied in seconds as configured; it was read as milliseconds.
  • The update check verifies the signature of a downloaded update reliably.
  • The startup port check no longer reports a wrong location for an already running gateway.
  • An FMU package can be uploaded again after it was deleted while in use.
  • PLCSIM Advanced: a large project no longer fails to browse. The worker asked the instance for every data block on every connect; PLCSIM Advanced caps its tag list at 500 000 entries (array and struct elements included), so a large safety project answered -43 NotEnoughMemory and the interface never came up. Without a Data Block Filter CONNECT now requests the process image and the markers only, plus exactly the data blocks the configured signal addresses name ("Block".Member); a browse lists data block tags only for the blocks named in the filter. If the list still overruns the limit, CONNECT retries that browse once with HMI-visible tags only and reports it as tagListFallback in GET /status (next to tagListDetails and the dataBlockFilter actually used) — the configured setting is never overwritten. Tag counts per area and per requested data block are logged, including a warning for a block that returns nothing. See doc-connect-interfaces.md § Behaviour worth knowing.
  • bake() is the only render and pick pipeline: BatchedMesh arenas, face-range pick tables and proxy highlights are gone
  • One placement primitive in the viewer core; planner placements are BakedAsset instances with chunk picking and chunk-outline highlight
  • Scene-ready contract: placements-materialized event and whenSceneReady(), reopened layouts re-instantiate their placed references
  • Per-pass frame stats, shared sensor visualisation geometry
  • Faster and automatic /dev deploys (build cache, parallel upload, watcher)
  • Projects: Add and Locate open the folder instead of suppressing themselves
  • TransportStopper collider and LogicStep WaitForStopped, wired through the LogicStep builder
  • Recents as a pinnable flyout off the Projects folder
  • Agent eye narrowed to three channels, its monitor panel reworked into a shared activity row, with the captured images in an HMI filmstrip
  • Editor export fixes: driven nodes export from their home pose, and source template materials plus glTF provenance survive an in-place test export
  • Energy chain survives sparse CAD tessellation
  • Test suite green end to end: node 1547, browser 14623, 0 failures
  • A delivered workspace gets a Start-menu entry for THAT workspace. A gateway started with --project-root no longer offers the portable install (copy into the profile, link without a project root), which produced a project-less gateway drifting from the workspace’s pinned CONNECT version. The shortcut now points at tools/connect/realvirtual-Connect.exe with --project-root "<workspace>", is named after the workspace folder inside the single realvirtual group, and the machine-install upgrade question is not asked at all.
  • web_eye returns all its channels. A multi-channel capture (beauty, idmask, depth, normals, edges from one camera pose) is forwarded as one image block per channel, in declared order, so the sidecar’s pixel coordinates apply to every channel of the same result.
  • The SEW MOVI-C catalog preset is described as a signal interface, not a drive interface.
  • OPC UA client: missing System.IO using.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

  • SEW MOVI-C interface (MQTT Json topic mode). One flat JSON object per topic carries the whole process image; the signal name is the JSON key, no addresses. Matches what a SEW MOVI-C / Codesys station publishes and the SEWSimInterface of realvirtual for Unity, so an existing SEW simulation moves to the browser unchanged. Receive topic (PLC outputs) and publish topic (PLC inputs, cyclic, default 100 ms) are created together from a SEW symbol table import. See doc-connect.md § MQTT Json topic mode (SEW).
  • Config updates keep omitted credentials and their provenance instead of dropping them.
  • Float signal values no longer overflow on the MQTT/WebSocket boundary.
  • stage-public follows the project folder model; -Public bundles no demo content.

No release notes were recorded for this version.

  • Chain component: the Unity Chain is now available in the web runtime — chain links follow a spline path and are moved by a Drive, with GLB round-trip verified against real Unity exports (including a vertical-flip parity fix in glTF space).
  • Project manifests: every project now ships a real project.json; the glob-based and synthetic manifest fallbacks are removed, and the former “published:” identity space is folded into the manifest’s documents[] list. Old ?scene= links hop to the right workspace document.
  • README: new “Community Edition vs. Commercial” section, and the public demo’s free-tier evaluation limits are stated explicitly.
  • GLB fidelity: deduplicated nodes keep their raw glTF name, and loading a model in the authoring editor never mutates the GLB hierarchy anymore.
  • Layout Planner: layouts adopted from a GLB now behave exactly like natively planned scenes — the store survives a reload, snap points register, and placements render per object. The planner demo also works on static deployments.
  • Embed bundle: React and @mui are kept out of the embed build, shrinking the bundle for iframe/embed use.
  • Dashboard: the Libraries tree no longer collapses to zero width.
  • Staging: the public demo staging keeps the authored demo manifest instead of overwriting it with a generated delivery manifest.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

  • Live binding of the CONNECT configuration to the open document.
  • Loopback-only POST /project/reveal with connectRef verification.
  • Project-local configuration by reference; agents and RAG sources follow the manifest.
  • Download-only self-update, one-click remote HMI link for LAN second devices.
  • Configurable interface allow-list for trimmed deliveries.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

No release notes were recorded for this version.

  • Lazy-panel tests: the resource timeline is their only witness, and it is a fixed-size buffer (250 entries by default). This file’s module graph had grown to fill it, so the lazy chunk’s entry — recorded last, at the one moment that mattered — was dropped on arrival. The panels opened and the chunks loaded exactly as specified; the tests then spent their full 15 s budget waiting for evidence the browser had already discarded, and reported it as a timeout. Raised the buffer instead of the timeout: nothing was ever slow.
  • Private Node suites: the browser config excludes tests/**/*.node.test.ts but the include glob also reaches into the private sibling, where the same convention went unexcluded — so 11 Node suites were dragged into Chromium and died on the first node:crypto import. They run, and pass, under npm run test:node.
  • Regenerated tests/private-dependent-tests.json (+ the tsconfig exclude block): the two FBX tests restored earlier were never added, leaving the community-parity guard red.
  • Autosave data-loss fix (undefined topic in signal mappings) + visible autosave errors
  • Inspector bind row for PLC signal nodes (aliased-selection fix)
  • Signal chips use full width; hover cards on 3D link badges
  • Shiftless chip drag (mouse threshold, touch long-press)
  • Drag magnet occlusion check
  • Demo scene: machine/robot signals moved onto their machines; 40 signals commented

No release notes were recorded for this version.