Highlights
gravity compensation and home return can be staged, applied and — for the first time — saved;
the Hub restores them automatically when the device connects. Two upgrade notes ride along — see
If you might roll back to 1.3.0 and Store on device… below.
live under Show advanced settings; on service 3.5.6 or newer, no experimental-API opt-in is
needed at all.
and Transfer to profile hands the rotation back when you want it.
inverse3-family units get a telemetry panel instead of a misleading mesh.
notice, with a redesigned animated intro behind a new ? button.
and safety notifications included.
rewritten or deleted on upgrade.
New features
Device Settings tab — persistence and one field model (all users)
return gain Modified/Saved pills, a per-field menu and a footer Apply + Save/Reset row. Profiles
saved before 1.4.0 are migrated once, one-way — back the file up before any return to 1.3.0
(see the rollback call-out).
the device's first calibration. Fields the device already matches are skipped, and an open
Settings panel reseeds its badges instead of stranding a stale Modified.
the new Store on device… action — behind a warning, because it persists the device's entire
configuration against a limited lifetime write budget.
"Revert" splits into _Revert unapplied edits_ and _Revert to Saved_.
home return, disabled below service 3.5.6. Handedness deliberately has none: the service's reset
forces right-handed, which would physically flip a left-handed unit.
Profiles tab.
Device mount (Show advanced settings)
gizmo-space toggle and device reset. Nothing applies while you drag; everything commits through
the panel's Apply.
source selector replace the old two-option control. Turning the master off also resets the
rotation on the device — the confirmation says so first.
with the experimental API on; below either floor it shows disabled with the missing half named.
deleted: the rotation returns when the device mount is turned off.
applying it immediately. It applies, it never saves.
no more out-of-step reads.
Device panel and 3D views (all users)
#<id> · <profile> in the session colour — andthe Control readouts become pills, collapsing to one muted pill when the device is idle.
Input Control (all users)
Control is active — no longer a bare button in the bottom-right corner.
? button;the left-handed caveat now lives inside that intro.
Improvements
now lands off, home-return reset genuinely switches on — and the live, no-opt-in mount
surface.
checkbox and acceptance flow. The View License browser link is gone (use Download PDF), and
the Updated date currently renders as a raw ISO date — a tracked regression.
rather than unresponsive.
tutorials now read in all seven non-English locales, and strings that used to bypass translation
— the tray menu, the firmware-update warning, the safety overlay and its notifications — come
through the same layer, falling back to English if a string is missing. Product names stay in
English on purpose.
Fixes
Bugs that were present in 1.3.0.
instead of rendering live and failing every read and write.
from the connected service's version.
orbiting during the animation, and no longer leaves the controls stuck.
telemetry panel filling the column — visible on narrow windows too.
If you might roll back to 1.3.0
One warning stands above everything else in this release: back up device-settings.json before
your first 1.4.0 launch if there is any chance the machine returns to 1.3.0. The migration is
one-way, and a 1.3.0 build silently reads the migrated file as empty and overwrites it on its
first save. Restoring your copy is the only way back.
Deprecations
mount master toggle plus Auto Refresh.
read the agreement outside the app.
overwrites the new file rather than refusing it. Keep a copy.
freeze / continuousfrom service 3.5.6 up; the Hub still speaks the old pair to older services.
No action, trigger or keyboard shortcut was deprecated this cycle.
Known issues
Shipped behaviour we know about and are not fixing in 1.4.0.
damping's displayed value is not always correct, and the force gate starts at 0.3, showing
_Modified_ from the first frame. Both need a service-side fix first.
unchanged out of the box: the default Inkwell source recaptures the rotation on every
recalibration, and changing that default on a minor release would be a breaking change. The
escape is opt-in: switch Auto Refresh off to freeze the rotation, then save it — the Hub
restores it on every connect.
Input Control intro.
