Good day,
Just a suggestion for downloaders of your superb project;
The original code on line 98 in game.ts 'onAfterDeviceConnectedObservable' gives an error (with me).
My solution was changing onAfterDeviceConnectedObservable to onDeviceConnectedObservable.
Note: In the babylon.js devicesourcemanger there isn't a reference (anymore) to the onAfterDeviceConnectedObservable.
https://doc.babylonjs.com/typedoc/classes/babylon.devicesourcemanager
I'm really impressed by this project, thank you for sharing. Keep up the inspiration!