Skip to content

Server rewrite#1798

Draft
loucass003 wants to merge 117 commits into
mainfrom
server-rewrite
Draft

Server rewrite#1798
loucass003 wants to merge 117 commits into
mainfrom
server-rewrite

Conversation

@loucass003
Copy link
Copy Markdown
Member

@loucass003 loucass003 commented Mar 27, 2026

Full server rewite

Rewrite everything with kotlin (multiplatform) and coroutines.
Unit test the crap of the new server

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

@github-actions github-actions Bot added Area: Documentation Improvements or additions to documentation Area: Skeletal Model Deals with the model of the skeleton and its pose Area: Application Protocol Related to communication with apps like the GUI, overlay, games Area: Hardware Protocol Related to communication with hardware/software trackers Area: AutoBone The AutoBone feature Area: SteamVR Driver Related to the SteamVR Driver labels Mar 27, 2026
@github-actions github-actions Bot added Area: GUI Related to the GUI Area: Translation Improvements or additions to translations labels May 9, 2026
@github-actions github-actions Bot added the Area: Continuous Integration Automated testing and deployment label May 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: Application Protocol Related to communication with apps like the GUI, overlay, games Area: AutoBone The AutoBone feature Area: Continuous Integration Automated testing and deployment Area: Documentation Improvements or additions to documentation Area: GUI Related to the GUI Area: Hardware Protocol Related to communication with hardware/software trackers Area: Server Related to the server Area: Skeletal Model Deals with the model of the skeleton and its pose Area: SteamVR Driver Related to the SteamVR Driver Area: Translation Improvements or additions to translations Area: VMC Related to the VMC driver Area: VRCOSC Related to the VRChat OSC driver

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants