Releases: project-SIMPLE/simple.webplatform
Releases · project-SIMPLE/simple.webplatform
Webplatform v3.0 - Guillaume
| 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
- Zero interaction one - https://github.com/project-SIMPLE/adb-auto-enable
- 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
- Single binary application by @RoiArthurB in #111
- Proper fix for the issue 112 by @RoiArthurB in #116
- Eslint check by @GuillaumeLeroy34 in #119
- Refactor: Per-device WebSocket streams to fix backpressure + cross-browser codec support by @RoiArthurB in #125
- Move WebCodecs decoder to Web Worker for better scrcpy video streaming performance by @RoiArthurB in #129
- chore: Better handle Gamaless by @RoiArthurB in #131
- [WIP] UPS control from the webplatform by @RoiArthurB in #135
- Fix scrcpy streams rendering on Safari using MessageChannel fallback by @RoiArthurB in #137
- Visual rework by @GuillaumeLeroy34 in #143
- Merge long development branch in main by @RoiArthurB in #144
- Migrate Auto ADB app from tpn to SIMPLE's fork one by @RoiArthurB in #148
Full Changelog: 2.5...v3.0
Webplatform V2.5
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
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
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



