@rydr/game-sdk 8.14.0 → 8.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/protocol/identity.d.ts +39 -0
  2. package/dist/protocol/identity.d.ts.map +1 -1
  3. package/dist/protocol/version.d.ts +1 -1
  4. package/dist/protocol/version.js +1 -1
  5. package/dist/three/README.md +132 -4
  6. package/dist/three/controller/index.d.ts +2 -0
  7. package/dist/three/controller/index.d.ts.map +1 -1
  8. package/dist/three/controller/index.js +2 -0
  9. package/dist/three/controller/index.js.map +1 -1
  10. package/dist/three/controller/joycon-designs.d.ts +15 -1
  11. package/dist/three/controller/joycon-designs.d.ts.map +1 -1
  12. package/dist/three/controller/joycon-designs.js +301 -17
  13. package/dist/three/controller/joycon-designs.js.map +1 -1
  14. package/dist/three/controller/joycon-object.d.ts +216 -0
  15. package/dist/three/controller/joycon-object.d.ts.map +1 -0
  16. package/dist/three/controller/joycon-object.js +578 -0
  17. package/dist/three/controller/joycon-object.js.map +1 -0
  18. package/dist/three/controller/joycon-spec.d.ts +116 -4
  19. package/dist/three/controller/joycon-spec.d.ts.map +1 -1
  20. package/dist/three/controller/joycon-spec.js +128 -22
  21. package/dist/three/controller/joycon-spec.js.map +1 -1
  22. package/dist/three/controller/press-pulse.d.ts +89 -0
  23. package/dist/three/controller/press-pulse.d.ts.map +1 -0
  24. package/dist/three/controller/press-pulse.js +309 -0
  25. package/dist/three/controller/press-pulse.js.map +1 -0
  26. package/dist/three/controller/three-pad-renderer.d.ts +11 -22
  27. package/dist/three/controller/three-pad-renderer.d.ts.map +1 -1
  28. package/dist/three/controller/three-pad-renderer.js +49 -247
  29. package/dist/three/controller/three-pad-renderer.js.map +1 -1
  30. package/dist/three/rider/three-rider-rig.d.ts +12 -0
  31. package/dist/three/rider/three-rider-rig.d.ts.map +1 -1
  32. package/dist/three/rider/three-rider-rig.js +101 -6
  33. package/dist/three/rider/three-rider-rig.js.map +1 -1
  34. package/dist/ui/README.md +133 -7
  35. package/dist/ui/controller/controller-pad.d.ts +105 -2
  36. package/dist/ui/controller/controller-pad.d.ts.map +1 -1
  37. package/dist/ui/controller/controller-pad.js +347 -16
  38. package/dist/ui/controller/controller-pad.js.map +1 -1
  39. package/dist/ui/controller/renderer.d.ts +13 -0
  40. package/dist/ui/controller/renderer.d.ts.map +1 -1
  41. package/dist/ui/controller/renderer.js.map +1 -1
  42. package/dist/ui/controller/styles.js +50 -1
  43. package/dist/ui/controller/styles.js.map +1 -1
  44. package/dist/ui/hud-placement.d.ts +81 -0
  45. package/dist/ui/hud-placement.d.ts.map +1 -0
  46. package/dist/ui/hud-placement.js +74 -0
  47. package/dist/ui/hud-placement.js.map +1 -0
  48. package/dist/ui/index.d.ts +1 -0
  49. package/dist/ui/index.d.ts.map +1 -1
  50. package/dist/ui/index.js +1 -0
  51. package/dist/ui/index.js.map +1 -1
  52. package/dist/ui/rider-rig.d.ts +108 -10
  53. package/dist/ui/rider-rig.d.ts.map +1 -1
  54. package/dist/ui/rider-rig.js +299 -48
  55. package/dist/ui/rider-rig.js.map +1 -1
  56. package/package.json +4 -2
@@ -11,6 +11,8 @@
11
11
  * be read from across a room, which is the actual use case.
12
12
  * {@link buildHoloJoycon} "Holo" — translucent shell with lit edges and emissive controls, in
13
13
  * the SDK's own accent language. Reads as UI rather than as an object.
14
+ * {@link buildNoirJoycon} "Noir" — "Toy" repainted: both shells black, white keys with dark
15
+ * lettering, black shoulders with light lettering.
14
16
  *
15
17
  * Each returns a `JoyconBuild`: the group to add to a scene, plus the per-control nodes a driver would
16
18
  * later need, plus everything to dispose. None of them is wired to input yet — that comes once one is
@@ -174,6 +176,158 @@ function domedButton(r, rise, segments = 24) {
174
176
  geo.rotateX(Math.PI / 2);
175
177
  return geo;
176
178
  }
179
+ /**
180
+ * ONE KEY of the d-pad cross — the PS5 shape, not the Joy-Con's round pip.
181
+ *
182
+ * Four of these make the cross, and they stay four separate meshes: the driver lights `dpadUp` on its
183
+ * own, and `partRect()` projects each key's own bounding box to hang a leader line off. A single
184
+ * plus-shaped plate would read the same from a distance and break both.
185
+ *
186
+ * ## The shape, and which way round it goes
187
+ *
188
+ * POINTED TOWARDS THE CENTRE of the cross, widening outwards into a rounded rectangle. That direction
189
+ * matters and is easy to get backwards — the first pass built it the other way up, as an arrowhead
190
+ * with its tip pointing outwards, which is a different object altogether. On a DualSense the four keys
191
+ * converge to points at the hub and present a broad rounded end under the thumb; the engraved arrow
192
+ * points outwards, but the KEY does not.
193
+ *
194
+ * It buys something real, too: a key that is narrow where the four meet can be much longer before its
195
+ * neighbours collide, so the cross can be both tighter at the hub and larger overall.
196
+ *
197
+ * Authored pointing at +y — tip at −y, rounded end at +y — and centred on its own middle, so
198
+ * `place()` drops it on a face position and a rotation about z aims it.
199
+ */
200
+ function dpadKey(length, width, rise, roundFrac, taperFrac) {
201
+ const b = Math.max(1e-4, Math.min(rise * 0.3, width * 0.12));
202
+ // The outline, counter-clockwise from the inner tip. `taper` is how much of the length the pointed
203
+ // section takes; past it the sides run parallel to the rounded outer end.
204
+ const taper = Math.min(Math.max(taperFrac, 0.05), 0.95) * length;
205
+ const yTip = -length / 2;
206
+ const yShoulder = yTip + taper;
207
+ const yEnd = length / 2;
208
+ const outline = [
209
+ [0, yTip],
210
+ [width / 2, yShoulder],
211
+ [width / 2, yEnd],
212
+ [-width / 2, yEnd],
213
+ [-width / 2, yShoulder],
214
+ ];
215
+ // Per-vertex rounding. The outer end is the one that reads — it is the part under the thumb — so it
216
+ // gets `roundFrac`; the shoulders get less, and the tip least, or the point stops being a point.
217
+ const radii = [width * roundFrac * 0.3, width * roundFrac * 0.55, width * roundFrac, width * roundFrac, width * roundFrac * 0.55];
218
+ // ⚠️ Same trap as `roundedBox`: the bevel GROWS the profile on every side, so the outline has to be
219
+ // shrunk by `b` first or the key comes out bigger than asked for. A triangle could be inset by
220
+ // scaling about its incentre; a five-sided outline cannot, so this offsets each EDGE inwards by `b`
221
+ // along its normal and re-intersects consecutive edges — exact for any convex outline.
222
+ const n = outline.length;
223
+ const inset = [];
224
+ for (let i = 0; i < n; i++) {
225
+ const lineOf = (a, c) => {
226
+ const len = Math.hypot(c[0] - a[0], c[1] - a[1]);
227
+ const d = [(c[0] - a[0]) / len, (c[1] - a[1]) / len];
228
+ // Interior is to the LEFT of every edge on a counter-clockwise outline.
229
+ const nrm = [-d[1], d[0]];
230
+ return { p: [a[0] + nrm[0] * b, a[1] + nrm[1] * b], d };
231
+ };
232
+ const e0 = lineOf(outline[(i + n - 1) % n], outline[i]);
233
+ const e1 = lineOf(outline[i], outline[(i + 1) % n]);
234
+ const det = e0.d[0] * -e1.d[1] - e0.d[1] * -e1.d[0];
235
+ if (Math.abs(det) < 1e-9) {
236
+ inset.push(e1.p); // collinear edges: the offset point is already the answer
237
+ continue;
238
+ }
239
+ const rx = e1.p[0] - e0.p[0];
240
+ const ry = e1.p[1] - e0.p[1];
241
+ const t = (rx * -e1.d[1] - ry * -e1.d[0]) / det;
242
+ inset.push([e0.p[0] + e0.d[0] * t, e0.p[1] + e0.d[1] * t]);
243
+ }
244
+ const shape = roundedPolygon(inset, radii.map((r) => Math.max(1e-4, r - b)));
245
+ const geo = new THREE.ExtrudeGeometry(shape, {
246
+ depth: Math.max(1e-4, rise - b * 2),
247
+ bevelEnabled: true,
248
+ bevelThickness: b,
249
+ bevelSize: b,
250
+ bevelSegments: 4,
251
+ curveSegments: 10,
252
+ });
253
+ // The bevel starts at z = −b; lift so the key's base sits exactly on the face, like `domedButton`'s.
254
+ geo.translate(0, 0, b);
255
+ // Recentre on the key's OWN bounding box, in x/y only.
256
+ //
257
+ // Rounding does not treat the corners alike: the tip is a sharp corner, so a given radius eats much
258
+ // further back along the axis there than it does at the blunt outer ones. The shape therefore comes
259
+ // out of the builder sitting off-centre, which pushed each key towards the middle of the cross —
260
+ // enough, before this, for opposite keys to interpenetrate. Recentring makes the key honestly
261
+ // centred on its face position, so the only thing deciding whether the four clash is their spacing
262
+ // against their size, which is what the tuning sliders control.
263
+ geo.computeBoundingBox();
264
+ const bb = geo.boundingBox;
265
+ geo.translate(-(bb.min.x + bb.max.x) / 2, -(bb.min.y + bb.max.y) / 2, 0);
266
+ return geo;
267
+ }
268
+ /**
269
+ * A closed outline with a rounding radius PER VERTEX.
270
+ *
271
+ * One radius for the whole shape is not enough here: the d-pad key wants a generous round on the end
272
+ * under the thumb and almost none on its point, and a single value cannot say both.
273
+ *
274
+ * Each corner is cut back along both of its edges by its radius, then curved through the corner
275
+ * itself. The cut is clamped to half of each adjacent edge so neighbouring corners cannot eat into one
276
+ * another and cross the outline over itself.
277
+ */
278
+ function roundedPolygon(pts, radii) {
279
+ const n = pts.length;
280
+ const dist = (p, q) => Math.hypot(p[0] - q[0], p[1] - q[1]);
281
+ const shape = new THREE.Shape();
282
+ for (let i = 0; i < n; i++) {
283
+ const cur = pts[i];
284
+ const prev = pts[(i + n - 1) % n];
285
+ const next = pts[(i + 1) % n];
286
+ const rr = Math.min(radii[i] ?? 0, dist(cur, prev) / 2, dist(cur, next) / 2);
287
+ const towards = (to) => {
288
+ const d = dist(cur, to);
289
+ if (d < 1e-9)
290
+ return cur;
291
+ return [cur[0] + ((to[0] - cur[0]) / d) * rr, cur[1] + ((to[1] - cur[1]) / d) * rr];
292
+ };
293
+ const from = towards(prev);
294
+ const to = towards(next);
295
+ if (i === 0)
296
+ shape.moveTo(from[0], from[1]);
297
+ else
298
+ shape.lineTo(from[0], from[1]);
299
+ shape.quadraticCurveTo(cur[0], cur[1], to[0], to[1]);
300
+ }
301
+ shape.closePath();
302
+ return shape;
303
+ }
304
+ /**
305
+ * THE LITTLE ARROW ENGRAVED ON A D-PAD KEY.
306
+ *
307
+ * A plain triangle, pointing the way its key does. It is what actually names the direction: the key's
308
+ * shape says "this is the d-pad", the arrow says "this one is up". The right half's keys carry letters
309
+ * for the same reason — this is the d-pad's equivalent, and the one mark on the hardware's cross.
310
+ *
311
+ * Drawn as flat geometry rather than through {@link glyphPlane}: a triangle needs no font and no
312
+ * canvas, so there is nothing to rasterise and nothing to look soft when the pad is scaled up.
313
+ */
314
+ function dpadGlyph(size, mat, track) {
315
+ const w = size / 2;
316
+ const h = size * 0.86; // an equilateral-ish triangle reads better here than a tall thin one
317
+ const shape = new THREE.Shape();
318
+ shape.moveTo(0, h / 2);
319
+ shape.lineTo(w, -h / 2);
320
+ shape.lineTo(-w, -h / 2);
321
+ shape.closePath();
322
+ return new THREE.Mesh(track(new THREE.ShapeGeometry(shape)), mat);
323
+ }
324
+ /** Which way each direction key points, radians about z. The shape is authored pointing UP. */
325
+ const DPAD_AIM = {
326
+ dpadUp: 0,
327
+ dpadRight: -Math.PI / 2,
328
+ dpadDown: Math.PI,
329
+ dpadLeft: Math.PI / 2,
330
+ };
177
331
  /**
178
332
  * Minimal geometry merge — enough for the handful of two-part shapes here.
179
333
  *
@@ -404,19 +558,61 @@ function buildPair(skin) {
404
558
  /** Look a control up on its half's face map. They are mutable now (the showcase can drag them). */
405
559
  const face = (k) => (side === "l" ? LEFT_FACE : RIGHT_FACE)[k] ?? { u: 0.5, v: 0.5 };
406
560
  const stickPos = face("stick");
561
+ // The LEFT half's four directions are arrow keys, the RIGHT half's four faces are round pips. They
562
+ // used to share one list of round buttons, which is precisely why the two halves read alike.
407
563
  const round = side === "l"
408
- ? [
409
- ["dpadUp", face("dpadUp"), SIZES.dpadR],
410
- ["dpadDown", face("dpadDown"), SIZES.dpadR],
411
- ["dpadLeft", face("dpadLeft"), SIZES.dpadR],
412
- ["dpadRight", face("dpadRight"), SIZES.dpadR],
413
- ]
564
+ ? []
414
565
  : [
415
566
  ["faceTop", face("faceTop"), SIZES.faceR],
416
567
  ["faceRight", face("faceRight"), SIZES.faceR],
417
568
  ["faceBottom", face("faceBottom"), SIZES.faceR],
418
569
  ["faceLeft", face("faceLeft"), SIZES.faceR],
419
570
  ];
571
+ if (side === "l") {
572
+ const DIRECTIONS = ["dpadUp", "dpadRight", "dpadDown", "dpadLeft"];
573
+ // THE CROSS SPREADS WITH ITS KEYS.
574
+ //
575
+ // `buttonScale` grows every key, and the d-pad is the one cluster whose keys meet: scale them
576
+ // where they stand and the four collide almost immediately, because their points already nearly
577
+ // touch at the hub. So the four PLACEMENTS scale too, about the cluster's own centre — the cross
578
+ // grows as one object and the hub gap stays proportional, instead of closing up.
579
+ //
580
+ // It scales the OFFSET from the centre, never the centre itself, so wherever the four have been
581
+ // placed by hand is respected, and at the default scale of 1 this changes nothing at all.
582
+ // One material for all four arrows: nothing paints them, so unlike the keys themselves they do
583
+ // not each need their own instance.
584
+ const glyphMat = track(new THREE.MeshBasicMaterial({ color: new THREE.Color(skin.ink ?? "#eaf2ff"), depthWrite: false }));
585
+ const centre = DIRECTIONS.reduce((acc, k) => {
586
+ const p = face(k);
587
+ return { u: acc.u + p.u / DIRECTIONS.length, v: acc.v + p.v / DIRECTIONS.length };
588
+ }, { u: 0, v: 0 });
589
+ for (const key of DIRECTIONS) {
590
+ const geo = track(dpadKey(SIZES.dpadKeyLength * sz, SIZES.dpadKeyWidth * sz, rise, TUNING.dpadKeyRound, TUNING.dpadKeyTaper));
591
+ const mesh = new THREE.Mesh(geo, own(skin.button()));
592
+ const p = face(key);
593
+ place(mesh, shellX, {
594
+ u: centre.u + (p.u - centre.u) * TUNING.buttonScale,
595
+ v: centre.v + (p.v - centre.v) * TUNING.buttonScale,
596
+ }, frontZ());
597
+ // Aim the key. The geometry is authored pointing outwards, so only this line differs per key.
598
+ mesh.rotation.z = DPAD_AIM[key];
599
+ group.add(mesh);
600
+ controls.set(key, mesh);
601
+ // The engraved arrow, as a CHILD of the key.
602
+ //
603
+ // Being a child is the point: it inherits the key's aim, so the arrow never has to be rotated
604
+ // separately, and it inherits the key's press travel, so the mark sinks WITH the key instead
605
+ // of floating where the key used to be. The right half's letters predate this and are still
606
+ // siblings; they do not move, which is the bug this avoids.
607
+ if (TUNING.dpadGlyphSize > 0) {
608
+ geo.computeBoundingBox();
609
+ const bb = geo.boundingBox;
610
+ const arrow = dpadGlyph(SIZES.dpadKeyWidth * sz * TUNING.dpadGlyphSize, glyphMat, track);
611
+ arrow.position.set(0, (bb.max.y - bb.min.y) * TUNING.dpadGlyphNudge, bb.max.z + rise * 0.02 + 0.002);
612
+ mesh.add(arrow);
613
+ }
614
+ }
615
+ }
420
616
  /** What is printed on each key, straight from the flat layout so the two never disagree. */
421
617
  const FACE_GLYPH = {
422
618
  faceTop: JOYCON_LAYOUT.face.top.glyph,
@@ -430,13 +626,15 @@ function buildPair(skin) {
430
626
  place(mesh, shellX, pos, frontZ());
431
627
  group.add(mesh);
432
628
  controls.set(key, mesh);
433
- // The d-pad carries no lettering — the arms are too small at this scale and the arrows are the
434
- // same on every device. Same rule the flat pad follows.
629
+ // Only the right half's diamond is lettered. The d-pad has no glyphs at all — its keys are
630
+ // arrows, so the shape already says which direction each one is.
435
631
  const g = FACE_GLYPH[key];
436
632
  if (g) {
437
633
  const label = glyphPlane(g, r * sz * 1.9, skin.ink ?? "#eaf2ff", track);
438
- label.position.set(mesh.position.x, mesh.position.y, mesh.position.z + rise + 0.004);
439
- group.add(label);
634
+ // Parented to the KEY, not to the shell: the letter is PRINTED on the key, so it has to ride
635
+ // it down when it is pressed. As a sibling it stayed put and detached itself mid-press.
636
+ label.position.set(0, 0, rise + 0.004);
637
+ mesh.add(label);
440
638
  }
441
639
  }
442
640
  // System buttons: `−` / `+` and Home. Flatter and smaller — they are on the hardware too.
@@ -491,6 +689,9 @@ function buildPair(skin) {
491
689
  const innerX = (side === "l" ? 1 : -1) * half;
492
690
  return Math.min(arc(Math.abs(x - -innerX), SILHOUETTE.outerTopR), arc(Math.abs(x - innerX), SILHOUETTE.innerTopR));
493
691
  };
692
+ /** The two shoulder keys, kept so their lettering can be parented to them below. */
693
+ let bumperMesh;
694
+ let triggerMesh;
494
695
  // ── the shoulder row ─────────────────────────────────────────────────────────────────────────
495
696
  // Verbatim geometry, so there is nothing to place: the triangles already carry their position on
496
697
  // the shell. Only the mirror for the right-hand half is applied.
@@ -509,6 +710,7 @@ function buildPair(skin) {
509
710
  mesh.position.set(shellX, W * (TUNING.shoulderRaise + TUNING.shoulderLift), W * TUNING.shoulderLift * 0.4);
510
711
  group.add(mesh);
511
712
  controls.set(side === "l" ? "lb" : "rb", mesh);
713
+ bumperMesh = mesh;
512
714
  }
513
715
  // ZL / ZR: generated to the measured footprint — see crownPadGeometry for why it is not copied.
514
716
  {
@@ -521,19 +723,35 @@ function buildPair(skin) {
521
723
  mesh.position.set(shellX, W * (TUNING.shoulderRaise + TUNING.shoulderLift), W * TUNING.shoulderLift * 0.4);
522
724
  group.add(mesh);
523
725
  controls.set(side === "l" ? "lt" : "rt", mesh);
726
+ triggerMesh = mesh;
524
727
  }
525
728
  // Shoulder lettering: L / R in front, ZL / ZR behind. Laid flat on the crown, facing up, since
526
729
  // that is the face you actually see once the pad is tilted.
527
- for (const [text, depthFrac, riseAt] of [
528
- [side === "l" ? "L" : "R", 0.3, W * 0.03],
529
- [side === "l" ? JOYCON_LAYOUT.triggers.l.glyph : JOYCON_LAYOUT.triggers.r.glyph, 0.7, W * 0.075],
730
+ //
731
+ // Parented to its KEY, and positioned from that key's own bounding box.
732
+ //
733
+ // It used to be a sibling placed by a SECOND copy of the crown maths — its own guess at how high
734
+ // the crown is and how far back the key sits. The two drifted: the letter sat off-centre on the key
735
+ // and BELOW its top face, so the key clipped through its own lettering. Asking the key where its
736
+ // top is cannot drift, and as a child the letter also rides the key DOWN when it is pressed, which
737
+ // a sibling could never do.
738
+ for (const [text, key] of [
739
+ [side === "l" ? "L" : "R", bumperMesh],
740
+ [side === "l" ? JOYCON_LAYOUT.triggers.l.glyph : JOYCON_LAYOUT.triggers.r.glyph, triggerMesh],
530
741
  ]) {
531
- if (!text)
742
+ if (!text || !key)
743
+ continue;
744
+ const keyGeo = key.geometry;
745
+ if (!keyGeo.boundingBox)
746
+ keyGeo.computeBoundingBox();
747
+ const b = keyGeo.boundingBox;
748
+ if (!b)
532
749
  continue;
533
- const label = glyphPlane(text, W * 0.2, skin.ink ?? "#eaf2ff", track);
750
+ const label = glyphPlane(text, W * 0.2, skin.shoulderInk ?? skin.ink ?? "#eaf2ff", track);
534
751
  label.rotation.x = -Math.PI / 2;
535
- label.position.set(shellX, crownY(0) + riseAt + W * TUNING.shoulderRaise, frontZ() - depthFrac * DEPTH_TOP);
536
- group.add(label);
752
+ // Centred across the key's width and depth, a hair above the crown of its domed top face.
753
+ label.position.set((b.min.x + b.max.x) / 2, b.max.y + W * 0.004, (b.min.z + b.max.z) / 2);
754
+ key.add(label);
537
755
  }
538
756
  }
539
757
  skin.decorate?.(group, track);
@@ -586,6 +804,48 @@ export function buildToyJoycon() {
586
804
  build.disposables.push(shellL, shellR, btn, sys, post, cap, sh);
587
805
  return build;
588
806
  }
807
+ // ── design 4 · "Noir" ─────────────────────────────────────────────────────────────────────────────
808
+ /**
809
+ * "Noir" — {@link buildToyJoycon}'s proportions, in black and white.
810
+ *
811
+ * Same chunky volumes, same oversized high-relief controls, same flat matte surfaces: everything that
812
+ * makes the toy direction readable at two metres is kept, and ONLY the palette changes. Both shells go
813
+ * black, the keys go white, and the shoulder row goes black again.
814
+ *
815
+ * Which means the pad carries lettering on two opposite backgrounds at once — dark letters on the white
816
+ * face keys, light letters on the black shoulders — and that is the whole reason {@link Skin.shoulderInk}
817
+ * exists. With a single ink one of the two sets vanishes into what it is printed on.
818
+ */
819
+ export function buildNoirJoycon() {
820
+ const flat = (c) => new THREE.MeshStandardMaterial({ color: c, roughness: 0.92, metalness: 0 });
821
+ // Not pure black: a 0x000000 shell takes no shading at all, so every face reads the same and the
822
+ // volume disappears. A very dark grey still separates the crown from the front under any light.
823
+ const shell = flat(0x14161a);
824
+ const btn = flat(0xf7f9fc);
825
+ const sys = flat(0xe2e7ef);
826
+ const post = flat(0x0e1013);
827
+ const cap = flat(0xf7f9fc);
828
+ const sh = flat(0x17191e);
829
+ const build = buildPair({
830
+ // Both halves the same: the red/blue split is what says "Joy-Con", and dropping it is the point of
831
+ // this direction — it reads as one black pad rather than as a pair of coloured ones.
832
+ shell: () => shell,
833
+ button: () => btn,
834
+ system: () => sys,
835
+ stickPost: () => post,
836
+ stickCap: () => cap,
837
+ shoulder: () => sh,
838
+ // The toy direction's proportions, unchanged — this is a repaint, not a new shape.
839
+ riseScale: 2.4,
840
+ sizeScale: 1.28,
841
+ /** Near-black on the white keys. */
842
+ ink: "#15181d",
843
+ /** ...and near-white on the black shoulders. */
844
+ shoulderInk: "#f7f9fc",
845
+ });
846
+ build.disposables.push(shell, btn, sys, post, cap, sh);
847
+ return build;
848
+ }
589
849
  // ── design 3 · "Holo" ─────────────────────────────────────────────────────────────────────────────
590
850
  const ACCENT = 0x38bdf8;
591
851
  export function buildHoloJoycon() {
@@ -696,5 +956,29 @@ export const JOYCON_DESIGNS = [
696
956
  scene.add(r);
697
957
  },
698
958
  },
959
+ {
960
+ id: "noir",
961
+ name: "Noir",
962
+ note: "« Toy » repeint en noir et blanc : mêmes volumes épais et mêmes commandes surdimensionnées, " +
963
+ "mais les deux coques en noir, les boutons en blanc à texte sombre, et la rangée des gâchettes " +
964
+ "en noir à texte clair.",
965
+ backdrop: "radial-gradient(circle at 50% 35%, #2a2d33 0%, #08090b 70%)",
966
+ build: buildNoirJoycon,
967
+ light(scene) {
968
+ // Brighter and more directional than "Toy"'s rig, and deliberately so: a near-black shell
969
+ // returns very little light, so the flat generous lighting that suits a coloured pad leaves this
970
+ // one a silhouette. The key light does the shaping, and a rim behind separates the shell from a
971
+ // backdrop that is nearly as dark as it is.
972
+ scene.add(new THREE.AmbientLight(0xffffff, 0.38));
973
+ const k = new THREE.DirectionalLight(0xffffff, 1.05);
974
+ k.position.set(-1.6, 2.8, 3.2);
975
+ scene.add(k);
976
+ const f = new THREE.HemisphereLight(0xe6edff, 0x2a2e36, 0.5);
977
+ scene.add(f);
978
+ const r = new THREE.DirectionalLight(0xffffff, 0.5);
979
+ r.position.set(0.6, 1.2, -2.8);
980
+ scene.add(r);
981
+ },
982
+ },
699
983
  ];
700
984
  //# sourceMappingURL=joycon-designs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"joycon-designs.js","sourceRoot":"","sources":["../../../src/three/controller/joycon-designs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"joycon-designs.js","sourceRoot":"","sources":["../../../src/three/controller/joycon-designs.ts"],"names":[],"mappings":"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"}