You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the Steam Controller 3D model is a single solid body (bodyMeshes: ['node_0']) sourced from Valve's CAD release. Buttons, sticks, dpad, and triggers don't visually animate on press — only whole-body gyro rotation works. The buttonMap, triggerMap, stickMap in controller-profiles.js → 'steam-controller' are all empty.
DualSense / Xbox / Switch Pro have separated per-button meshes in their GLBs so the visualizer can highlight + offset each mesh on press / tilt (see controller-overlay.js for how it animates them). The Steam Controller should get the same treatment.
Why
After landing #11 + #12 the Steam Controller works fully — sticks / triggers / buttons / d-pad all parse correctly, all 3 IMU axes track motion, lizard-mode is suppressed. The only thing missing for visual parity with the other controllers is per-button animation. The Button HUD shows button state (it has labels via hudLabels) but the 3D model stays static.
Acceptance criteria
GLB sourced or modeled with separated meshes: face buttons (A/B/X/Y), shoulders (LB/RB), triggers (LT/RT), dpad (up/down/left/right), sticks (L stick + R stick, each as base + ring + cap), trackpads (L/R), system buttons (View/Menu/Steam), back paddles (L4/L5/R4/R5)
What
Currently the Steam Controller 3D model is a single solid body (
bodyMeshes: ['node_0']) sourced from Valve's CAD release. Buttons, sticks, dpad, and triggers don't visually animate on press — only whole-body gyro rotation works. ThebuttonMap,triggerMap,stickMapincontroller-profiles.js → 'steam-controller'are all empty.DualSense / Xbox / Switch Pro have separated per-button meshes in their GLBs so the visualizer can highlight + offset each mesh on press / tilt (see
controller-overlay.jsfor how it animates them). The Steam Controller should get the same treatment.Why
After landing #11 + #12 the Steam Controller works fully — sticks / triggers / buttons / d-pad all parse correctly, all 3 IMU axes track motion, lizard-mode is suppressed. The only thing missing for visual parity with the other controllers is per-button animation. The Button HUD shows button state (it has labels via
hudLabels) but the 3D model stays static.Acceptance criteria
controller-profiles.js → 'steam-controller'updated:buttonMap,triggerMap,stickMap,bodyColorMeshes,accentColorMeshespopulatedOptions for sourcing the GLB
gitlab.steamos.cloud/SteamHardware/SteamController). Manual mesh splitting in Blender, ~3 hours. Best fidelity.See
docs/OPTIMIZING-GLB.mdfor the conversion + optimization pipeline.Refs
packages/visualizer/src/controller-profiles.js→'steam-controller'packages/visualizer/assets/controllers/STEAM_CONTROLLER_ATTRIBUTION.md(CC BY-NC-SA 4.0 attribution for any GLB derived from Valve's release)