OpenValence Download

Getting started

Install Phosphor, try it on Neutrino, the built-in hub, then connect a real one. You do not need hardware for the first half.

Install

Pre-release builds for Windows, macOS and Linux are on Downloads.

To build from source instead: the Phosphor repo expects its siblings beside it in one folder: Valence, Nucleus, Kinetic and ButtplugIO on its valence branch. On Windows you need Rust (MSVC) and Node 22. Then, in the Phosphor folder:

npm ci
npm run build:app -- --bundles nsis

The steps for macOS, Linux, Flatpak and Android are in BUILD.md.

First launch

With no saved hub, Phosphor opens on the Hubs page. That page lists saved hubs, finds new ones and holds Neutrino, the built-in hub. From the second launch on, Phosphor reconnects to the last hub by default. The setting is Settings, Connection, "Reconnect to the last hub on launch", and it is on until you turn it off.

The sidebar has three sections. Machine and Valence fill in once a hub's catalog has loaded. Phosphor, the third, is always there.

Try Neutrino

Neutrino is the Nucleus hub firmware compiled to WebAssembly and run inside Phosphor. It has patterns, planning and telemetry like a real hub, and no motor, so it is a safe place to learn the app.

  1. Open Phosphor, then Hubs.
  2. In the Saved hubs list, find the last row, Neutrino, with a ν badge (hover it for "Virtual machine: real Nucleus firmware, emulated in the app") and the line "The hub as software".
  3. Press Connect. The line changes to Nucleus and a version, and Connect becomes Stop.
  4. Open Dash in the Machine section.
  5. Open the Generator page, pick a pattern and start it. The rail on the Dash follows it.
The Hubs page before connecting, with Neutrino, the built-in hub, listed under Saved hubs and the Find a hub controls below it.
The Hubs page before connecting.
  1. The Neutrino row, under Saved hubs.
  2. Connect starts it.
  3. Hubs, in the Phosphor part of the sidebar.
  4. Scan looks for machines on your network.
  5. The hub address field, for when Scan finds nothing.

Neutrino is never saved as a hub and never auto-connects. It boots homed. Any disconnect stops it, and its settings, presets and pairings persist between runs.

Layouts, plugins and the theme are saved in Phosphor, not on the machine, so anything you build while connected to Neutrino is already saved. To arrange the Dash, use the wrench next to the layout name in the sidebar.

Find a real machine

On the Hubs page, under Find a hub, press Scan. Scan sends a discovery probe on your local network (UDP port 22096) and waits 1.5 s. If any machine answers, you get a list. If none does, Scan falls back to a Bluetooth scan.

Each row shows the machine's name, its address, firmware version and when it was last seen. A row can carry marks: LAN or BLE for how it was found, needs setup for a machine with no Wi-Fi, and pairing open. Press Connect on the row.

If Scan finds nothing, type the address into the field under it, as host or host:port. The port is 82 when you leave it off. The field starts with the last address you dialed. A hub is saved once it has been live over Wi-Fi.

A machine with no Wi-Fi yet, or a new network to join, goes through Set up a machine. Pairing and access tiers are on Connecting.

The main screens

The Dash connected to Neutrino with a pattern running, showing the top strip with the position readout, the sidebar and the Telemetry and Pattern cards.
The Dash connected to Neutrino, with a pattern running.
  1. AUTH shows your access tier. Here it reads control.
  2. The planned position, in millimeters.
  3. The rail, across the machine's full travel.
  4. Halt stops the machine.
  5. Dash, the first page in the Machine section.

Machine

Dash is the home page you arrange. Below it are the pages the machine provides. Their names come from the Valence registry and typically include Generator, Motion, Limits, Hardware, System, Other and Setup. A page appears only if the machine offers settings in that category.

Valence

Pairing, Link and Log. Pairing handles access. Link shows the protocol view: traffic, channels and refusals. Log has tabs for the log, anomalies, safety events, the session, changes and Health.

Phosphor

Display (themes), Plugins, Hubs, Buttplug, Settings, Merge and About. Display folds into Settings in the app and is its own page on the hub-served page.

The top strip

The strip carries Home, Flip, Override, Pause and E-Stop, with the rail and the position numerals beside them. Override lets you jog across the full travel. Pause and E-Stop are always there, and E-Stop latches until you hold it for 3 s.