@aura3d/physics 1.5.2 → 2.0.1

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 (103) hide show
  1. package/dist/ArcadeCharacterController.d.ts +53 -0
  2. package/dist/ArcadeCharacterController.d.ts.map +1 -0
  3. package/dist/ArcadeCharacterController.js +98 -0
  4. package/dist/ArcadeCharacterController.js.map +1 -0
  5. package/dist/{VehicleDynamics.d.ts → ArcadeVehicleTelemetry.d.ts} +14 -4
  6. package/dist/ArcadeVehicleTelemetry.d.ts.map +1 -0
  7. package/dist/{VehicleDynamics.js → ArcadeVehicleTelemetry.js} +37 -9
  8. package/dist/ArcadeVehicleTelemetry.js.map +1 -0
  9. package/dist/Constraint.d.ts +20 -4
  10. package/dist/Constraint.d.ts.map +1 -1
  11. package/dist/Constraint.js +34 -60
  12. package/dist/Constraint.js.map +1 -1
  13. package/dist/FightingCharacterController.d.ts +32 -0
  14. package/dist/FightingCharacterController.d.ts.map +1 -0
  15. package/dist/FightingCharacterController.js +76 -0
  16. package/dist/FightingCharacterController.js.map +1 -0
  17. package/dist/MeshBVH.d.ts +72 -0
  18. package/dist/MeshBVH.d.ts.map +1 -0
  19. package/dist/MeshBVH.js +244 -0
  20. package/dist/MeshBVH.js.map +1 -0
  21. package/dist/PhysicsDebugDraw.d.ts +40 -1
  22. package/dist/PhysicsDebugDraw.d.ts.map +1 -1
  23. package/dist/PhysicsDebugDraw.js +87 -17
  24. package/dist/PhysicsDebugDraw.js.map +1 -1
  25. package/dist/PhysicsWorld.d.ts +37 -18
  26. package/dist/PhysicsWorld.d.ts.map +1 -1
  27. package/dist/PhysicsWorld.js +231 -630
  28. package/dist/PhysicsWorld.js.map +1 -1
  29. package/dist/Raycast.d.ts +11 -0
  30. package/dist/Raycast.d.ts.map +1 -1
  31. package/dist/Raycast.js +62 -8
  32. package/dist/Raycast.js.map +1 -1
  33. package/dist/RigidBody.d.ts +16 -9
  34. package/dist/RigidBody.d.ts.map +1 -1
  35. package/dist/RigidBody.js +23 -75
  36. package/dist/RigidBody.js.map +1 -1
  37. package/dist/SurfaceQuery.d.ts +72 -0
  38. package/dist/SurfaceQuery.d.ts.map +1 -0
  39. package/dist/SurfaceQuery.js +89 -0
  40. package/dist/SurfaceQuery.js.map +1 -0
  41. package/dist/index.d.ts +62 -17
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +70 -17
  44. package/dist/index.js.map +1 -1
  45. package/dist/solverless.d.ts +37 -0
  46. package/dist/solverless.d.ts.map +1 -0
  47. package/dist/solverless.js +36 -0
  48. package/dist/solverless.js.map +1 -0
  49. package/dist/world.d.ts +18 -0
  50. package/dist/world.d.ts.map +1 -0
  51. package/dist/world.js +17 -0
  52. package/dist/world.js.map +1 -0
  53. package/package.json +10 -2
  54. package/dist/CharacterController.d.ts +0 -83
  55. package/dist/CharacterController.d.ts.map +0 -1
  56. package/dist/CharacterController.js +0 -236
  57. package/dist/CharacterController.js.map +0 -1
  58. package/dist/ClothFixtures.d.ts +0 -87
  59. package/dist/ClothFixtures.d.ts.map +0 -1
  60. package/dist/ClothFixtures.js +0 -264
  61. package/dist/ClothFixtures.js.map +0 -1
  62. package/dist/Crowd.d.ts +0 -64
  63. package/dist/Crowd.d.ts.map +0 -1
  64. package/dist/Crowd.js +0 -209
  65. package/dist/Crowd.js.map +0 -1
  66. package/dist/FireSmokeFixtures.d.ts +0 -103
  67. package/dist/FireSmokeFixtures.d.ts.map +0 -1
  68. package/dist/FireSmokeFixtures.js +0 -271
  69. package/dist/FireSmokeFixtures.js.map +0 -1
  70. package/dist/FluidFixtures.d.ts +0 -75
  71. package/dist/FluidFixtures.d.ts.map +0 -1
  72. package/dist/FluidFixtures.js +0 -219
  73. package/dist/FluidFixtures.js.map +0 -1
  74. package/dist/FractureFixtures.d.ts +0 -68
  75. package/dist/FractureFixtures.d.ts.map +0 -1
  76. package/dist/FractureFixtures.js +0 -199
  77. package/dist/FractureFixtures.js.map +0 -1
  78. package/dist/NarrowPhase.d.ts +0 -11
  79. package/dist/NarrowPhase.d.ts.map +0 -1
  80. package/dist/NarrowPhase.js +0 -565
  81. package/dist/NarrowPhase.js.map +0 -1
  82. package/dist/Navigation.d.ts +0 -67
  83. package/dist/Navigation.d.ts.map +0 -1
  84. package/dist/Navigation.js +0 -261
  85. package/dist/Navigation.js.map +0 -1
  86. package/dist/PhysicsSandboxFixtures.d.ts +0 -53
  87. package/dist/PhysicsSandboxFixtures.d.ts.map +0 -1
  88. package/dist/PhysicsSandboxFixtures.js +0 -280
  89. package/dist/PhysicsSandboxFixtures.js.map +0 -1
  90. package/dist/PlatformerFixtures.d.ts +0 -70
  91. package/dist/PlatformerFixtures.d.ts.map +0 -1
  92. package/dist/PlatformerFixtures.js +0 -120
  93. package/dist/PlatformerFixtures.js.map +0 -1
  94. package/dist/SoftBodyFixtures.d.ts +0 -70
  95. package/dist/SoftBodyFixtures.d.ts.map +0 -1
  96. package/dist/SoftBodyFixtures.js +0 -272
  97. package/dist/SoftBodyFixtures.js.map +0 -1
  98. package/dist/Steering.d.ts +0 -161
  99. package/dist/Steering.d.ts.map +0 -1
  100. package/dist/Steering.js +0 -347
  101. package/dist/Steering.js.map +0 -1
  102. package/dist/VehicleDynamics.d.ts.map +0 -1
  103. package/dist/VehicleDynamics.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAa,IAAI,EAAE,MAAM,YAAY,CAAC;AAiClH,MAAM,OAAO,SAAS;IACX,EAAE,CAAS;IACX,IAAI,CAAgB;IACpB,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,QAAQ,CAAS;IAC1B,QAAQ,CAA2B;IACnC,gBAAgB,CAA2B;IAC3C,QAAQ,CAAmC;IAC3C,gBAAgB,CAAmC;IACnD,QAAQ,CAA2B;IACnC,eAAe,CAA2B;IAC1C,aAAa,CAAS;IACtB,cAAc,CAAS;IACvB,cAAc,CAA2B;IACzC;;;;;;;OAOG;IACM,eAAe,CAAQ;IAChC,QAAQ,CAAU;IACV,gBAAgB,CAA2B;IAC3C,iBAAiB,CAA2B;IAEpD,YAAY,EAAU,EAAE,aAAkC,EAAE;QAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,GAAG,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC7C,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnD,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnD,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/E,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,QAAc;QACxB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAc;QACxB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAc;QACxB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,eAAqB;QACtC,kBAAkB,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,UAAU,CAAC,KAAW;QACpB,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAY;QACtB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,YAAY,CAAC,OAAa;QACxB,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,OAAa;QAC/B,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,OAAa,EAAE,UAAgB;QACjD,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,kBAAkB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,2BAA2B,CAAC,KAAW;QACrC,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,OAAO,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,wEAAwE;IACxE,aAAa;QACX,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,WAAW;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpH,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC9J,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;YAChD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,SAAS,CAAC,KAAW;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,KAAW;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/I,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,cAAc,CAAC,OAAa;IACnC,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,CAAO,EAAE,CAAO;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,OAAO,CAAC,CAAO,EAAE,CAAO;IAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,CAAO,EAAE,CAAO;IACjC,OAAO;QACL,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { type MeshBVH } from "./MeshBVH.js";
2
+ import type { Vec3 } from "./Shape.js";
3
+ /**
4
+ * Height and normal of a real mesh under a world point.
5
+ *
6
+ * ## The defect class this closes
7
+ *
8
+ * Grounding anything in this library previously meant inventing a surface model and
9
+ * baking it into a route constant. Turbo Drift's vehicle surface was
10
+ * `TRACK_SURFACE_Y - VERGE_DROP * shoulderFraction`: one frozen scalar plus an analytic
11
+ * ramp. That is wrong the moment the track is banked, crowned, kerbed or swapped, and it
12
+ * is why the car's tyres pass through the visible road on corners. The 30-line comment
13
+ * block defending `CAR_GROUND_Y` in that route is the symptom of a missing capability,
14
+ * not a well-understood constant.
15
+ *
16
+ * A surface query removes the need to model the surface at all: ask the triangles.
17
+ *
18
+ * ## Caching
19
+ *
20
+ * A vehicle samples four times per frame, a character once or twice, a crowd hundreds of
21
+ * times. Sampling is cached per integer cell so repeated queries in the same spot are
22
+ * free, and the cache is cleared per frame by the caller rather than by a timer — a
23
+ * time-based cache silently returns stale heights on a moving platform.
24
+ */
25
+ export interface SurfaceSample {
26
+ /** World Y of the surface. */
27
+ readonly height: number;
28
+ /** Unit surface normal, oriented upward. */
29
+ readonly normal: Vec3;
30
+ /** Grip multiplier for this point. 1 unless a grip map is supplied. */
31
+ readonly grip: number;
32
+ /** False when no triangle was found under the point. */
33
+ readonly hit: boolean;
34
+ /** Triangle index, for callers that map triangles to materials. */
35
+ readonly triangle?: number | undefined;
36
+ }
37
+ export interface MeshSurfaceQueryOptions {
38
+ /**
39
+ * Height the downward ray starts from, above the highest point of the mesh.
40
+ *
41
+ * Too low and the ray starts inside overhanging geometry; the default derives it from
42
+ * the mesh bounds so it is correct for any scale without tuning.
43
+ */
44
+ readonly rayStartHeight?: number | undefined;
45
+ /** Grid size for the sample cache, in world units. */
46
+ readonly cacheCellSize?: number | undefined;
47
+ /** Grip per triangle index. Absent triangles use 1. */
48
+ readonly gripByTriangle?: ReadonlyMap<number, number> | undefined;
49
+ /** Fallback height when nothing is under the point. */
50
+ readonly fallbackHeight?: number | undefined;
51
+ }
52
+ export interface MeshSurfaceQuery {
53
+ readonly kind: "aura-mesh-surface-query";
54
+ sampleHeight(x: number, z: number): number;
55
+ sampleNormal(x: number, z: number): Vec3;
56
+ sampleGrip(x: number, z: number): number;
57
+ sample(x: number, z: number): SurfaceSample;
58
+ /** Drop cached samples. Call once per frame if the mesh moves. */
59
+ invalidate(): void;
60
+ readonly bvh: MeshBVH;
61
+ /** Cache statistics, so a caller can prove the query is not thrashing. */
62
+ stats(): {
63
+ readonly samples: number;
64
+ readonly cacheHits: number;
65
+ readonly cachedCells: number;
66
+ };
67
+ }
68
+ export declare function createMeshSurfaceQuery(geometry: {
69
+ readonly positions: Float32Array;
70
+ readonly indices: Uint32Array;
71
+ }, worldMatrix?: readonly number[], options?: MeshSurfaceQueryOptions): MeshSurfaceQuery;
72
+ //# sourceMappingURL=SurfaceQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurfaceQuery.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/SurfaceQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,sDAAsD;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAClE,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAC5C,kEAAkE;IAClE,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,KAAK,IAAI;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACjG;AAkBD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,EAC7E,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,EAC/B,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAsElB"}
@@ -0,0 +1,89 @@
1
+ import { buildMeshBVH, raycastMesh } from "./MeshBVH.js";
2
+ /** Transform positions by a column-major 4x4 world matrix. */
3
+ function transformPositions(positions, worldMatrix) {
4
+ if (!worldMatrix)
5
+ return positions;
6
+ if (worldMatrix.length !== 16)
7
+ throw new Error("createMeshSurfaceQuery worldMatrix must have 16 elements.");
8
+ const out = new Float32Array(positions.length);
9
+ for (let index = 0; index < positions.length; index += 3) {
10
+ const x = positions[index];
11
+ const y = positions[index + 1];
12
+ const z = positions[index + 2];
13
+ out[index] = worldMatrix[0] * x + worldMatrix[4] * y + worldMatrix[8] * z + worldMatrix[12];
14
+ out[index + 1] = worldMatrix[1] * x + worldMatrix[5] * y + worldMatrix[9] * z + worldMatrix[13];
15
+ out[index + 2] = worldMatrix[2] * x + worldMatrix[6] * y + worldMatrix[10] * z + worldMatrix[14];
16
+ }
17
+ return out;
18
+ }
19
+ export function createMeshSurfaceQuery(geometry, worldMatrix, options = {}) {
20
+ const positions = transformPositions(geometry.positions, worldMatrix);
21
+ const bvh = buildMeshBVH(positions, geometry.indices);
22
+ let highest = -Infinity;
23
+ let lowest = Infinity;
24
+ for (let index = 1; index < positions.length; index += 3) {
25
+ const y = positions[index];
26
+ if (y > highest)
27
+ highest = y;
28
+ if (y < lowest)
29
+ lowest = y;
30
+ }
31
+ if (!Number.isFinite(highest)) {
32
+ highest = 0;
33
+ lowest = 0;
34
+ }
35
+ // Start above the mesh and cast the full vertical extent plus margin, so an
36
+ // overhang never shadows the surface beneath a sample point.
37
+ const span = Math.max(1, highest - lowest);
38
+ const rayStart = options.rayStartHeight ?? highest + span;
39
+ const maxDistance = (rayStart - lowest) + span;
40
+ const cellSize = Math.max(1e-4, options.cacheCellSize ?? 0.05);
41
+ const fallbackHeight = options.fallbackHeight ?? lowest;
42
+ const cache = new Map();
43
+ let samples = 0;
44
+ let cacheHits = 0;
45
+ function computeSample(x, z) {
46
+ const hit = raycastMesh(bvh, [x, rayStart, z], [0, -1, 0], { maxDistance });
47
+ if (!hit) {
48
+ return { height: fallbackHeight, normal: [0, 1, 0], grip: 1, hit: false };
49
+ }
50
+ // Force the normal upward: a downward ray against a double-sided road surface can
51
+ // legitimately return either orientation, and a downward "up" normal would invert
52
+ // every attitude calculation built on it.
53
+ const normal = hit.normal[1] < 0
54
+ ? [-hit.normal[0], -hit.normal[1], -hit.normal[2]]
55
+ : hit.normal;
56
+ return {
57
+ height: hit.point[1],
58
+ normal,
59
+ grip: options.gripByTriangle?.get(hit.triangle) ?? 1,
60
+ hit: true,
61
+ triangle: hit.triangle
62
+ };
63
+ }
64
+ function sample(x, z) {
65
+ samples += 1;
66
+ const key = `${Math.round(x / cellSize)}:${Math.round(z / cellSize)}`;
67
+ const cached = cache.get(key);
68
+ if (cached) {
69
+ cacheHits += 1;
70
+ return cached;
71
+ }
72
+ const computed = computeSample(x, z);
73
+ cache.set(key, computed);
74
+ return computed;
75
+ }
76
+ return {
77
+ kind: "aura-mesh-surface-query",
78
+ bvh,
79
+ sample,
80
+ sampleHeight: (x, z) => sample(x, z).height,
81
+ sampleNormal: (x, z) => sample(x, z).normal,
82
+ sampleGrip: (x, z) => sample(x, z).grip,
83
+ invalidate: () => {
84
+ cache.clear();
85
+ },
86
+ stats: () => ({ samples, cacheHits, cachedCells: cache.size })
87
+ };
88
+ }
89
+ //# sourceMappingURL=SurfaceQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurfaceQuery.js","sourceRoot":"","sources":["../../../../packages/physics/src/SurfaceQuery.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,31 +1,76 @@
1
+ /**
2
+ * WS-4.1 — the backend-neutral public physics contract.
3
+ *
4
+ * ## What this file is
5
+ *
6
+ * This barrel *is* the contract. Everything a developer can reach through
7
+ * `@aura3d/physics` is listed below, grouped by the seven contract areas, and nothing in
8
+ * it names or exposes the solver underneath.
9
+ *
10
+ * That neutrality is the point, and it is load-bearing rather than stylistic. WS-4.2
11
+ * selected one production solver on measured evidence and recorded dated triggers for
12
+ * reopening the decision (`docs/architecture/physics-backend-decision.md`). A future
13
+ * backend swap is a bounded change **only** while no solver type reaches a caller: the
14
+ * solver is imported in exactly one file (`PhysicsWorld.ts`) out of ~12.6k lines, and
15
+ * every symbol it brings in is either a private field or a module-local bridge function.
16
+ * `Vec3`, `Quat`, `Bounds`, `PhysicsShape`, `RaycastHit` and the rest are Aura3D's own
17
+ * plain-array types.
18
+ *
19
+ * The solver is deliberately not named anywhere in this file — not even in prose. WS-4.1's
20
+ * proof is a grep for the backend package name over this file returning empty, so naming it
21
+ * in a comment would satisfy the letter of the contract while breaking its own gate. This
22
+ * paragraph exists because the first draft did exactly that and the gate caught it.
23
+ *
24
+ * Enforced, not asserted: `tests/unit/physics/backend-neutral-contract.test.ts` fails if a
25
+ * backend type or the package name appears in the public surface, and
26
+ * `tests/unit/physics/single-solver-ownership.test.ts` fails if a second solver returns.
27
+ *
28
+ * ## The seven contract areas
29
+ *
30
+ * Named by the PRD, and each has to be reachable from here or the contract has a hole.
31
+ *
32
+ * 1. **Bodies** — `RigidBody`, mass/inertia/damping, forces, impulses, sleep/wake.
33
+ * 2. **Colliders** — `Shape` (7 kinds), materials, layer/mask filters, sensors, volumes.
34
+ * 3. **Joints** — `Constraint`: fixed, hinge, slider, ball-socket, spring, motorised hinge.
35
+ * 4. **Raycast / shapecast** — `raycast`, `raycastAll`, `sphereCast`, `sphereCastAll`,
36
+ * ground-height sampling, swept `timeOfImpact`, `MeshBVH` and `SurfaceQuery` for
37
+ * geometry-level queries.
38
+ * 5. **Character movement** — `ArcadeCharacterController` and
39
+ * `FightingCharacterController` are explicitly authored-unit motion.
40
+ * Physical collision-constrained character movement belongs to the
41
+ * selected optional Rapier adapter.
42
+ * 6. **Vehicle** — `ArcadeVehicleTelemetry` provides non-integrating telemetry,
43
+ * Pacejka sampling, and drivetrain helpers. Physical vehicle ownership lives
44
+ * in the optional selected engine; public arcade pose/driver ownership lives
45
+ * in `GameRuntime`.
46
+ * 7. **Deterministic stepping** — `PhysicsWorld.step(dt)` with a fixed delta,
47
+ * `PhysicsStepper` for accumulator-driven fixed-step loops, and the adaptive-substep
48
+ * CCD wrapper, which is Aura3D's because the solver exposes no native swept TOI.
49
+ *
50
+ * Above the solver and deliberately kept: kinematic and hitbox worlds, debug drawing,
51
+ * and the ECS/scene bridges. Navigation and crowd ownership moved to the optional
52
+ * Recast/Detour adapter at the major-version boundary.
53
+ */
1
54
  export * from "./Shape.js";
2
55
  export * from "./RigidBody.js";
3
56
  export * from "./Collider.js";
4
57
  export * from "./CollisionEvents.js";
58
+ export * from "./CollisionVolumes.js";
5
59
  export * from "./Constraint.js";
6
60
  export * from "./Constraints.js";
7
61
  export * from "./Raycast.js";
8
62
  export * from "./TimeOfImpact.js";
9
- export * from "./NarrowPhase.js";
63
+ export * from "./MeshBVH.js";
64
+ export * from "./SurfaceQuery.js";
65
+ export * from "./ArcadeCharacterController.js";
66
+ export * from "./FightingCharacterController.js";
67
+ export * from "./KinematicBody.js";
68
+ export * from "./KinematicWorld.js";
69
+ export * from "./HitboxWorld.js";
70
+ export * from "./ArcadeVehicleTelemetry.js";
10
71
  export * from "./PhysicsWorld.js";
11
72
  export * from "./PhysicsStepper.js";
12
73
  export * from "./ScenePhysicsBridge.js";
13
74
  export * from "./ECSPhysicsBridge.js";
14
75
  export * from "./PhysicsDebugDraw.js";
15
- export * from "./CharacterController.js";
16
- export * from "./Navigation.js";
17
- export * from "./Steering.js";
18
- export * from "./Crowd.js";
19
- export * from "./VehicleDynamics.js";
20
- export * from "./PlatformerFixtures.js";
21
- export * from "./PhysicsSandboxFixtures.js";
22
- export * from "./ClothFixtures.js";
23
- export * from "./SoftBodyFixtures.js";
24
- export * from "./FractureFixtures.js";
25
- export * from "./FluidFixtures.js";
26
- export * from "./FireSmokeFixtures.js";
27
- export * from "./CollisionVolumes.js";
28
- export * from "./KinematicBody.js";
29
- export * from "./KinematicWorld.js";
30
- export * from "./HitboxWorld.js";
31
76
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -1,31 +1,84 @@
1
+ /**
2
+ * WS-4.1 — the backend-neutral public physics contract.
3
+ *
4
+ * ## What this file is
5
+ *
6
+ * This barrel *is* the contract. Everything a developer can reach through
7
+ * `@aura3d/physics` is listed below, grouped by the seven contract areas, and nothing in
8
+ * it names or exposes the solver underneath.
9
+ *
10
+ * That neutrality is the point, and it is load-bearing rather than stylistic. WS-4.2
11
+ * selected one production solver on measured evidence and recorded dated triggers for
12
+ * reopening the decision (`docs/architecture/physics-backend-decision.md`). A future
13
+ * backend swap is a bounded change **only** while no solver type reaches a caller: the
14
+ * solver is imported in exactly one file (`PhysicsWorld.ts`) out of ~12.6k lines, and
15
+ * every symbol it brings in is either a private field or a module-local bridge function.
16
+ * `Vec3`, `Quat`, `Bounds`, `PhysicsShape`, `RaycastHit` and the rest are Aura3D's own
17
+ * plain-array types.
18
+ *
19
+ * The solver is deliberately not named anywhere in this file — not even in prose. WS-4.1's
20
+ * proof is a grep for the backend package name over this file returning empty, so naming it
21
+ * in a comment would satisfy the letter of the contract while breaking its own gate. This
22
+ * paragraph exists because the first draft did exactly that and the gate caught it.
23
+ *
24
+ * Enforced, not asserted: `tests/unit/physics/backend-neutral-contract.test.ts` fails if a
25
+ * backend type or the package name appears in the public surface, and
26
+ * `tests/unit/physics/single-solver-ownership.test.ts` fails if a second solver returns.
27
+ *
28
+ * ## The seven contract areas
29
+ *
30
+ * Named by the PRD, and each has to be reachable from here or the contract has a hole.
31
+ *
32
+ * 1. **Bodies** — `RigidBody`, mass/inertia/damping, forces, impulses, sleep/wake.
33
+ * 2. **Colliders** — `Shape` (7 kinds), materials, layer/mask filters, sensors, volumes.
34
+ * 3. **Joints** — `Constraint`: fixed, hinge, slider, ball-socket, spring, motorised hinge.
35
+ * 4. **Raycast / shapecast** — `raycast`, `raycastAll`, `sphereCast`, `sphereCastAll`,
36
+ * ground-height sampling, swept `timeOfImpact`, `MeshBVH` and `SurfaceQuery` for
37
+ * geometry-level queries.
38
+ * 5. **Character movement** — `ArcadeCharacterController` and
39
+ * `FightingCharacterController` are explicitly authored-unit motion.
40
+ * Physical collision-constrained character movement belongs to the
41
+ * selected optional Rapier adapter.
42
+ * 6. **Vehicle** — `ArcadeVehicleTelemetry` provides non-integrating telemetry,
43
+ * Pacejka sampling, and drivetrain helpers. Physical vehicle ownership lives
44
+ * in the optional selected engine; public arcade pose/driver ownership lives
45
+ * in `GameRuntime`.
46
+ * 7. **Deterministic stepping** — `PhysicsWorld.step(dt)` with a fixed delta,
47
+ * `PhysicsStepper` for accumulator-driven fixed-step loops, and the adaptive-substep
48
+ * CCD wrapper, which is Aura3D's because the solver exposes no native swept TOI.
49
+ *
50
+ * Above the solver and deliberately kept: kinematic and hitbox worlds, debug drawing,
51
+ * and the ECS/scene bridges. Navigation and crowd ownership moved to the optional
52
+ * Recast/Detour adapter at the major-version boundary.
53
+ */
54
+ // --- 1. Bodies, and the shared math/shape vocabulary the whole contract speaks in ---
1
55
  export * from "./Shape.js";
2
56
  export * from "./RigidBody.js";
57
+ // --- 2. Colliders: shapes in the world, with materials, filters and sensors ---
3
58
  export * from "./Collider.js";
4
59
  export * from "./CollisionEvents.js";
60
+ export * from "./CollisionVolumes.js";
61
+ // --- 3. Joints ---
5
62
  export * from "./Constraint.js";
6
63
  export * from "./Constraints.js";
64
+ // --- 4. Raycast, shapecast, and geometry-level queries ---
7
65
  export * from "./Raycast.js";
8
66
  export * from "./TimeOfImpact.js";
9
- export * from "./NarrowPhase.js";
67
+ export * from "./MeshBVH.js";
68
+ export * from "./SurfaceQuery.js";
69
+ // --- 5. Character controllers ---
70
+ export * from "./ArcadeCharacterController.js";
71
+ export * from "./FightingCharacterController.js";
72
+ export * from "./KinematicBody.js";
73
+ export * from "./KinematicWorld.js";
74
+ export * from "./HitboxWorld.js";
75
+ // --- 6. Vehicle, and the racing layer above the solver ---
76
+ export * from "./ArcadeVehicleTelemetry.js";
77
+ // --- 7. Deterministic stepping ---
10
78
  export * from "./PhysicsWorld.js";
11
79
  export * from "./PhysicsStepper.js";
80
+ // --- Above the solver: bridges and diagnostics ---
12
81
  export * from "./ScenePhysicsBridge.js";
13
82
  export * from "./ECSPhysicsBridge.js";
14
83
  export * from "./PhysicsDebugDraw.js";
15
- export * from "./CharacterController.js";
16
- export * from "./Navigation.js";
17
- export * from "./Steering.js";
18
- export * from "./Crowd.js";
19
- export * from "./VehicleDynamics.js";
20
- export * from "./PlatformerFixtures.js";
21
- export * from "./PhysicsSandboxFixtures.js";
22
- export * from "./ClothFixtures.js";
23
- export * from "./SoftBodyFixtures.js";
24
- export * from "./FractureFixtures.js";
25
- export * from "./FluidFixtures.js";
26
- export * from "./FireSmokeFixtures.js";
27
- export * from "./CollisionVolumes.js";
28
- export * from "./KinematicBody.js";
29
- export * from "./KinematicWorld.js";
30
- export * from "./HitboxWorld.js";
31
84
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,uFAAuF;AACvF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,iFAAiF;AACjF,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,oBAAoB;AACpB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,4DAA4D;AAC5D,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAElC,mCAAmC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,4DAA4D;AAC5D,cAAc,6BAA6B,CAAC;AAE5C,oCAAoC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAEpC,oDAAoD;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * WS-2.2 — the parts of `@aura3d/physics` that do NOT reach the rigid-body solver.
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * `createAuraApp` needs a handful of physics values at module scope: `Shape` to translate a declared
7
+ * collider, `PhysicsStepper` to drive a fixed timestep, `ScenePhysicsBridge` to push transforms, and
8
+ * `PhysicsDebugDraw` to draw colliders. These files import `PhysicsWorld` as a *type* only.
9
+ *
10
+ * But they were reached through `@aura3d/physics`, whose barrel is a chain of `export *`, and one of
11
+ * those re-exports is `PhysicsWorld`, which reaches the selected Rapier adapter. A scene with no
12
+ * physical bodies must not download or initialize that solver.
13
+ *
14
+ * This is *not* the same defect as eager construction. `createAuraApp` already constructs its world
15
+ * lazily and carries a comment recording that eager construction cost 85 KB — that fix was correct and
16
+ * insufficient, because a lazy `new` still leaves a static `import`. A bundler keeps the module either
17
+ * way. Deferring the *import* is what actually removes the bytes.
18
+ *
19
+ * ## What is deliberately absent
20
+ *
21
+ * `PhysicsWorld`, physical controllers, `HitboxWorld`, arcade vehicle telemetry, and fixture
22
+ * modules. This entry owns geometry/query helpers only; physical simulation uses `./world`.
23
+ */
24
+ export { Shape } from "./Shape.js";
25
+ export type { BoxShape, Bounds, CapsuleShape, ConvexHullShape, HeightfieldShape, MeshShape, PhysicsShape, PlaneShape, SphereShape, Vec3 } from "./Shape.js";
26
+ export { EPSILON, vec3 } from "./Shape.js";
27
+ export { PhysicsStepper } from "./PhysicsStepper.js";
28
+ export type { PhysicsStepperResult } from "./PhysicsStepper.js";
29
+ export { ScenePhysicsBridge } from "./ScenePhysicsBridge.js";
30
+ export type { ScenePhysicsBinding, ScenePhysicsNode } from "./ScenePhysicsBridge.js";
31
+ export { PhysicsDebugDraw } from "./PhysicsDebugDraw.js";
32
+ export type { DebugLine } from "./PhysicsDebugDraw.js";
33
+ export { buildMeshBVH, raycastMesh, raycastMeshBruteForce } from "./MeshBVH.js";
34
+ export type { MeshBVH, MeshBVHBuildOptions, MeshRayHit, RaycastMeshOptions } from "./MeshBVH.js";
35
+ export { createMeshSurfaceQuery } from "./SurfaceQuery.js";
36
+ export type { MeshSurfaceQuery, MeshSurfaceQueryOptions, SurfaceSample } from "./SurfaceQuery.js";
37
+ //# sourceMappingURL=solverless.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solverless.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/solverless.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5J,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMvD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChF,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * WS-2.2 — the parts of `@aura3d/physics` that do NOT reach the rigid-body solver.
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * `createAuraApp` needs a handful of physics values at module scope: `Shape` to translate a declared
7
+ * collider, `PhysicsStepper` to drive a fixed timestep, `ScenePhysicsBridge` to push transforms, and
8
+ * `PhysicsDebugDraw` to draw colliders. These files import `PhysicsWorld` as a *type* only.
9
+ *
10
+ * But they were reached through `@aura3d/physics`, whose barrel is a chain of `export *`, and one of
11
+ * those re-exports is `PhysicsWorld`, which reaches the selected Rapier adapter. A scene with no
12
+ * physical bodies must not download or initialize that solver.
13
+ *
14
+ * This is *not* the same defect as eager construction. `createAuraApp` already constructs its world
15
+ * lazily and carries a comment recording that eager construction cost 85 KB — that fix was correct and
16
+ * insufficient, because a lazy `new` still leaves a static `import`. A bundler keeps the module either
17
+ * way. Deferring the *import* is what actually removes the bytes.
18
+ *
19
+ * ## What is deliberately absent
20
+ *
21
+ * `PhysicsWorld`, physical controllers, `HitboxWorld`, arcade vehicle telemetry, and fixture
22
+ * modules. This entry owns geometry/query helpers only; physical simulation uses `./world`.
23
+ */
24
+ export { Shape } from "./Shape.js";
25
+ export { EPSILON, vec3 } from "./Shape.js";
26
+ export { PhysicsStepper } from "./PhysicsStepper.js";
27
+ export { ScenePhysicsBridge } from "./ScenePhysicsBridge.js";
28
+ export { PhysicsDebugDraw } from "./PhysicsDebugDraw.js";
29
+ /*
30
+ * Mesh queries are geometry, not simulation. `MeshBVH` and `SurfaceQuery` import only `Shape`'s
31
+ * types, so grounding a vehicle or a character on a real mesh needs no solver — which is also WS-4.5's
32
+ * point about MeshBVH having responsibilities beyond physics contact.
33
+ */
34
+ export { buildMeshBVH, raycastMesh, raycastMeshBruteForce } from "./MeshBVH.js";
35
+ export { createMeshSurfaceQuery } from "./SurfaceQuery.js";
36
+ //# sourceMappingURL=solverless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solverless.js","sourceRoot":"","sources":["../../../../packages/physics/src/solverless.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * WS-2.2 — `PhysicsWorld` and the solver, as a narrow entry point.
3
+ *
4
+ * ## Why this exists rather than importing the barrel
5
+ *
6
+ * `app.physics` is documented and tested as being live **synchronously** for every app
7
+ * (`tests/unit/agent-api/lazy-physics-world.test.ts`), so `createAuraApp` must be able to construct a
8
+ * world without awaiting. That rules out loading the solver with `await import()` — R7 forbids breaking
9
+ * working semantics to chase a byte count, and an async-only `app.physics` would break every existing
10
+ * caller.
11
+ *
12
+ * The selected Rapier solver is imported statically from this narrow entry instead of the
13
+ * compatibility barrel. This preserves synchronous `app.physics` construction after the
14
+ * adapter module's one-time WASM initialization without pulling unrelated arcade or query APIs.
15
+ */
16
+ export { PhysicsWorld } from "./PhysicsWorld.js";
17
+ export type { PhysicsBackend, PhysicsBackendPreference, PhysicsBackendSelection, PhysicsContinuousCollisionDescriptor, PhysicsContinuousCollisionSelection, PhysicsSnapshot, PhysicsStepStats, PhysicsWorldDescriptor } from "./PhysicsWorld.js";
18
+ //# sourceMappingURL=world.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/world.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACpC,mCAAmC,EACnC,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC"}
package/dist/world.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * WS-2.2 — `PhysicsWorld` and the solver, as a narrow entry point.
3
+ *
4
+ * ## Why this exists rather than importing the barrel
5
+ *
6
+ * `app.physics` is documented and tested as being live **synchronously** for every app
7
+ * (`tests/unit/agent-api/lazy-physics-world.test.ts`), so `createAuraApp` must be able to construct a
8
+ * world without awaiting. That rules out loading the solver with `await import()` — R7 forbids breaking
9
+ * working semantics to chase a byte count, and an async-only `app.physics` would break every existing
10
+ * caller.
11
+ *
12
+ * The selected Rapier solver is imported statically from this narrow entry instead of the
13
+ * compatibility barrel. This preserves synchronous `app.physics` construction after the
14
+ * adapter module's one-time WASM initialization without pulling unrelated arcade or query APIs.
15
+ */
16
+ export { PhysicsWorld } from "./PhysicsWorld.js";
17
+ //# sourceMappingURL=world.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../../../../packages/physics/src/world.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,17 +1,25 @@
1
1
  {
2
2
  "name": "@aura3d/physics",
3
- "version": "1.5.2",
3
+ "version": "2.0.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "sideEffects": false,
8
8
  "dependencies": {
9
- "cannon-es": "0.20.0"
9
+ "@aura3d/physics-rapier": "2.0.1"
10
10
  },
11
11
  "exports": {
12
12
  ".": {
13
13
  "types": "./dist/index.d.ts",
14
14
  "import": "./dist/index.js"
15
+ },
16
+ "./solverless": {
17
+ "types": "./dist/solverless.d.ts",
18
+ "import": "./dist/solverless.js"
19
+ },
20
+ "./world": {
21
+ "types": "./dist/world.d.ts",
22
+ "import": "./dist/world.js"
15
23
  }
16
24
  },
17
25
  "description": "Deterministic rigid-body simulation, collision shapes, contacts, constraints, raycasts, fixed stepping, scene/ECS bridges, and debug draw extraction.",