Skip to content

Releases: project-SIMPLE/simple.webplatform

Webplatform v3.0 - Guillaume

22 Apr 08:20
de1ac2b

Choose a tag to compare

Management view Streaming view
Management view Streaming view

Changelog

New look & feel

  • Refreshed UI with new fonts, colors, and visual assets throughout the platform
  • Consistent button sizes and layouts across all screens
  • Animated buttons in the simulation selection and management views
  • Colored borders on headset streams to easily identify which headset is which
  • New folder icon to distinguish sub-projects

Headset setup is now automatic

  • The platform can now automatically install required apps (auto-adb, Oculus ADB) on connected headsets — no manual setup
    needed
  • Use a custom android application to keep ADB Wireless active all the time
  • Headset power settings are now configured automatically (4-hour auto-off)

UPS power management

  • The platform now monitors your UPS (APC Back-UPS BX2200MI) and will automatically shut down all headsets after 3 hours or
    on power events

Better video streaming

  • Significantly improved stream quality and performance
  • Video now decodes in a background thread, reducing UI lag
  • Stream rotation is now correct (no longer tilted at 25°)
  • Streams restart automatically when a new browser tab connects
  • Fixed streaming on Safari

Bug fixes

  • Disconnected headsets are now properly grayed out in the interface
  • All players are correctly disconnected when stopping an experiment
  • Fixed the stop button not appearing in the simulation manager
  • Fixed the platform crashing when no VU is found in the configuration (Gamaless mode now clearly indicated)

For developers

ADB & Headset Management

  • Refactored AdbManager into a proper manager + new HeadsetSetup class handling all device checks and application
    installation
  • Auto-install of auto-adb and Oculus ADB tools on headsets
  • Added installApk() support for future self-healing headset configuration
  • OVR preferences and power settings (4-hour auto-off) now configurable from the platform
  • System/secure settings exposed for headset setup
  • Early detection of device → offline transitions in AdbManager

UPS Power Control

  • New UpsManager with polling, reconnection logic, and graceful shutdown
  • Reverse-engineered communication protocol for the APC Back-UPS BX2200MI
  • Automatic 3-hour session shutdown timer integrated with UPS state
  • Added shutdownAllHeadsets() on the AdbManager

Video Streaming (Scrcpy)

  • Migrated video decoding to WebCodecs API (replacing previous approach)
  • Moved WebCodecs decoder to a Web Worker for better performance
  • Added backpressure handling to keep video stream clean and reduce artifacts
  • Bumped Scrcpy to v3.1 and yume-chan libs to v1.0.0 (stream rotation now flat)
  • Fixed bitrate: was wrongly set to 200bps instead of 8Mbps
  • Fallback to MessagePort when ReadableStream transfer is unsupported (Safari fix)
  • Streams now restart for every newly connecting client
  • ReadableStream and decoder lifecycle management improved

Networking & WebSockets

  • Migrated WebSocket layer to µWebSockets.js (faster, lighter, better payload compression)
  • Added multicast DNS (mDNS) support — connect via simple.local: instead of static IPs
  • Per-message compression enabled for player connections
  • Unified sendMessageByWs() function in Monitor for cleaner message handling
  • Fixed wsID forwarding in addEveryPlayer

Player Management

  • Migrated PlayerManager to a Map<id, player> structure
  • Fixed player disconnect/reconnect edge cases (ghost players when closing a simulation)
  • Properly disconnect all players when stopping an experiment
  • Fixed player ID mismatch between websocket ID and in-game Unity ID

Gamaless Mode

  • Better handling of the GAMALESS mode in both backend (verbose warnings) and frontend (visual indicator)
  • Prevents crashes when no VU is found in the configuration

Scanning & Setup Scripts

  • scan_and_connect script reworked: faster scan (~2s vs 10s), verbose flag, better regex, admin-mode speedup
  • PowerShell equivalent script added for Windows users
  • IP address sanitization added to prevent copy-paste artifacts from breaking the config

Cleanup & Refactoring

  • Removed the old demo package and unused components/pages
  • Removed React.FC usage across components
  • Reorganized dependencies (most devDependencies moved to prod)
  • Package version bumped to 3.0.0
  • Added GitHub issue templates

Generated changelog

Full Changelog: 2.5...v3.0

Webplatform V2.5

02 Feb 05:01

Choose a tag to compare

Webplatform V2.5 Pre-release
Pre-release

What's new ?

  • Features — user-facing

    • Automatic network/device discovery and more robust ADB connections: the platform now auto-scans the subnet, uses a more reliable connection flow (tango/AdbManager/evilscan), and avoids attempting USB streaming when inappropriate. (@RoiArthurB)
    • Better codec handling for streams: automatic codec selection with safer fallbacks (h265/h264), server-driven codec negotiation and client compatibility checks to reduce broken streams. (@RoiArthurB)
    • Improved streaming layout and rendering: overhauled streaming rendering to maximally and responsively size each headset stream; new dynamic layout logic for portrait/landscape and grid fitting. (@GuillaumeLeroy34)
    • More resilient scrcpy/video behavior: device-specific cropping, restart logic for crashed streams, and protections against duplicate/ghost streams so displays remain stable. (@RoiArthurB, @GuillaumeLeroy34)
    • Usability: clearer error message when GAMA is unreachable to help users quickly resolve the common “GAMA not started” problem. (@RoiArthurB)
  • Fixes — stability / bug fixes

    • Fixes to avoid duplicate canvases/streams and to prevent restarting streams that have already exited. (@RoiArthurB, @GuillaumeLeroy34)
    • Stream sizing and canvas dimension fixes (solo screen, grid sizing, responsive tests). (@GuillaumeLeroy34)
    • Improved removal/cleanup logic for disconnected ADB clients (moved to reliable hooks / list change handling). (@RoiArthurB)
    • Rotating error logs and Windows scrcpy path fixes. (@RoiArthurB)
  • Logging, observability and developer quality-of-life

    • Full logging rework: switched to logtape, added meta sinks and separate frontend logger; improved trace logs and categories to facilitate debugging. (@RoiArthurB, @GuillaumeLeroy34)
    • Several housekeeping commits: bumped libraries, updated tsconfig, reorganized backend, and cleaned many console.log leftovers by using the new logging pipeline. (@GuillaumeLeroy34, @RoiArthurB)
  • Chores / infra / security

    • Dependency bumps and maintenance: uWS/qs/express/vite/lodash bumps, various compatibility adjustments for newer Node versions. (@RoiArthurB, @GuillaumeLeroy34)
    • .env and configuration improvements: ENV_GAMALESS, ENV_SCRCPY_FORCE_H265, default app host set to wildcard to ease local demos. (@RoiArthurB)

Full Changelog: v2.0...2.5

Webplatform v2.0 - Tuan

10 Jan 02:59

Choose a tag to compare

image

This is the stable release from the webplatform (middleware + management panel) allowing to connect GAMA to Unity, and manage the first implementations of the SIMPLE project in school.

New Contributors

  • @nautuan Built the new management UI and reworked part of the application

Full Changelog: v1.0...v2.0

Middleware v1.0 - Léon

09 Aug 02:03

Choose a tag to compare

image

This is the stable release from the middleware allowing to connect GAMA to Unity, mainly scoping a development objective.

New Contributors

  • @leonsi7 Built all of this first prototype version

Full Changelog: https://github.com/project-SIMPLE/GamaServerMiddleware/commits/v1.0