tosijs-3d 0.7.2 → 0.7.4

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 (153) hide show
  1. package/CHANGELOG.md +900 -0
  2. package/dist/b3d-aircraft.d.ts +14 -0
  3. package/dist/b3d-aircraft.d.ts.map +1 -1
  4. package/dist/b3d-aircraft.js +45 -0
  5. package/dist/b3d-aircraft.js.map +1 -1
  6. package/dist/b3d-ambient.d.ts +12 -0
  7. package/dist/b3d-ambient.d.ts.map +1 -1
  8. package/dist/b3d-ambient.js +83 -1
  9. package/dist/b3d-ambient.js.map +1 -1
  10. package/dist/b3d-biped.d.ts +290 -0
  11. package/dist/b3d-biped.d.ts.map +1 -1
  12. package/dist/b3d-biped.js +1366 -22
  13. package/dist/b3d-biped.js.map +1 -1
  14. package/dist/b3d-collisions.d.ts.map +1 -1
  15. package/dist/b3d-collisions.js +45 -7
  16. package/dist/b3d-collisions.js.map +1 -1
  17. package/dist/b3d-controllable.d.ts +50 -0
  18. package/dist/b3d-controllable.d.ts.map +1 -1
  19. package/dist/b3d-controllable.js +61 -0
  20. package/dist/b3d-controllable.js.map +1 -1
  21. package/dist/b3d-death.d.ts +26 -0
  22. package/dist/b3d-death.d.ts.map +1 -1
  23. package/dist/b3d-death.js +224 -2
  24. package/dist/b3d-death.js.map +1 -1
  25. package/dist/b3d-interactive.d.ts +80 -0
  26. package/dist/b3d-interactive.d.ts.map +1 -0
  27. package/dist/b3d-interactive.js +284 -0
  28. package/dist/b3d-interactive.js.map +1 -0
  29. package/dist/b3d-library.d.ts +39 -0
  30. package/dist/b3d-library.d.ts.map +1 -1
  31. package/dist/b3d-library.js +67 -0
  32. package/dist/b3d-library.js.map +1 -1
  33. package/dist/b3d-svg-plane.d.ts +35 -0
  34. package/dist/b3d-svg-plane.d.ts.map +1 -1
  35. package/dist/b3d-svg-plane.js +96 -8
  36. package/dist/b3d-svg-plane.js.map +1 -1
  37. package/dist/b3d-water.d.ts.map +1 -1
  38. package/dist/b3d-water.js +32 -6
  39. package/dist/b3d-water.js.map +1 -1
  40. package/dist/buoyancy.d.ts +90 -0
  41. package/dist/buoyancy.d.ts.map +1 -0
  42. package/dist/buoyancy.js +150 -0
  43. package/dist/buoyancy.js.map +1 -0
  44. package/dist/curve-field.d.ts +39 -0
  45. package/dist/curve-field.d.ts.map +1 -0
  46. package/dist/curve-field.js +491 -0
  47. package/dist/curve-field.js.map +1 -0
  48. package/dist/curve.d.ts +241 -0
  49. package/dist/curve.d.ts.map +1 -0
  50. package/dist/curve.js +559 -0
  51. package/dist/curve.js.map +1 -0
  52. package/dist/dialog-placement.d.ts +69 -7
  53. package/dist/dialog-placement.d.ts.map +1 -1
  54. package/dist/dialog-placement.js +90 -9
  55. package/dist/dialog-placement.js.map +1 -1
  56. package/dist/embed-font.d.ts +48 -0
  57. package/dist/embed-font.d.ts.map +1 -0
  58. package/dist/embed-font.js +135 -0
  59. package/dist/embed-font.js.map +1 -0
  60. package/dist/footprint-field.d.ts +30 -0
  61. package/dist/footprint-field.d.ts.map +1 -0
  62. package/dist/footprint-field.js +256 -0
  63. package/dist/footprint-field.js.map +1 -0
  64. package/dist/frame-panel.d.ts.map +1 -1
  65. package/dist/frame-panel.js +15 -12
  66. package/dist/frame-panel.js.map +1 -1
  67. package/dist/glb-manifest.d.ts +75 -0
  68. package/dist/glb-manifest.d.ts.map +1 -0
  69. package/dist/glb-manifest.js +198 -0
  70. package/dist/glb-manifest.js.map +1 -0
  71. package/dist/icon-data.d.ts.map +1 -1
  72. package/dist/icon-data.js +20 -1
  73. package/dist/icon-data.js.map +1 -1
  74. package/dist/index.d.ts +33 -4
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +38 -3
  77. package/dist/index.js.map +1 -1
  78. package/dist/interaction.d.ts +66 -0
  79. package/dist/interaction.d.ts.map +1 -0
  80. package/dist/interaction.js +117 -0
  81. package/dist/interaction.js.map +1 -0
  82. package/dist/interactive-behavior.d.ts +105 -0
  83. package/dist/interactive-behavior.d.ts.map +1 -0
  84. package/dist/interactive-behavior.js +253 -0
  85. package/dist/interactive-behavior.js.map +1 -0
  86. package/dist/key-layout.d.ts +70 -0
  87. package/dist/key-layout.d.ts.map +1 -1
  88. package/dist/key-layout.js +122 -0
  89. package/dist/key-layout.js.map +1 -1
  90. package/dist/keyboard-gamepad.d.ts.map +1 -1
  91. package/dist/keyboard-gamepad.js +19 -6
  92. package/dist/keyboard-gamepad.js.map +1 -1
  93. package/dist/keyboard.d.ts +100 -1
  94. package/dist/keyboard.d.ts.map +1 -1
  95. package/dist/keyboard.js +280 -35
  96. package/dist/keyboard.js.map +1 -1
  97. package/dist/mantle.d.ts +56 -0
  98. package/dist/mantle.d.ts.map +1 -0
  99. package/dist/mantle.js +115 -0
  100. package/dist/mantle.js.map +1 -0
  101. package/dist/popup-surface.d.ts +5 -1
  102. package/dist/popup-surface.d.ts.map +1 -1
  103. package/dist/popup-surface.js +181 -14
  104. package/dist/popup-surface.js.map +1 -1
  105. package/dist/surface.d.ts.map +1 -1
  106. package/dist/surface.js +111 -15
  107. package/dist/surface.js.map +1 -1
  108. package/dist/svg-icons.d.ts.map +1 -1
  109. package/dist/svg-icons.js +13 -1
  110. package/dist/svg-icons.js.map +1 -1
  111. package/dist/svg-texture.d.ts.map +1 -1
  112. package/dist/svg-texture.js +40 -1
  113. package/dist/svg-texture.js.map +1 -1
  114. package/dist/swim-aim.d.ts +78 -0
  115. package/dist/swim-aim.d.ts.map +1 -0
  116. package/dist/swim-aim.js +140 -0
  117. package/dist/swim-aim.js.map +1 -0
  118. package/dist/theme-editor.d.ts +41 -0
  119. package/dist/theme-editor.d.ts.map +1 -0
  120. package/dist/theme-editor.js +303 -0
  121. package/dist/theme-editor.js.map +1 -0
  122. package/dist/tosi-b3d.d.ts +24 -4
  123. package/dist/tosi-b3d.d.ts.map +1 -1
  124. package/dist/tosi-b3d.js +238 -37
  125. package/dist/tosi-b3d.js.map +1 -1
  126. package/dist/vector-field.d.ts +58 -0
  127. package/dist/vector-field.d.ts.map +1 -0
  128. package/dist/vector-field.js +321 -0
  129. package/dist/vector-field.js.map +1 -0
  130. package/dist/virtual-gamepad.d.ts.map +1 -1
  131. package/dist/virtual-gamepad.js +46 -9
  132. package/dist/virtual-gamepad.js.map +1 -1
  133. package/dist/w3d-theme.d.ts +115 -17
  134. package/dist/w3d-theme.d.ts.map +1 -1
  135. package/dist/w3d-theme.js +311 -0
  136. package/dist/w3d-theme.js.map +1 -1
  137. package/dist/water-normal.d.ts +26 -0
  138. package/dist/water-normal.d.ts.map +1 -0
  139. package/dist/water-normal.js +105 -0
  140. package/dist/water-normal.js.map +1 -0
  141. package/dist/widgets3d-layout.d.ts +58 -0
  142. package/dist/widgets3d-layout.d.ts.map +1 -1
  143. package/dist/widgets3d-layout.js +79 -1
  144. package/dist/widgets3d-layout.js.map +1 -1
  145. package/dist/widgets3d.d.ts +51 -2
  146. package/dist/widgets3d.d.ts.map +1 -1
  147. package/dist/widgets3d.js +418 -112
  148. package/dist/widgets3d.js.map +1 -1
  149. package/dist/wreck-fall.d.ts +86 -0
  150. package/dist/wreck-fall.d.ts.map +1 -0
  151. package/dist/wreck-fall.js +129 -0
  152. package/dist/wreck-fall.js.map +1 -0
  153. package/package.json +9 -6
@@ -399,7 +399,7 @@ const scene = b3d({ sceneCreated }, b3dLight({ intensity: 1 }), plane)
399
399
  /*{ "parent": "UI" }*/
400
400
  import * as BABYLON from '@babylonjs/core';
401
401
  import { AbstractMesh, isOff, markUiMesh, collidable, sceneDelta, } from './b3d-utils';
402
- import { gazeOffAxisDeg, gazeStep, newGazeState, bestCandidate, placementDistance, easeTo, } from './dialog-placement';
402
+ import { gazeOffAxisDeg, gazeStep, newGazeState, bestCandidate, placementDistance, facingYawDeg, easeTo, } from './dialog-placement';
403
403
  import { roundedRectGeometry } from './rounded-rect';
404
404
  /** The pointerId carried by pick-forwarded events — see the note at the dispatch. */
405
405
  const SYNTHETIC_POINTER_ID = 0x53b3;
@@ -407,6 +407,16 @@ import { SvgTexture } from './svg-texture';
407
407
  export class B3dSvgPlane extends AbstractMesh {
408
408
  static styleSpec = { ':host': { display: 'none' } };
409
409
  static initAttributes = {
410
+ /** Cast shadows onto the scene. Off by default — see `_meshName`. */
411
+ castShadow: false,
412
+ /**
413
+ * Take the world's shading. Off by default, so a panel reads the same
414
+ * whatever passes in front of the sun.
415
+ *
416
+ * Turn it on for UI that genuinely IS in the world — a cockpit instrument
417
+ * surface lit by the same sun as the dashboard around it.
418
+ */
419
+ receiveShadows: false,
410
420
  ...AbstractMesh.initAttributes,
411
421
  width: 1,
412
422
  height: 1,
@@ -481,7 +491,44 @@ export class B3dSvgPlane extends AbstractMesh {
481
491
  _gaze = newGazeState();
482
492
  _dialogObs = null;
483
493
  _dialogTarget = null;
494
+ _offOrigin = null;
484
495
  _installWorldDialog(scene) {
496
+ /*
497
+ A WORLD-PLACED PANEL HOLDS A WORLD POSITION, SO IT HAS TO OPT IN.
498
+
499
+ Terrain rebases the world (B3d.shiftOrigin) and moves only what registered.
500
+ This panel keeps its position on the ELEMENT (`x`/`y`/`z` — the #35 rule) and
501
+ its destination in `_dialogTarget`, both in JS, both world coordinates. A
502
+ rebase during a paused or dying scene therefore slid the dialog away by the
503
+ shift, in the one kind of scene big enough to need rebasing.
504
+
505
+ A LISTENER, not `registerWorldRoot`: the element owns the transform and
506
+ rewrites the mesh from it every render, so shifting the node would be undone
507
+ a frame later. Fix the numbers the element is written FROM.
508
+
509
+ Gaze recovery would eventually drag it back, which is precisely what makes
510
+ this worth fixing rather than tolerating: the symptom is a dialog that
511
+ wanders and then returns, and "it sort of fixes itself" is how a bug avoids
512
+ being reported.
513
+ */
514
+ const owner = this.owner;
515
+ if (owner != null) {
516
+ const onShift = (dx, dz) => {
517
+ const self = this;
518
+ self.x += dx;
519
+ self.z += dz;
520
+ if (this.mesh != null) {
521
+ this.mesh.position.x += dx;
522
+ this.mesh.position.z += dz;
523
+ }
524
+ if (this._dialogTarget != null) {
525
+ this._dialogTarget.x += dx;
526
+ this._dialogTarget.z += dz;
527
+ }
528
+ };
529
+ owner.addOriginListener(onShift);
530
+ this._offOrigin = () => owner.removeOriginListener(onShift);
531
+ }
485
532
  // Straight ahead first, then progressively further off-axis: bestCandidate
486
533
  // breaks ties toward EARLIER entries, so this order IS the preference.
487
534
  const YAW_CANDIDATES = [0, -20, 20, -40, 40, -70, 70, 180];
@@ -502,7 +549,10 @@ export class B3dSvgPlane extends AbstractMesh {
502
549
  collidable());
503
550
  clearances.push(hit?.hit ? hit.distance : Infinity);
504
551
  }
505
- const i = bestCandidate(clearances, 0.7);
552
+ // `desired` matters: it makes this "the least deviation with room" rather
553
+ // than "the most room", so a follow camera's own subject stops pushing
554
+ // every dialog off-axis. See bestCandidate.
555
+ const i = bestCandidate(clearances, 0.7, desired);
506
556
  // Nowhere is clear (boxed in): take straight ahead at the floor distance
507
557
  // rather than refusing to show a modal at all.
508
558
  const dir = dirs[i >= 0 ? i : 0];
@@ -567,10 +617,14 @@ export class B3dSvgPlane extends AbstractMesh {
567
617
  mesh.position.set(next.x, next.y, next.z);
568
618
  // Face the viewer — as YAW on the element, for the same reason.
569
619
  // Rotating the mesh would be undone by the same render.
570
- const dx = cam.globalPosition.x - next.x;
571
- const dz = cam.globalPosition.z - next.z;
572
- if (Math.hypot(dx, dz) > 1e-4) {
573
- self.yaw = (Math.atan2(dx, dz) * 180) / Math.PI;
620
+ //
621
+ // `facingYawDeg` and not `atan2(dx, dz)`: a plane's visible face is
622
+ // local -Z, so the obvious version turns the panel's BACK to you, and a
623
+ // double-sided back reuses the front's UVs — the dialog rendered
624
+ // MIRRORED rather than vanishing, which is how it survived a release.
625
+ const eye = cam.globalPosition;
626
+ if (Math.hypot(eye.x - next.x, eye.z - next.z) > 1e-4) {
627
+ self.yaw = facingYawDeg(next, eye);
574
628
  }
575
629
  }
576
630
  });
@@ -635,6 +689,38 @@ export class B3dSvgPlane extends AbstractMesh {
635
689
  });
636
690
  }
637
691
  content = () => '';
692
+ /**
693
+ * The mesh name, which is how a panel opts into the world's lighting.
694
+ *
695
+ * **By default a panel neither casts nor receives.** Both fell out of
696
+ * `register()` rather than from a decision: registering is the shadow-caster
697
+ * contract AND makes `b3d-shadows` set `receiveShadows`, so a panel joined
698
+ * the lighting merely by existing — throwing a hard-edged rectangle across
699
+ * whatever it faced, and picking up shadows from scenery in front of it.
700
+ *
701
+ * Tonio's framing, which is the right one: *"by default the UI should live
702
+ * outside the world."* A HUD or an inspector is something you look THROUGH
703
+ * the world at. Shading it as though it were furniture makes it ambiguous
704
+ * whether it is IN the scene — and worse, unreadable exactly when something
705
+ * passes between it and the sun.
706
+ *
707
+ * Casting is also the worst case for the shadow map: a large flat quad which,
708
+ * camera-relative, sits permanently inside `activeDistance` and never culls.
709
+ *
710
+ * The two are separate because the cases are. A **cockpit instrument
711
+ * surface** genuinely is in the world and should receive — it is lit by the
712
+ * same sun as the dashboard around it — while still not needing to cast. A
713
+ * sign on a wall or a screen in a room wants both.
714
+ */
715
+ _meshName() {
716
+ const attrs = this;
717
+ let name = 'svg-plane';
718
+ if (attrs.castShadow !== true)
719
+ name += '_nocast';
720
+ if (attrs.receiveShadows !== true)
721
+ name += '_noshadow';
722
+ return name;
723
+ }
638
724
  sceneReady(owner, scene) {
639
725
  super.sceneReady(owner, scene);
640
726
  const attrs = this;
@@ -646,7 +732,7 @@ export class B3dSvgPlane extends AbstractMesh {
646
732
  height: attrs.height,
647
733
  radius: attrs.cornerRadius,
648
734
  });
649
- const mesh = new BABYLON.Mesh('svg-plane', scene);
735
+ const mesh = new BABYLON.Mesh(this._meshName(), scene);
650
736
  const data = new BABYLON.VertexData();
651
737
  data.positions = g.positions;
652
738
  data.indices = g.indices;
@@ -656,7 +742,7 @@ export class B3dSvgPlane extends AbstractMesh {
656
742
  this.mesh = mesh;
657
743
  }
658
744
  else {
659
- this.mesh = BABYLON.MeshBuilder.CreatePlane('svg-plane', {
745
+ this.mesh = BABYLON.MeshBuilder.CreatePlane(this._meshName(), {
660
746
  width: attrs.width,
661
747
  height: attrs.height,
662
748
  sideOrientation: isOff(attrs.doubleSided)
@@ -733,6 +819,8 @@ export class B3dSvgPlane extends AbstractMesh {
733
819
  owner.register({ meshes: [this.mesh] });
734
820
  }
735
821
  sceneDispose() {
822
+ this._offOrigin?.();
823
+ this._offOrigin = null;
736
824
  if (this._dialogObs && this.owner) {
737
825
  this.owner.scene.onBeforeRenderObservable.remove(this._dialogObs);
738
826
  this._dialogObs = null;
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-svg-plane.js","sourceRoot":"","sources":["../src/b3d-svg-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-svg-plane.js","sourceRoot":"","sources":["../src/b3d-svg-plane.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-water.d.ts","sourceRoot":"","sources":["../src/b3d-water.ts"],"names":[],"mappings":"AA6EA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,GAAG,EAAwC,MAAM,YAAY,CAAA;AAE3E,qBAAa,QAAS,SAAQ,YAAY;IACxC,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;MA8BpB;IAED,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAsB;IACxC,OAAO,CAAC,iBAAiB,CAAC,CAAY;IACtC,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,OAAO,CAA2B;IAC1C,qFAAqF;IACrF,OAAO,CAAC,UAAU,CAAQ;IAC1B,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;IAsBnB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAoJlD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,UAAU;IAalB;;oDAEgD;IAChD,OAAO,CAAC,UAAU;IAiBlB,YAAY,IAAI,IAAI;IAsBpB;;;8DAG0D;IAC1D,OAAO,CAAC,YAAY;IAmBpB,MAAM;CAMP;AAED,eAAO,MAAM,QAAQ,2CAAqD,CAAA"}
1
+ {"version":3,"file":"b3d-water.d.ts","sourceRoot":"","sources":["../src/b3d-water.ts"],"names":[],"mappings":"AA6EA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,GAAG,EAAwC,MAAM,YAAY,CAAA;AAE3E,qBAAa,QAAS,SAAQ,YAAY;IACxC,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;MA+CpB;IAED,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAsB;IACxC,OAAO,CAAC,iBAAiB,CAAC,CAAY;IACtC,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,OAAO,CAA2B;IAC1C,qFAAqF;IACrF,OAAO,CAAC,UAAU,CAAQ;IAC1B,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;IAsBnB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI;IAsKlD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,UAAU;IAalB;;oDAEgD;IAChD,OAAO,CAAC,UAAU;IAiBlB,YAAY,IAAI,IAAI;IAsBpB;;;8DAG0D;IAC1D,OAAO,CAAC,YAAY;IAmBpB,MAAM;CAMP;AAED,eAAO,MAAM,QAAQ,2CAAqD,CAAA"}
package/dist/b3d-water.js CHANGED
@@ -67,7 +67,7 @@ document.body.append(
67
67
  b3d({},
68
68
  b3dSun({}),
69
69
  b3dSkybox({ timeOfDay: 12 }),
70
- b3dWater({ y: -0.2, twoSided: true, waterSize: 1024, normalMap: '/waterbump.png' })
70
+ b3dWater({ y: -0.2, twoSided: true, waterSize: 1024 })
71
71
  )
72
72
  )
73
73
  ```
@@ -75,6 +75,7 @@ document.body.append(
75
75
  /*{ "parent": "Environment" }*/
76
76
  import { plane as mediumPlane } from './medium';
77
77
  import * as BABYLON from '@babylonjs/core';
78
+ import { waterNormalTexture } from './water-normal';
78
79
  import { WaterMaterial } from '@babylonjs/materials';
79
80
  import { AbstractMesh } from './b3d-utils';
80
81
  import { band } from './atmosphere';
@@ -97,10 +98,27 @@ export class B3dWater extends AbstractMesh {
97
98
  // dragged along), and the reflection map refreshes every few frames instead of every one
98
99
  // (a moving sea doesn't need a perfect mirror). Off by default (a small pond doesn't need it).
99
100
  follow: false,
100
- // Root-absolute, NOT './waterbump.png': doc pages are served at /{slug}/, so a
101
- // relative path resolves to /{slug}/waterbump.png (404). Root-absolute loads
102
- // the same everywhere (matches the "root-absolute asset paths" convention).
103
- normalMap: '/waterbump.png',
101
+ /*
102
+ EMPTY MEANS PROCEDURAL, and that is the default on purpose.
103
+
104
+ It used to default to `/waterbump.png` — root-absolute so it resolved the
105
+ same from every `/{slug}/` doc page, which was correct reasoning about the
106
+ wrong problem: **the file ships in this repo's `static/`, not in the
107
+ package**. So every consumer taking the documented default pointed at a file
108
+ they had never been told to serve.
109
+
110
+ And the failure is silent in the worst way. Babylon's `Texture` falls back
111
+ when a fetch does not decode, so the sea renders as a CHECKERBOARD — which
112
+ reads as a deliberate style rather than a missing asset. ensemble's owner
113
+ asked whether it was intentional and said it looked awesome (tosijs-3d#46).
114
+
115
+ A 59 KB PNG could have been shipped, but a path that must resolve at a
116
+ fixed URL is the footgun itself, not the file. `waterNormalTexture` builds
117
+ one from the Perlin noise this library already has: no file, no network, no
118
+ path to get wrong, and it works offline and inside a headset. Set
119
+ `normalMap` to override with something prettier.
120
+ */
121
+ normalMap: '',
104
122
  windForce: -5,
105
123
  waveHeight: 0,
106
124
  bumpHeight: 0.1,
@@ -182,7 +200,15 @@ export class B3dWater extends AbstractMesh {
182
200
  */
183
201
  this.mesh.metadata = { ...(this.mesh.metadata ?? {}), b3dWater: true };
184
202
  this.waterMaterial = new WaterMaterial('water', scene, new BABYLON.Vector2(attrs.textureSize, attrs.textureSize));
185
- this.waterMaterial.bumpTexture = new BABYLON.Texture(attrs.normalMap, scene);
203
+ this.waterMaterial.bumpTexture = attrs.normalMap
204
+ ? // An explicit path: load it, but SAY SO if it fails. The checkerboard
205
+ // fallback is indistinguishable from a style choice, so silence here is
206
+ // what cost ensemble the confusion in the first place.
207
+ new BABYLON.Texture(attrs.normalMap, scene, undefined, undefined, undefined, undefined, () => {
208
+ console.error(`b3d-water: normalMap "${attrs.normalMap}" failed to load — the sea will render as a checkerboard. ` +
209
+ `Leave normalMap unset for the built-in procedural map.`);
210
+ })
211
+ : waterNormalTexture(scene);
186
212
  this.updateWater();
187
213
  this.mesh.material = this.waterMaterial;
188
214
  this._callback = this.waterCallback.bind(this);
@@ -1 +1 @@
1
- {"version":3,"file":"b3d-water.js","sourceRoot":"","sources":["../src/b3d-water.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"b3d-water.js","sourceRoot":"","sources":["../src/b3d-water.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ export interface BuoyancyParams {
2
+ /** Metres per second squared, negative. Default −9.81. */
3
+ gravity?: number;
4
+ /**
5
+ * Upward push at FULL submersion, as a multiple of weight. `> 1` floats,
6
+ * `< 1` sinks. Equilibrium submersion is `1 / buoyancy`. Default 1.15.
7
+ */
8
+ buoyancy?: number;
9
+ /** Quadratic drag through water. Much higher than air. Default 4. */
10
+ waterDrag?: number;
11
+ /** Quadratic drag through air, for the part of you that is out. Default 0.02. */
12
+ airDrag?: number;
13
+ /**
14
+ * Vertical thrust, m/s², signed (positive up) — a swimmer kicking. Added to
15
+ * the acceleration, so it competes with buoyancy rather than overriding it:
16
+ * stop kicking and physics takes over again. Default 0.
17
+ */
18
+ thrust?: number;
19
+ }
20
+ /**
21
+ * How much of a body of height `height`, standing with its feet at `feetY`, is
22
+ * under a surface at `surfaceY`. `0` = dry, `1` = fully under.
23
+ *
24
+ * Clamped both ends, so a caller can hand it any geometry — including a body
25
+ * above the water, which is the common case and must cost nothing.
26
+ */
27
+ export declare function submergedFraction(feetY: number, height: number, surfaceY: number): number;
28
+ /**
29
+ * Advance vertical velocity by one step. Returns the new velocity (m/s, up
30
+ * positive) — the caller integrates position, so this composes with whatever
31
+ * else is moving the body.
32
+ *
33
+ * Drag is blended by submersion rather than switched, so crossing the surface
34
+ * is continuous. A hard switch put a step change in the acceleration exactly at
35
+ * the waterline, which reads as a bounce off the surface — the same "kill the
36
+ * discontinuity, not the contrast" lesson the underwater fog learned.
37
+ */
38
+ export declare function buoyantStep(vy: number, submerged: number, dt: number, params?: BuoyancyParams): number;
39
+ /**
40
+ * The submersion at which the push balances the weight — where a body floating
41
+ * freely comes to rest. `1` (fully under, i.e. it sinks) when `buoyancy <= 1`.
42
+ */
43
+ export declare function equilibriumSubmersion(buoyancy?: number): number;
44
+ /**
45
+ * Is this body swimming rather than standing?
46
+ *
47
+ * Swimming is **deep enough AND not resting on the floor**. Note the second
48
+ * term carefully: it is _resting on_, not _within reach of_. Those differ, and
49
+ * the difference is the whole behaviour — a body in six metres of water is
50
+ * floating whether or not its feet could touch the bottom, because buoyancy has
51
+ * already lifted it off. Asking "is there ground below me?" instead left a
52
+ * character standing on the seabed under six metres of water, technically
53
+ * grounded and visibly wrong.
54
+ *
55
+ * So the caller integrates buoyancy first and passes what actually happened.
56
+ * The floor is a floor — it stops you sinking; it does not hold you down.
57
+ */
58
+ export declare function isSwimming(submerged: number, restingOnFloor: boolean, wasSwimming?: boolean): boolean;
59
+ /**
60
+ * **Buoyancy for a swimmer, which is not buoyancy for a floating body.**
61
+ *
62
+ * A relaxed body corks to the surface; a diver holds depth. Both are true — the
63
+ * difference is that a swimmer manages it (exhaling, finning) and a log does
64
+ * not. So once your head is properly under, buoyancy blends from the floating
65
+ * value toward `neutral`, which is set **just above 1 on purpose**: hold still
66
+ * underwater and you drift slowly up, so you surface if you stop paying
67
+ * attention, but you do not cork the moment you stop kicking.
68
+ *
69
+ * Tonio chose the behaviour: _"holding with a slow drift upward by default."_
70
+ * Games usually hold depth and real bodies cork; holding is the comfortable
71
+ * choice and the drift is what keeps it honest.
72
+ *
73
+ * `headDepth` is how far the TOP of the body is below the surface — negative
74
+ * while any part is still out. The blend is gradual so breaking the surface is
75
+ * continuous, for the same reason the drag blend is.
76
+ *
77
+ * **The blend distance is the difference between diving and drowning.** At half
78
+ * a metre — the first value here — a swimmer whose head dipped barely under was
79
+ * already fully neutral, so they held there instead of bobbing back up, and the
80
+ * up-thrust is throttled near the surface too (`surfaceAimLimit`), which left
81
+ * nothing to get them out. Tonio: *"still treading water with head underwater
82
+ * and it's hard to swim up."* Over 1.5 m the hold belongs to DIVING, which is
83
+ * what it was for, and the surface stays buoyant.
84
+ */
85
+ export declare function swimBuoyancy(headDepth: number, params?: {
86
+ buoyancy?: number;
87
+ neutral?: number;
88
+ blend?: number;
89
+ }): number;
90
+ //# sourceMappingURL=buoyancy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buoyancy.d.ts","sourceRoot":"","sources":["../src/buoyancy.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,cAAmB,GAC1B,MAAM,CAmBR;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,SAAO,GAAG,MAAM,CAE7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,WAAW,UAAQ,GAClB,OAAO,CAmBT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACnE,MAAM,CAKR"}
@@ -0,0 +1,150 @@
1
+ /*#
2
+ # buoyancy
3
+
4
+ **Falling in water is not falling in air.** The pure vertical model behind the
5
+ biped's swimming: how fast a body sinks, why it comes back up, and where it
6
+ settles. Babylon-free, deterministic, unit tested.
7
+
8
+ ## Why a model rather than a constant
9
+
10
+ The obvious version — "use a smaller gravity underwater" — sinks you forever,
11
+ just slowly. What actually happens is that a body is slightly **less dense than
12
+ water**, so it is pushed up in proportion to how much of it is submerged, and it
13
+ comes to rest at the depth where that push balances its weight. That is one
14
+ equation, and everything readable falls out of it for free:
15
+
16
+ - Drop in from a height and you plunge, decelerate hard, and **bob back up**.
17
+ - Settle and your head is out of the water, because equilibrium is at partial
18
+ submersion — not because anything targets a head height.
19
+ - Wade in from a beach and nothing happens until the water is deep enough to
20
+ lift you, because the push scales with submersion.
21
+
22
+ Aiming at a target depth instead would have to special-case every one of those.
23
+
24
+ ## The numbers, and what they mean
25
+
26
+ `buoyancy` is the ratio of the upward push at FULL submersion to weight. Above 1
27
+ you float, and the equilibrium submersion is `1 / buoyancy` — so the default
28
+ `1.15` rests with about 87% of you under, which is roughly a person treading
29
+ water. Below 1 you sink forever, which is the honest way to model armour, and
30
+ `waterDrag` then sets how fast.
31
+
32
+ Drag is quadratic, so terminal speed is `sqrt(|a| / drag)` — the default gives
33
+ about 1.5 m/s sinking, an order slower than the ~20 m/s of a fall through air.
34
+ Slow enough to see, fast enough not to feel broken.
35
+ */
36
+ /*{ "parent": "Effects" }*/
37
+ /**
38
+ * How much of a body of height `height`, standing with its feet at `feetY`, is
39
+ * under a surface at `surfaceY`. `0` = dry, `1` = fully under.
40
+ *
41
+ * Clamped both ends, so a caller can hand it any geometry — including a body
42
+ * above the water, which is the common case and must cost nothing.
43
+ */
44
+ export function submergedFraction(feetY, height, surfaceY) {
45
+ if (height <= 0)
46
+ return feetY <= surfaceY ? 1 : 0;
47
+ const under = (surfaceY - feetY) / height;
48
+ return under <= 0 ? 0 : under >= 1 ? 1 : under;
49
+ }
50
+ /**
51
+ * Advance vertical velocity by one step. Returns the new velocity (m/s, up
52
+ * positive) — the caller integrates position, so this composes with whatever
53
+ * else is moving the body.
54
+ *
55
+ * Drag is blended by submersion rather than switched, so crossing the surface
56
+ * is continuous. A hard switch put a step change in the acceleration exactly at
57
+ * the waterline, which reads as a bounce off the surface — the same "kill the
58
+ * discontinuity, not the contrast" lesson the underwater fog learned.
59
+ */
60
+ export function buoyantStep(vy, submerged, dt, params = {}) {
61
+ const { gravity = -9.81, buoyancy = 1.15, waterDrag = 4, airDrag = 0.02, thrust = 0, } = params;
62
+ if (dt <= 0)
63
+ return vy;
64
+ const s = submerged <= 0 ? 0 : submerged >= 1 ? 1 : submerged;
65
+ // Weight always; the push scales with how much of you is in the water. Thrust
66
+ // only works against something to push on, so it scales with submersion too —
67
+ // kicking in mid-air should not launch you.
68
+ const accel = gravity + -gravity * buoyancy * s + thrust * s;
69
+ const drag = airDrag + (waterDrag - airDrag) * s;
70
+ const next = vy + accel * dt;
71
+ // Drag opposes motion and is applied on the NEW speed, which keeps it stable
72
+ // at large dt instead of overshooting into an oscillation.
73
+ return next - drag * Math.abs(next) * next * dt;
74
+ }
75
+ /**
76
+ * The submersion at which the push balances the weight — where a body floating
77
+ * freely comes to rest. `1` (fully under, i.e. it sinks) when `buoyancy <= 1`.
78
+ */
79
+ export function equilibriumSubmersion(buoyancy = 1.15) {
80
+ return buoyancy <= 1 ? 1 : 1 / buoyancy;
81
+ }
82
+ /**
83
+ * Is this body swimming rather than standing?
84
+ *
85
+ * Swimming is **deep enough AND not resting on the floor**. Note the second
86
+ * term carefully: it is _resting on_, not _within reach of_. Those differ, and
87
+ * the difference is the whole behaviour — a body in six metres of water is
88
+ * floating whether or not its feet could touch the bottom, because buoyancy has
89
+ * already lifted it off. Asking "is there ground below me?" instead left a
90
+ * character standing on the seabed under six metres of water, technically
91
+ * grounded and visibly wrong.
92
+ *
93
+ * So the caller integrates buoyancy first and passes what actually happened.
94
+ * The floor is a floor — it stops you sinking; it does not hold you down.
95
+ */
96
+ export function isSwimming(submerged, restingOnFloor, wasSwimming = false) {
97
+ if (restingOnFloor)
98
+ return false;
99
+ /*
100
+ HYSTERESIS, and it is a concession worth naming.
101
+
102
+ MOBILITY-DESIGN.md argues that modes should be DERIVED rather than entered,
103
+ and lists exactly this as what would falsify it: "if deriving cover every
104
+ frame proves too noisy — flickering in and out at a boundary — then it needs
105
+ hysteresis, and hysteresis is a state." It fired here first. Walking down a
106
+ ramp into water, submersion hovers around the threshold and the character
107
+ flickers between swimming and standing — Tonio: "there's sometimes a twitch
108
+ and you go back to standing as you ramp into water."
109
+
110
+ So: enter swimming at 0.5, keep it until 0.35. One bit of state, and the
111
+ narrowest kind — it changes when you SWITCH, never what you can do. The
112
+ broader claim survives with a caveat rather than intact, which is worth more
113
+ than pretending the falsifier did not fire.
114
+ */
115
+ return submerged >= (wasSwimming ? 0.35 : 0.5);
116
+ }
117
+ /**
118
+ * **Buoyancy for a swimmer, which is not buoyancy for a floating body.**
119
+ *
120
+ * A relaxed body corks to the surface; a diver holds depth. Both are true — the
121
+ * difference is that a swimmer manages it (exhaling, finning) and a log does
122
+ * not. So once your head is properly under, buoyancy blends from the floating
123
+ * value toward `neutral`, which is set **just above 1 on purpose**: hold still
124
+ * underwater and you drift slowly up, so you surface if you stop paying
125
+ * attention, but you do not cork the moment you stop kicking.
126
+ *
127
+ * Tonio chose the behaviour: _"holding with a slow drift upward by default."_
128
+ * Games usually hold depth and real bodies cork; holding is the comfortable
129
+ * choice and the drift is what keeps it honest.
130
+ *
131
+ * `headDepth` is how far the TOP of the body is below the surface — negative
132
+ * while any part is still out. The blend is gradual so breaking the surface is
133
+ * continuous, for the same reason the drag blend is.
134
+ *
135
+ * **The blend distance is the difference between diving and drowning.** At half
136
+ * a metre — the first value here — a swimmer whose head dipped barely under was
137
+ * already fully neutral, so they held there instead of bobbing back up, and the
138
+ * up-thrust is throttled near the surface too (`surfaceAimLimit`), which left
139
+ * nothing to get them out. Tonio: *"still treading water with head underwater
140
+ * and it's hard to swim up."* Over 1.5 m the hold belongs to DIVING, which is
141
+ * what it was for, and the surface stays buoyant.
142
+ */
143
+ export function swimBuoyancy(headDepth, params = {}) {
144
+ const { buoyancy = 1.15, neutral = 1.02, blend = 1.5 } = params;
145
+ if (headDepth <= 0)
146
+ return buoyancy;
147
+ const t = blend <= 0 ? 1 : Math.min(1, headDepth / blend);
148
+ return buoyancy + (neutral - buoyancy) * t;
149
+ }
150
+ //# sourceMappingURL=buoyancy.js.map