Server rewrite #5

Open
opened 2026-04-05 17:53:28 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @loucass003 on 3/27/2026

Server features to implement

Config

  • Basic module to interface with config
  • Config profiles (user and settings)
  • Profile switching
  • Auto save

Device

  • Basic module / Holding the basic state
  • Calculate tps based on updates

Tracker

  • Basic module / Holding the basic state
  • Need to define how the to categorize trackers
  • Position data is set by feeder and driver
    • We have the source, but no stuff like are they trackers computed for steamvr or vmc
  • User can:
    • Assign a body part
    • Set the custom name of a tracker
    • Enable mag

Firmware Tool

  • Firmware tool can flash trackers through serial and ota
  • Unit testing

Serial

  • Scan for new ports
  • open connection for serial
  • open connection for flashing
  • support multiple connections at the same time
  • Platform support:
    • Windows
    • Linux
    • MacOS
    • Android
  • Unit testing

Height Calibration

  • Go through all the steps of the calibration
  • Can give the user height
  • Can give the user height to scaled proportions
  • Unit testing
    • Basic testing without actual data

HID (usb dongles)

  • Can detect dongles
  • Create device and trackers
  • Handles all the HID packets
  • Calculate packet loss
  • Platform support:
    • Windows
    • Linux
    • MacOS
    • Android

UDP Trackers

  • Can parse all UDP packets
  • Create device and trackers
  • Handles reconnection / timeouts
  • Handle out of order packets
  • Calculate ping
  • Calculate packet loss

Wi-Fi Provisioning

  • Can connect a tracker to the wifi
  • Handle all error cases
  • Handle retries
  • Handle detection of turned off trackers
  • Handle detection of unplugged trackers
  • Unit testing

Skeleton

  • Need to figure out a data structure

Solarxr

  • Can handle solarxr messages
  • WS support
  • File socket / named pipes support
  • Platform Support:
    • Windows
    • Linux
    • MacOS
  • Can initialize datafeeds
  • Can send RPC packets and listen to them
  • Unit testing

VRChat Config Warnings

  • Send vrc config warning status to solarxr
  • Can verify vrc data against recommended values
  • Handles reading config from:
    • Windows
    • Linux
    • MacOS

Tracking Checklist

  • Can mute steps and save to config
  • Handle all these steps
    • Network profile detection
    • Steamvr disconnected
    • Tracker error
    • Rest calibration
    • Full Reset
    • Mounting calibration
    • Feet mounting
    • Unassigned HMD
    • Stay Aligned
    • VRC settings

Scaled Proportions

  • Can calculate body proportions based on user height

OSC Router

  • TBD

VRC OSC

  • Send tracking data to VRC

VMC

  • Send data to vmc apps
  • Handle VRM models
  • Anchor hip
  • Tracking mirroring

BVH

  • Can record data
  • Can save to a file
  • Can create a file without prompt if folder is defined

Server Guards

Handle the following guards:

  • Can do mounting
  • Can do yaw reset
  • Can do height calibration
  • Reset can do mounting after 2min since last full reset

Autobone

  • TBD

Manual Proportions

  • User can set body proportion values
  • Skeleton updates accordingly
  • Body proportions are saved to user config

Taps

  • Taps are detected from trackers
  • Taps trigger the corresponding resets
  • Taps amounts / delay / enabled can be configured

Stay Aligned

  • can record rest poses
  • Can correct skeleton based on rest poses
  • Adjust trackers and Hide adjustments toggles

Keybinds

  • Can read key inputs:
    • Windows
    • Linux
    • MacOS
  • Trigger the corresponding resets
  • Handle GUI assignment

Driver

  • Basic reporting of trackers to the driver
  • Platform Support:
    • Windows
    • Linux
    • MacOS

Feeder

  • Collect tracker data and create devices / trackers to the server
  • Platform Support:
    • Windows
    • Linux
    • MacOS

SteamVR

  • Enabled trackers

Leg Tweaks

  • TBD

Skating correction

  • TBD

Filtering

  • Smoothing
  • Prediction
*Originally created by @loucass003 on 3/27/2026* # Server features to implement ### Config - [x] Basic module to interface with config - [x] Config profiles (user and settings) - [x] Profile switching - [x] Auto save ### Device - [x] Basic module / Holding the basic state - [x] Calculate tps based on updates ### Tracker - [x] Basic module / Holding the basic state - [ ] Need to define how the to categorize trackers - [ ] Position data is set by feeder and driver - We have the source, but no stuff like are they trackers computed for steamvr or vmc - [ ] User can: - [ ] Assign a body part - [ ] Set the custom name of a tracker - [ ] Enable mag ### Firmware Tool - [x] Firmware tool can flash trackers through serial and ota - [x] Unit testing ### Serial - [x] Scan for new ports - [x] open connection for serial - [x] open connection for flashing - [x] support multiple connections at the same time - [x] Platform support: - [ ] Windows - [x] Linux - [ ] MacOS - [ ] Android - [x] Unit testing ### Height Calibration - [x] Go through all the steps of the calibration - [x] Can give the user height - [ ] Can give the user height to scaled proportions - [x] Unit testing - [x] Basic testing without actual data ### HID (usb dongles) - [x] Can detect dongles - [x] Create device and trackers - [ ] Handles all the HID packets - [ ] Calculate packet loss - [x] Platform support: - [ ] Windows - [x] Linux - [ ] MacOS - [ ] Android ### UDP Trackers - [x] Can parse all UDP packets - [x] Create device and trackers - [x] Handles reconnection / timeouts - [x] Handle out of order packets - [x] Calculate ping - [ ] Calculate packet loss ### Wi-Fi Provisioning - [ ] Can connect a tracker to the wifi - [ ] Handle all error cases - [ ] Handle retries - [ ] Handle detection of turned off trackers - [ ] Handle detection of unplugged trackers - [ ] Unit testing ### Skeleton - [ ] Need to figure out a data structure ### Solarxr - [x] Can handle solarxr messages - [x] WS support - [x] File socket / named pipes support - [x] Platform Support: - [ ] Windows - [x] Linux - [ ] MacOS - [x] Can initialize datafeeds - [x] Can send RPC packets and listen to them - [ ] Unit testing ### VRChat Config Warnings - [x] Send vrc config warning status to solarxr - [x] Can verify vrc data against recommended values - [x] Handles reading config from: - [ ] Windows - [x] Linux - [ ] MacOS ### Tracking Checklist - [ ] Can mute steps and save to config - [ ] Handle all these steps - [ ] Network profile detection - [ ] Steamvr disconnected - [ ] Tracker error - [ ] Rest calibration - [ ] Full Reset - [ ] Mounting calibration - [ ] Feet mounting - [ ] Unassigned HMD - [ ] Stay Aligned - [ ] VRC settings ### Scaled Proportions - [ ] Can calculate body proportions based on user height ### OSC Router - [ ] TBD ### VRC OSC - [ ] Send tracking data to VRC ### VMC - [ ] Send data to vmc apps - [ ] Handle VRM models - [ ] Anchor hip - [ ] Tracking mirroring ### BVH - [ ] Can record data - [ ] Can save to a file - [ ] Can create a file without prompt if folder is defined ### Server Guards Handle the following guards: - [ ] Can do mounting - [ ] Can do yaw reset - [ ] Can do height calibration - [ ] Reset can do mounting after 2min since last full reset ### Autobone - [ ] TBD ### Manual Proportions - [ ] User can set body proportion values - [ ] Skeleton updates accordingly - [ ] Body proportions are saved to user config ### Taps - [ ] Taps are detected from trackers - [ ] Taps trigger the corresponding resets - [ ] Taps amounts / delay / enabled can be configured ### Stay Aligned - [ ] can record rest poses - [ ] Can correct skeleton based on rest poses - [ ] Adjust trackers and Hide adjustments toggles ### Keybinds - [ ] Can read key inputs: - [ ] Windows - [ ] Linux - [ ] MacOS - [ ] Trigger the corresponding resets - [ ] Handle GUI assignment ### Driver - [x] Basic reporting of trackers to the driver - [x] Platform Support: - [ ] Windows - [x] Linux - [ ] MacOS ### Feeder - [x] Collect tracker data and create devices / trackers to the server - [x] Platform Support: - [ ] Windows - [x] Linux - [ ] MacOS ### SteamVR - [ ] Enabled trackers ### Leg Tweaks - [ ] TBD ### Skating correction - [ ] TBD ### Filtering - [ ] Smoothing - [ ] Prediction
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/SlimeVR-Server#5