The desktop build, and exactly what it sends home
WebCAE Desktop runs the native engine on your machine, works offline with a signed licence file, and installs on Windows without administrator rights. It also sends a small amount of telemetry — so here is the complete list of fields, and the switch that turns it off.
Most of what we published this month — mortar contact, hexahedral zones, the Accelerate solver, topology optimization — runs on the desktop build. That is not an accident of scheduling. A browser tab has one thread and a memory ceiling, and the native build has the whole machine. So it is worth describing what the desktop application actually is, and being precise about the one thing it sends over the network.
What it is
A Tauri application wrapping the same native C++ engine we develop against: the geometry kernel, the mesher and the finite-element solver, compiled for your architecture rather than for WebAssembly. On Apple Silicon that means the vector units and every performance core are available — which is where the direct solver's twenty-fold speed-up comes from.
Installers are a Windows executable and a macOS disk image, the latter for both Apple Silicon and Intel, signed and notarized, with the sidecar binaries signed recursively. The Windows installer puts the application in your user profile and needs no administrator rights, presents the licence agreement first, and checks for the Visual C++ runtime itself. Updates are delivered through the built-in updater.
Licensing that works offline
There is a fourteen-day trial that starts on first launch. Its dates are stored encrypted and salted against the machine identifier, with a monotonic last-seen timestamp — so setting the clock back does not extend it.
A purchased licence is a node-locked file signed with Ed25519 and validated locally by the application. No network call is needed to start a session, which matters for anyone whose engineering workstation does not have general internet access. Online activation through the web account is available for everyone else. The machine identifier is derived from stable hardware attributes, hashed, and shown in the familiar grouped format — the hardware details themselves never leave the machine, only the hash does.
The licence check sits at the boundary of the native solver and mesher, not in the interface, so the front end knows what your entitlement is but cannot grant itself the right to compute.
Telemetry, in full
The application reports a small event when a trial starts, when a licence is activated, and on launch. The complete payload is: the hashed machine identifier, which of those three events it was, the licence status and tier, the customer identifier if a licence is active, the platform, the days remaining, and the application version. That is the entire list. No project files, no geometry, no model names, no file paths, no personal data — and the browser version sends nothing at all.
We rely on legitimate interest under GDPR Article 6(1)(f) for this, and there is a switch in the Privacy tab of Settings that turns it off. The opt-out is checked on the first line of the send path, so no request is prepared, let alone dispatched. If the machine is offline the event is not lost and does not block anything — it waits for a single connectivity notification and is sent once, and network errors are swallowed silently rather than surfaced as an alarm about something that does not concern you.
Licences of the components we build on
The About tab carries the notices these libraries require of us: OpenCASCADE and Netgen under LGPL with the appropriate exceptions and a note where we have modified them, FreeType under its own licence, MFEM under BSD. Open-source obligations are part of shipping software, and we would rather show them than bury them.
The browser version is not going away. It remains the fastest way to open a STEP file and get a stress field without installing anything, and everything that can run there will. But when a capability needs a real machine — a twenty-minute contact solve, an assembly of eighty-eight bodies, fifty optimization iterations — we would rather ship it on the desktop and say so than pretend a tab can do it.