Skip to main content
Version: 3.5.x

Settings Reference

This document lists all settings returned by the /settings/ endpoint with their key, type (from type_hint), and constraints (from metadata.constraint.range + locked where applicable).

A locked setting is read-only at runtime. It can be changed via the config file or through the Haply Hub settings page, but a full service restart is required for changes to take effect. These are marked boot in the tables below.

Configuration​

The configuration file to override the settings during service startup is located here:

PlatformLocation
WindowsC:\ProgramData\Haply\Inverse\haply-inverse-service-config.json
MacOS/Library/Application Support/Haply/Inverse/haply-inverse-service-config.json
Linux/etc/haply-inverse-service/haply-inverse-service-config.json

The config file is a flat JSON object mapping setting keys to override values. Keys must be valid settings keys returned by the /settings/ HTTP route (see API Reference). Any key not specified uses the service default.

For example, a networking configuration override:

{
"communication/http/port": 8400,
"communication/websocket/port": 8500,
"communication/events/port": 9000,
"communication/bind_all_interfaces": true
}

Type mapping​

Type hints returned by the API map to these JSON shapes:

  • STRING → string
  • BOOL → bool
  • INT → int
  • FLOAT → float
  • ARR_STRING → string[]
  • VEC3 → vec3 (object with {x, y, z})
  • GENERIC → json (arbitrary structured value)

communication/…​

Network ports and bind addresses for the HTTP, WebSocket, and event-stream servers. Most entries are boot-only.

KeyTypeConstraintsDescription
communication/serial/enabledbool—Enable or disable serial device communication.
communication/bind_addressstringbootIP address the HTTP and WebSocket servers bind to.
communication/bind_all_interfacesboolbootBind servers to 0.0.0.0 instead of localhost.
communication/http/portintbootHTTP REST API port (default 10000).
communication/websocket/portintbootMain v3.1 WebSocket port (default 10001).
communication/websocket/legacy_portintbootLegacy v3.0 WebSocket port (default 10000).
communication/events/portintbootEvent-stream WebSocket port (default 10020).

devices/…​

devices/detection/…​

Serial-port scanning policy. All entries are advanced.

KeyTypeConstraintsDescription
devices/detection/scan_period_msintrange 100–10000; bootInterval between serial port scans (ms).
devices/detection/handshake_timeout_sintrange 1–15Handshake timeout per port (s).
devices/detection/max_retriesintrange 1–10Maximum handshake retry attempts per port.
devices/detection/failure_log_delay_sintrange 1–60Delay before re-logging a detection failure (s).
devices/detection/block_looping_portsbool—Block device readiness when a looping port is detected.
devices/detection/excluded_portsjson—Serial port paths to skip during detection.
devices/detection/additional_portsstring[]—Extra serial port paths to scan unconditionally.
devices/detection/allowed_vendor_id_filterstring[]—USB vendor IDs allowed during port enumeration.
devices/detection/port_name_substring_filterstring[]—Platform-specific port name substrings to match.
devices/detection/wireless_verse_grip_description_filterstring[]—Port description substrings for wireless VerseGrip detection.
devices/detection/inverse3x_description_filterstring[]—Port description substrings for Inverse3x detection.
devices/detection/extra_ports (deprecated)string[]—Use devices/detection/additional_ports instead. Reads and writes are transparently forwarded to the canonical key.

devices/inverse*/…​

Global defaults applied to every Inverse3-family device. Per-session overrides take precedence.

KeyTypeConstraintsDescription
devices/inverse*/filters/force_scale/gainfloatrange 0.0–2.0Global force output multiplier applied to all devices.
devices/inverse*/filters/force_gate/gainfloatrange 0.0–1.0Default force-gate gain for new sessions.
devices/inverse*/control_timeout_msintrange 50–10000Timeout before releasing the device control lock (ms).
devices/inverse*/query_orientation_on_idlebool—Query body orientation from firmware when the device is idle.

devices/presets​

KeyTypeConstraintsDescription
devices/presetsjson—Default device-configuration presets per device type (mount transform, basis, etc. for inverse_arm_front_*, inverse_led_front_*, minverse_*, verse_grip_default, wireless_verse_grip_default, custom_verse_grip_default).

devices/wireless_verse_grip/…​

KeyTypeConstraintsDescription
devices/wireless_verse_grip/battery/low_thresholdint—Battery percentage below which a low-battery warning fires.
devices/wireless_verse_grip/battery/critical_thresholdint—Battery percentage below which a critical-battery alert fires.
devices/wireless_verse_grip/battery/reset_marginint—Hysteresis margin before clearing a battery warning.
devices/wireless_verse_grip/filters/orientation_filterjsonbootOne Euro Filter config for wireless VerseGrip orientation.

features/…​

features/calibration/…​

KeyTypeConstraintsDescription
features/calibration/hall_thresholdintrange 1–32Hall sensor level at which the pen is considered attached during calibration.

features/grip_hook/…​

Automatic grip-hook behaviour — locks the cursor while the grip is held upright.

KeyTypeConstraintsDescription
features/grip_hook/enabledbool—Enable grip-hook auto-lock when the grip is held upright.
features/grip_hook/use_hallbool—Use the hall-sensor threshold instead of orientation for grip detection.
features/grip_hook/hallintrange 1–32Hall-sensor value threshold to trigger the grip lock.
features/grip_hook/hold_durationintrange 10–1000Duration to hold the lock after trigger (ms).

features/navigation/bubble/…​

Bubble navigation module defaults — passed into the session when a bubble behaviour is first activated.

KeyTypeConstraintsDescription
features/navigation/bubble/centervec3—Default bubble centre position.
features/navigation/bubble/max_velocityfloat—Maximum navigation velocity in the velocity zone (m/s).
features/navigation/bubble/velocity_zone_widthfloat—Width of the velocity zone outside the bubble surface (m).
features/navigation/bubble/reset_velocity_on_entrybool—Reset velocity to zero when the cursor enters the bubble.
features/navigation/bubble/spring_innerfloat—Spring coefficient at the bubble centre (N/m).
features/navigation/bubble/spring_surfacefloat—Spring coefficient at the bubble surface (N/m).
features/navigation/bubble/spring_outerfloat—Spring coefficient at the outer boundary (N/m).
features/navigation/bubble/damping_innerfloat—Damping coefficient at the bubble centre (Ns/m).
features/navigation/bubble/damping_surfacefloat—Damping coefficient at the bubble surface (Ns/m).
features/navigation/bubble/damping_outerfloat—Damping coefficient at the outer boundary (Ns/m).
features/navigation/bubble/wall_stiffnessfloat—Stiffness of the hard wall at the outer boundary (N/m).
features/navigation/bubble/bump_widthfloat—Width of the tactile bump at the bubble surface (m).
features/navigation/bubble/bump_stiffnessfloat—Stiffness of the tactile bump at the bubble surface (N/m).

features/safe_trajectory/…​

Velocity limiter for end-effector motion.

KeyTypeConstraintsDescription
features/safe_trajectory/enabledbool—Enable the safe-trajectory speed limiter.
features/safe_trajectory/max_velfloatrange 0.01–2.0Maximum allowed end-effector velocity (m/s).

features/screensaver/…​

Idle animation played on Inverse3 devices when no session is driving them.

KeyTypeConstraintsDescription
features/screensaver/enabledbool—Enable the idle screensaver animation on Inverse3 devices.
features/screensaver/speedfloatrange 0.001–0.2Screensaver animation speed.
features/screensaver/distracted_speedfloatrange 0.001–0.2Animation speed when the user is near but not engaging.

features/sdf/…​

Signed-distance-field haptic effects module (SDF HFX).

KeyTypeConstraintsDescription
features/sdf/enabledbool—Enable or disable the SDF haptic-effects module.
features/sdf/state_outputbool—Include SDF state in the device output payloads by default.
features/sdf/max_countintrange 0–128Maximum number of active SDF effects (0 = unlimited).
features/sdf/events/createdbool—Emit an event when a new SDF effect is created.
features/sdf/events/deletedbool—Emit an event when an SDF effect is deleted.
features/sdf/events/updatedbool—Emit an event when an SDF effect is updated.
features/sdf/probe_on_zero_force/enabledbool—Auto-probe SDF fields when applied force is near zero.
features/sdf/probe_on_zero_force/delayfloatrange 0.001–60.0Delay before auto-probing after force drops to zero (s).

features/verse_grip_pairing/…​

Attach/detach tracking between an Inverse3 and a (wired or wireless) Verse Grip. Powers the Haply Hub pairing UI.

KeyTypeConstraintsDescription
features/verse_grip_pairing/enabledbool—Enable pairing / attach-detach tracking.
features/verse_grip_pairing/hall_threshold_vgintrange 1–32Hall level at which a wired VerseGrip is considered attached.
features/verse_grip_pairing/hall_threshold_wvgintrange 1–32Hall level at which a Wireless VerseGrip is considered attached.
features/verse_grip_pairing/detach_debounce_msintrange 0–1000Debounce window before committing a detach (ms).
features/verse_grip_pairing/heartbeat_msintrange 100–10000Interval between forced re-notifications (ms).
features/verse_grip_pairing/force_attachedbool—Permanently force the attached state to true, bypassing the hall sensor (hardware-failure workaround).

serialization/…​

Transform-output formatting — affects WebSocket and HTTP JSON payloads.

KeyTypeConstraintsDescription
serialization/explicit_fieldsbool—Include transform fields that equal their identity default in serialized output (e.g. position: {0,0,0}, rotation: {w:1,…}). Useful when your client requires every field to be explicitly present. Default: false.
serialization/force_complete_transformsbool—Always emit position, rotation, and scale in every transform output, including orientation-only devices (Verse Grip, Wireless Verse Grip) which otherwise emit only rotation. Subsumes serialization/explicit_fields. Default: false.

session/…​

Session scheduler and command-pipeline limits.

KeyTypeConstraintsDescription
session/min_simulation_rate_hzintrange 20–500Minimum acceptable device simulation rate (Hz) before a warning fires.
session/commands/zoh_window_msint—Zero-order-hold window — suppress probes received within this window (ms).
session/commands/drop_warning_thresholdint—Number of dropped commands within the window before warning.
session/commands/drop_warning_window_msint—Sliding window size for counting dropped commands (ms).
session/commands/tick_on_empty_batchbool—Schedule a main_loop tick even when an entire WebSocket batch was dropped.