From 41f9de93aa7b27e6df8a17430620c0628877624b Mon Sep 17 00:00:00 2001 From: Pete Gordon Date: Sun, 24 May 2026 17:51:39 -0400 Subject: [PATCH] feat(steam-controller): enable body color theming on all 29 split meshes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bodyColorMeshes was [] so setBodyColor() had nothing to recolor. The Steam Controller is a single-color shell, so wire every painted region (buttons, dpad, sticks, triggers, trackpads, back paddles, system buttons) plus the residual body mesh into bodyColorMeshes. Per-press emissive glow still animates on top because the visualizer drives glow via material.emissive — independent from material.color. Move any individual region to accentColorMeshes later if it should take a distinct theme color. Closes #13. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../visualizer/src/controller-profiles.js | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/visualizer/src/controller-profiles.js b/packages/visualizer/src/controller-profiles.js index 2f3b47d..11048f2 100644 --- a/packages/visualizer/src/controller-profiles.js +++ b/packages/visualizer/src/controller-profiles.js @@ -326,7 +326,25 @@ export const PROFILES = { // 'body' (the residual mesh after all regions are extracted) so // pressing a button doesn't drag the whole controller along. bodyMeshes: ['body'], - bodyColorMeshes: [], + // Every painted region (buttons, sticks, triggers, dpad, trackpads, + // back paddles, system buttons) PLUS the residual shell — the + // Steam Controller is single-color, so all 29 split meshes share + // the body theme color. Per-press emissive glow still animates on + // top because the visualizer drives glow via material.emissive, + // not material.color. Move any name to accentColorMeshes later to + // give that region a distinct theme color. + bodyColorMeshes: [ + 'body', + 'A', 'B', 'X', 'Y', + 'Bumper L2', 'Bumper R2', + 'Trigger L1', 'Trigger R1', + 'view', 'menu', 'steam', 'qucick access', + 'joystick Left', 'joystick Left cap', 'joystick Left top button', + 'joystick Right', 'joystick Right cap', 'joystick Right Top Button', + 'dpad_up', 'dpad_down', 'dpad_left', 'dpad_right', + 'trackpad left', 'trackpad right', + 'L4', 'L5', 'R4', 'R5', + ], accentColorMeshes: [], defaultBodyColor: '#ffffff', defaultAccentColor: '#ffffff',