tosijs-3d 0.12.1 → 0.12.3

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 (300) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/changelog/v0.12.2.md +26 -0
  3. package/changelog/v0.12.3.md +47 -0
  4. package/dist/agent-driver.d.ts +75 -0
  5. package/dist/agent-driver.d.ts.map +1 -0
  6. package/dist/agent-driver.js +163 -0
  7. package/dist/agent-driver.js.map +1 -0
  8. package/dist/angle-field.d.ts.map +1 -1
  9. package/dist/angle-field.js +24 -0
  10. package/dist/angle-field.js.map +1 -1
  11. package/dist/aria-mirror.d.ts +36 -0
  12. package/dist/aria-mirror.d.ts.map +1 -0
  13. package/dist/aria-mirror.js +526 -0
  14. package/dist/aria-mirror.js.map +1 -0
  15. package/dist/b3d-agent.d.ts +118 -0
  16. package/dist/b3d-agent.d.ts.map +1 -0
  17. package/dist/b3d-agent.js +774 -0
  18. package/dist/b3d-agent.js.map +1 -0
  19. package/dist/b3d-aircraft.d.ts +1 -0
  20. package/dist/b3d-aircraft.d.ts.map +1 -1
  21. package/dist/b3d-aircraft.js +2 -1
  22. package/dist/b3d-aircraft.js.map +1 -1
  23. package/dist/b3d-biped.d.ts +2 -0
  24. package/dist/b3d-biped.d.ts.map +1 -1
  25. package/dist/b3d-biped.js +29 -1
  26. package/dist/b3d-biped.js.map +1 -1
  27. package/dist/b3d-car.d.ts +1 -0
  28. package/dist/b3d-car.d.ts.map +1 -1
  29. package/dist/b3d-car.js +2 -1
  30. package/dist/b3d-car.js.map +1 -1
  31. package/dist/b3d-cloud-deck.d.ts.map +1 -1
  32. package/dist/b3d-cloud-deck.js +4 -2
  33. package/dist/b3d-cloud-deck.js.map +1 -1
  34. package/dist/b3d-controllable.d.ts +15 -1
  35. package/dist/b3d-controllable.d.ts.map +1 -1
  36. package/dist/b3d-controllable.js +40 -3
  37. package/dist/b3d-controllable.js.map +1 -1
  38. package/dist/b3d-input-focus.d.ts +5 -0
  39. package/dist/b3d-input-focus.d.ts.map +1 -1
  40. package/dist/b3d-input-focus.js +13 -0
  41. package/dist/b3d-input-focus.js.map +1 -1
  42. package/dist/b3d-launcher.d.ts +22 -0
  43. package/dist/b3d-launcher.d.ts.map +1 -1
  44. package/dist/b3d-launcher.js +147 -33
  45. package/dist/b3d-launcher.js.map +1 -1
  46. package/dist/b3d-library.d.ts.map +1 -1
  47. package/dist/b3d-library.js +5 -3
  48. package/dist/b3d-library.js.map +1 -1
  49. package/dist/b3d-panel.d.ts.map +1 -1
  50. package/dist/b3d-panel.js +6 -0
  51. package/dist/b3d-panel.js.map +1 -1
  52. package/dist/b3d-tank.d.ts +1 -0
  53. package/dist/b3d-tank.d.ts.map +1 -1
  54. package/dist/b3d-tank.js +2 -1
  55. package/dist/b3d-tank.js.map +1 -1
  56. package/dist/bar-menu.d.ts +15 -0
  57. package/dist/bar-menu.d.ts.map +1 -1
  58. package/dist/bar-menu.js +22 -10
  59. package/dist/bar-menu.js.map +1 -1
  60. package/dist/bone-heat.d.ts +1 -0
  61. package/dist/bone-heat.d.ts.map +1 -1
  62. package/dist/bone-heat.js +205 -3
  63. package/dist/bone-heat.js.map +1 -1
  64. package/dist/character-builder.d.ts +1 -24
  65. package/dist/character-builder.d.ts.map +1 -1
  66. package/dist/character-builder.js +362 -103
  67. package/dist/character-builder.js.map +1 -1
  68. package/dist/character-core.d.ts.map +1 -1
  69. package/dist/character-core.js +13 -1
  70. package/dist/character-core.js.map +1 -1
  71. package/dist/character-file.d.ts.map +1 -1
  72. package/dist/character-file.js +13 -4
  73. package/dist/character-file.js.map +1 -1
  74. package/dist/character-settings.d.ts +1 -1
  75. package/dist/character-settings.d.ts.map +1 -1
  76. package/dist/character-settings.js +17 -1
  77. package/dist/character-settings.js.map +1 -1
  78. package/dist/character-store.d.ts +16 -0
  79. package/dist/character-store.d.ts.map +1 -1
  80. package/dist/character-store.js +17 -0
  81. package/dist/character-store.js.map +1 -1
  82. package/dist/character.d.ts +11 -0
  83. package/dist/character.d.ts.map +1 -1
  84. package/dist/character.js +85 -81
  85. package/dist/character.js.map +1 -1
  86. package/dist/city-drive.d.ts.map +1 -1
  87. package/dist/city-drive.js +22 -3
  88. package/dist/city-drive.js.map +1 -1
  89. package/dist/cloth-bake.d.ts +12 -0
  90. package/dist/cloth-bake.d.ts.map +1 -0
  91. package/dist/cloth-bake.js +75 -0
  92. package/dist/cloth-bake.js.map +1 -0
  93. package/dist/cloth-drape.d.ts +33 -0
  94. package/dist/cloth-drape.d.ts.map +1 -0
  95. package/dist/cloth-drape.js +561 -0
  96. package/dist/cloth-drape.js.map +1 -0
  97. package/dist/color-field.d.ts.map +1 -1
  98. package/dist/color-field.js +11 -0
  99. package/dist/color-field.js.map +1 -1
  100. package/dist/color-picker.d.ts.map +1 -1
  101. package/dist/color-picker.js +6 -0
  102. package/dist/color-picker.js.map +1 -1
  103. package/dist/curve-field.d.ts.map +1 -1
  104. package/dist/curve-field.js +28 -6
  105. package/dist/curve-field.js.map +1 -1
  106. package/dist/curve-program.d.ts.map +1 -1
  107. package/dist/curve-program.js +12 -0
  108. package/dist/curve-program.js.map +1 -1
  109. package/dist/extremes-bones.d.ts +31 -0
  110. package/dist/extremes-bones.d.ts.map +1 -0
  111. package/dist/extremes-bones.js +130 -0
  112. package/dist/extremes-bones.js.map +1 -0
  113. package/dist/extremes-corners.d.ts +17 -0
  114. package/dist/extremes-corners.d.ts.map +1 -0
  115. package/dist/extremes-corners.js +137 -0
  116. package/dist/extremes-corners.js.map +1 -0
  117. package/dist/extremes-penetration.d.ts +53 -0
  118. package/dist/extremes-penetration.d.ts.map +1 -0
  119. package/dist/extremes-penetration.js +120 -0
  120. package/dist/extremes-penetration.js.map +1 -0
  121. package/dist/extremes-report.d.ts +73 -0
  122. package/dist/extremes-report.d.ts.map +1 -0
  123. package/dist/extremes-report.js +303 -0
  124. package/dist/extremes-report.js.map +1 -0
  125. package/dist/extremes-sheet.d.ts +18 -0
  126. package/dist/extremes-sheet.d.ts.map +1 -0
  127. package/dist/extremes-sheet.js +239 -0
  128. package/dist/extremes-sheet.js.map +1 -0
  129. package/dist/extremes-sweep.d.ts +117 -0
  130. package/dist/extremes-sweep.d.ts.map +1 -0
  131. package/dist/extremes-sweep.js +260 -0
  132. package/dist/extremes-sweep.js.map +1 -0
  133. package/dist/eye-art.d.ts +52 -0
  134. package/dist/eye-art.d.ts.map +1 -0
  135. package/dist/eye-art.js +152 -0
  136. package/dist/eye-art.js.map +1 -0
  137. package/dist/fit-extremes.d.ts +7 -0
  138. package/dist/fit-extremes.d.ts.map +1 -0
  139. package/dist/fit-extremes.js +55 -0
  140. package/dist/fit-extremes.js.map +1 -0
  141. package/dist/footprint-field.d.ts.map +1 -1
  142. package/dist/footprint-field.js +20 -0
  143. package/dist/footprint-field.js.map +1 -1
  144. package/dist/frame-panel.d.ts.map +1 -1
  145. package/dist/frame-panel.js +25 -12
  146. package/dist/frame-panel.js.map +1 -1
  147. package/dist/garment-cut.d.ts +15 -0
  148. package/dist/garment-cut.d.ts.map +1 -1
  149. package/dist/garment-cut.js +84 -1
  150. package/dist/garment-cut.js.map +1 -1
  151. package/dist/glass-gamepad.d.ts +4 -0
  152. package/dist/glass-gamepad.d.ts.map +1 -1
  153. package/dist/glass-gamepad.js +74 -0
  154. package/dist/glass-gamepad.js.map +1 -1
  155. package/dist/glb-chunks.d.ts.map +1 -1
  156. package/dist/glb-chunks.js.map +1 -1
  157. package/dist/glb-rig.d.ts +48 -0
  158. package/dist/glb-rig.d.ts.map +1 -0
  159. package/dist/glb-rig.js +412 -0
  160. package/dist/glb-rig.js.map +1 -0
  161. package/dist/hair-place.d.ts +135 -0
  162. package/dist/hair-place.d.ts.map +1 -0
  163. package/dist/hair-place.js +396 -0
  164. package/dist/hair-place.js.map +1 -0
  165. package/dist/human-face.d.ts +11 -1
  166. package/dist/human-face.d.ts.map +1 -1
  167. package/dist/human-face.js +86 -3
  168. package/dist/human-face.js.map +1 -1
  169. package/dist/human-hair.d.ts +5 -87
  170. package/dist/human-hair.d.ts.map +1 -1
  171. package/dist/human-hair.js +11 -245
  172. package/dist/human-hair.js.map +1 -1
  173. package/dist/human-rig.d.ts +50 -3
  174. package/dist/human-rig.d.ts.map +1 -1
  175. package/dist/human-rig.js +196 -3
  176. package/dist/human-rig.js.map +1 -1
  177. package/dist/icon-data.d.ts +2 -0
  178. package/dist/icon-data.d.ts.map +1 -1
  179. package/dist/icon-data.js +6 -4
  180. package/dist/icon-data.js.map +1 -1
  181. package/dist/icon-grid.d.ts.map +1 -1
  182. package/dist/icon-grid.js +13 -0
  183. package/dist/icon-grid.js.map +1 -1
  184. package/dist/index.d.ts +29 -12
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +21 -7
  187. package/dist/index.js.map +1 -1
  188. package/dist/inspect-view.d.ts +21 -0
  189. package/dist/inspect-view.d.ts.map +1 -1
  190. package/dist/inspect-view.js +22 -1
  191. package/dist/inspect-view.js.map +1 -1
  192. package/dist/keyboard.d.ts +11 -0
  193. package/dist/keyboard.d.ts.map +1 -1
  194. package/dist/keyboard.js +27 -1
  195. package/dist/keyboard.js.map +1 -1
  196. package/dist/land-and-sky.js +1 -0
  197. package/dist/land-and-sky.js.map +1 -1
  198. package/dist/light-editor.d.ts.map +1 -1
  199. package/dist/light-editor.js +12 -0
  200. package/dist/light-editor.js.map +1 -1
  201. package/dist/light-pool.d.ts +7 -0
  202. package/dist/light-pool.d.ts.map +1 -1
  203. package/dist/light-pool.js +11 -0
  204. package/dist/light-pool.js.map +1 -1
  205. package/dist/material-picker.d.ts.map +1 -1
  206. package/dist/material-picker.js +10 -0
  207. package/dist/material-picker.js.map +1 -1
  208. package/dist/mesh-sdf.d.ts +30 -0
  209. package/dist/mesh-sdf.d.ts.map +1 -0
  210. package/dist/mesh-sdf.js +453 -0
  211. package/dist/mesh-sdf.js.map +1 -0
  212. package/dist/picker.d.ts.map +1 -1
  213. package/dist/picker.js +14 -0
  214. package/dist/picker.js.map +1 -1
  215. package/dist/playground.d.ts.map +1 -1
  216. package/dist/playground.js +32 -12
  217. package/dist/playground.js.map +1 -1
  218. package/dist/png.d.ts +12 -0
  219. package/dist/png.d.ts.map +1 -1
  220. package/dist/png.js +82 -1
  221. package/dist/png.js.map +1 -1
  222. package/dist/proxy-cover.d.ts +23 -0
  223. package/dist/proxy-cover.d.ts.map +1 -1
  224. package/dist/proxy-cover.js +31 -18
  225. package/dist/proxy-cover.js.map +1 -1
  226. package/dist/remesh.d.ts +36 -0
  227. package/dist/remesh.d.ts.map +1 -0
  228. package/dist/remesh.js +556 -0
  229. package/dist/remesh.js.map +1 -0
  230. package/dist/retarget.d.ts +5 -0
  231. package/dist/retarget.d.ts.map +1 -1
  232. package/dist/retarget.js +17 -10
  233. package/dist/retarget.js.map +1 -1
  234. package/dist/rig-build.d.ts +5 -0
  235. package/dist/rig-build.d.ts.map +1 -1
  236. package/dist/rig-build.js +5 -1
  237. package/dist/rig-build.js.map +1 -1
  238. package/dist/rig-fit.d.ts.map +1 -1
  239. package/dist/rig-fit.js +62 -8
  240. package/dist/rig-fit.js.map +1 -1
  241. package/dist/rig-tool.d.ts +7 -1
  242. package/dist/rig-tool.d.ts.map +1 -1
  243. package/dist/rig-tool.js +332 -63
  244. package/dist/rig-tool.js.map +1 -1
  245. package/dist/rigged-body-glb.d.ts +34 -0
  246. package/dist/rigged-body-glb.d.ts.map +1 -0
  247. package/dist/rigged-body-glb.js +872 -0
  248. package/dist/rigged-body-glb.js.map +1 -0
  249. package/dist/rigged-body.d.ts.map +1 -1
  250. package/dist/rigged-body.js +31 -1
  251. package/dist/rigged-body.js.map +1 -1
  252. package/dist/scene-description.d.ts +36 -0
  253. package/dist/scene-description.d.ts.map +1 -0
  254. package/dist/scene-description.js +131 -0
  255. package/dist/scene-description.js.map +1 -0
  256. package/dist/scene-schemas.d.ts.map +1 -1
  257. package/dist/scene-schemas.js +2 -0
  258. package/dist/scene-schemas.js.map +1 -1
  259. package/dist/skin-paint.d.ts +35 -0
  260. package/dist/skin-paint.d.ts.map +1 -0
  261. package/dist/skin-paint.js +156 -0
  262. package/dist/skin-paint.js.map +1 -0
  263. package/dist/skinned-glb.d.ts +14 -0
  264. package/dist/skinned-glb.d.ts.map +1 -1
  265. package/dist/skinned-glb.js +26 -2
  266. package/dist/skinned-glb.js.map +1 -1
  267. package/dist/spring-vrm.d.ts +59 -0
  268. package/dist/spring-vrm.d.ts.map +1 -0
  269. package/dist/spring-vrm.js +243 -0
  270. package/dist/spring-vrm.js.map +1 -0
  271. package/dist/tailor-tool.d.ts +8 -0
  272. package/dist/tailor-tool.d.ts.map +1 -1
  273. package/dist/tailor-tool.js +93 -16
  274. package/dist/tailor-tool.js.map +1 -1
  275. package/dist/terrain-editor.d.ts.map +1 -1
  276. package/dist/terrain-editor.js +10 -0
  277. package/dist/terrain-editor.js.map +1 -1
  278. package/dist/tosi-b3d.d.ts +128 -1
  279. package/dist/tosi-b3d.d.ts.map +1 -1
  280. package/dist/tosi-b3d.js +571 -7
  281. package/dist/tosi-b3d.js.map +1 -1
  282. package/dist/ual-rest.d.ts +7 -0
  283. package/dist/ual-rest.d.ts.map +1 -0
  284. package/dist/ual-rest.js +396 -0
  285. package/dist/ual-rest.js.map +1 -0
  286. package/dist/vector-field.d.ts +2 -0
  287. package/dist/vector-field.d.ts.map +1 -1
  288. package/dist/vector-field.js +15 -0
  289. package/dist/vector-field.js.map +1 -1
  290. package/dist/widget-semantics.d.ts +107 -0
  291. package/dist/widget-semantics.d.ts.map +1 -0
  292. package/dist/widget-semantics.js +296 -0
  293. package/dist/widget-semantics.js.map +1 -0
  294. package/dist/widgets3d.d.ts +50 -1
  295. package/dist/widgets3d.d.ts.map +1 -1
  296. package/dist/widgets3d.js +301 -20
  297. package/dist/widgets3d.js.map +1 -1
  298. package/package.json +5 -2
  299. package/static/attributes.json +20 -1
  300. package/static/attributes.txt +8 -1
package/CHANGELOG.md CHANGED
@@ -12,13 +12,14 @@ Upgrading across a minor? Start with [Migration](/Migration/).
12
12
 
13
13
  ## Unreleased
14
14
 
15
- ## 0.12.1
15
+ ## 0.12.3
16
16
 
17
- The latest release. A rigged, morphing body written out as a GLB with no engine (`tosijs-3d/skinned-glb`, with `tosijs-3d/glb-chunks`), moved here from Dramatis. See [0.12.1](/v0.12.1/).
17
+ The latest release. Characters out to other engines (a GLB read with no engine, any rigged body as a skinned GLB that plays UAL's clips by name, springs as `VRMC_springBone`), the rig tool's fixes for AI-made meshes, draped cloth, and scenes as agent tools and for a screen reader. See [0.12.3](/v0.12.3/).
18
18
 
19
19
  ## Every version
20
20
 
21
21
  <!-- toc -->
22
+ - [0.12.2](/v0.12.2/)
22
23
  - [0.12.1](/v0.12.1/)
23
24
  - [0.12.0](/v0.12.0/)
24
25
  - [0.11.6](/v0.11.6/)
@@ -0,0 +1,26 @@
1
+ # 0.12.2
2
+
3
+ <!--{ "parent": "CHANGELOG", "order": 9987998 }-->
4
+
5
+ More of the character, engine-free: eyes from Tonio's art, hair placed with no engine, lips and stubble as vertex colours, cloth recoloured into its texture, and the extremes sweep, all moved here from Dramatis. The character builder's save and rename ask in a popup.
6
+
7
+ Size: barrel (min, packages external) 1516.6 KB raw / 526.0 KB gz, up 6.2 KB / 2.3 KB gz (+0.4%): the eye art painter, `pngDecode` and the save popup are in the barrel; the rest are subpaths.
8
+
9
+ ## Added
10
+
11
+ - **Eyes from a picture**: `eyeTexture({ style: 'basic' | 'anime' })` paints Tonio's CC0 eye art with its iris recoloured, and a character's new `eyeStyle` setting picks it (`basic` by default; `drawn` keeps the eye drawn in code, which also shows while the art loads). `tosijs-3d/eye-art` is the engine-free half: the art's URLs, `recolourEyePng`, and `gltfEyeUvs` for an export. `pngDecode` joins `pngEncode`.
12
+ - **`tosijs-3d/hair-place`**: hair placed on a body's head with no engine (`headScalp`, `placeHair`, and the hair library read from its GLB with `readHairLibrary`). `human-hair` uses it and re-exports what it exported before.
13
+ - **Baked materials**: `tosijs-3d/skin-paint` (`lipTint`, `stubbleTint`, `stubbleMask`) gives the lips and stubble as per-vertex colours over the skin's albedo, and `writeSkinnedGlb` writes them as `COLOR_0` (a primitive's new `colors`), which glTF multiplies into the base colour, so no texture is needed. `tosijs-3d/cloth-bake` (`recolourCloth`, `textureMean`, `clothSheenColour`) bakes a garment's recolour into its texture as cloth-shading draws it. `lipTint` and `stubbleTint` moved from character-builder and are still exported from the barrel.
14
+ - **`tosijs-3d/fit-extremes`** and **`bun run extremes`**: every MakeHuman garment and Quaternius hairstyle on 133 bodies at the sliders' corners, measured for penetration (raw, and visible past the skin's tuck) and bone sanity, with a markdown/JSON report and a headless contact sheet of the worst cases.
15
+ - **`tosijs-3d/mesh-sdf`**: signed distance to a triangle mesh.
16
+ - **`coverDepths`** (proxy-cover): how deep each skin vertex goes under what is worn, the rule `coverSkin` applies before its fade.
17
+ - **`button3d({ popup })`**: a button that opens a small form (controls, flat and in a headset) in a popup anchored to it; the controls get a handle to close it or show the next step.
18
+ - All the new modules are in the engine-free [character core](/character-core/).
19
+
20
+ ## Changed
21
+
22
+ - **Character builder**: `save…` asks for the name in a popup (filled in with the current one), refuses a blank name or the working figure's with a reason, and asks before replacing another saved character; `rename…` renames the picked one. Both work in a headset. `nameCharacter` (character-store) is the rule.
23
+
24
+ ## Fixed
25
+
26
+ - Stubble no longer darkens the lower lip.
@@ -0,0 +1,47 @@
1
+ # 0.12.3
2
+
3
+ <!--{ "parent": "CHANGELOG", "order": 9987997 }-->
4
+
5
+ Characters out to other engines and any mesh rigged well: a GLB read with no engine, any rigged body written as a skinned GLB that plays UAL's clips by name in three.js, Unity, Godot and Blender, and its springs as `VRMC_springBone`; the rig tool's fixes for AI-made meshes; draped cloth in the tailor; and scenes as agent tools and for a screen reader.
6
+
7
+ Size: barrel (min, packages external) 1596.0 KB raw / 555.0 KB gz, up 85.6 KB / 31.3 KB gz (+5.7%): scenes as agent tools, widget semantics, the screen-reader mirror and the scene description, and the drape and remesh are in the barrel; `glb-rig`, `rigged-body-glb`, `ual-rest` and `spring-vrm` are subpaths.
8
+
9
+ ## Added
10
+
11
+ - **`tosijs-3d/glb-rig`**: `glbRigTriangles(bytes, { pick })` reads a mesh file's triangles for rigging with no engine: the file's frame, a skinned mesh at rest, one surface per material carrying its glTF material and its pictures as bytes, eyes split out. It agrees with `loadRigTriangles`, and `bodyFromMarkers` on it rigs a body with no scene (the same bytes and markers give the same weights).
12
+ - **`tosijs-3d/rigged-body-glb`**: `riggedBodyGlb(body, { naming, restPose, height, recipe, extras })` writes any rigged body (from the rig tool, a file's own skin, MakeHuman) as a skinned GLB in Dramatis's export profile: UAL's 65 joints with UAL's rest frames, so UAL's clips play on it by name; a T-pose by default (or the body as rigged); the soles at y = 0 under the origin; `body` and `eyes` meshes; the file's own materials and pictures; UE or Mixamo joint names. `tosijs-3d/ual-rest` is UAL's rest pose as data (`bin/ual-rest.ts` regenerates it).
13
+ - **`tosijs-3d/spring-vrm`**: a rig recipe's springs (a tail, strands hung from a bone, with colliders) go out as `VRMC_springBone`, which three-vrm, UniVRM and Godot's VRM importer read with no setup, and as `TOSIJS_spring_chains` with our own settings (`springChainsSchema()`). The page says where VRM's spring model differs from ours.
14
+ - `writeSkinnedGlb` writes emissive materials and root-level `extensions`.
15
+ - **Draped cloth in the tailor** (`tosijs-3d/cloth-drape`, `drapeGarment`): an outline becomes a front and a back piece laid over the body, sewn up its steep sides, bridged over hollows and settled under gravity. Pick it as "made by: drape". The tailor cuts from an even surface laid over the body at a density you pick, finer where the body is thin.
16
+ - **Character builder**: Tonio's AI-made characters (Keisha and Kevin, in underwear and in spacesuits) are bodies, one picked at random on a first visit; a **View** menu on the system bar, shared with the hosted rig tool, with a right-hand view that follows the palm through the clip; **clips from a file** (any skinned GLB's animations, Mixamo's or Meshy's, retargeted onto the body shown); every clip in the library; **hold** an item in the right hand, placed by its grip and saved with the character (`handSocket`, `deriveGrip`, `heldGrip`); **body detail** draws MakeHuman's own lighter body proxies; revert, delete, and the selector shows the character on screen.
17
+ - **Rig tool**: markers colour-coded with a reference mannequin; a dragged wrist or knee carries its hand or foot, a dragged shoulder or elbow the markers below it; joints mode shows every joint.
18
+ - **Scenes as agent tools** (`b3d-agent`): each `<tosi-b3d>` offers tools on WebMCP (`registerTool` only) and on `window.b3dAgent`: `b3d_<scene>_scene` and `_places` (named things and beacons, in world metres, with distance and bearing), `_snapshot`, `_control_go` (drives the vehicle in focus to a named place with its own controls; the player's input cancels it), `_control_hold`, `_control_status`, `_control_stop`, and the settings panel (`_panel`, `_panel_set`, `_panel_activate`). Closed by default: `enableSceneAgents({ expose: 'all' | 'read' })` opens the page, and a scene's new `agent` attribute (`read`, `on`, `off`) overrides it. `b3d.originOffset` is how far the floating origin has moved. Changing a scene's `agent` (or its name) after it is on the page updates its tools (#3699).
19
+ - **`bun run xr --flat --script`** now runs the script (it was ignored without VR), and a script that throws fails the run.
20
+ - **`semantics()` on every panel widget** (`tosijs-3d/widget-semantics`): a control says what it is (role, name, value) and can be set or pressed through its own path, as a hand would. `panel.controls()` reads a panel as a tree of named controls, including an open popup's form; `findControl` and `nameProblems` (unnamed or duplicate controls) work on it. `inputField` and `vector3d` take a `name`; `tabs3d` a `name`. This is the base the WebMCP tools and the screen-reader mirror are built on (#3699).
21
+ - **A screen reader can use the settings panel** (`tosijs-3d/aria-mirror`): an open flat panel is mirrored as visually hidden HTML controls (buttons, switches, range inputs, selects, text and number fields; sections as headings), which set or press the panel's own widgets. The system bar's HTML buttons now stay in the accessibility tree in scene mode (they were `visibility: hidden`) and appear while one has keyboard focus, so Tab goes from the owl into the settings. `ariaMirror(host, read)` mirrors any panel (#3699).
22
+ - **Every demo's settings panel passes the name test** (63 pages, about 1000 controls). The big editors describe themselves too: `curve3d` and `footprint3d` are editors whose value is their points and whose options are their presets (set either), and `curveProgram3d`, `lightEditor3d` and `terrainEditor3d` list their rows. A `list3d` item may carry a `title`, its accessible name when the label is not unique; an indented label is trimmed (#3699).
23
+ - **A keyboard and screen-reader pass over the panels** (`bun run screen-reader <page> --steps …`, a driver that reads only Chrome's accessibility tree and presses real keys). Fixes from it: the owl says whether its panel is open (`aria-expanded`); a slider announces its formatted value (`semantics().valueText`, `aria-valuetext`: "50 km", "±13 °C"); a log-scale slider is stepped along its track, not in equal steps of its value; focus stays in place when the control it was on is renamed (Pause becoming Resume); a toolbar with no name is "tools". `button3d` takes a `title` (its name and tooltip when the label is a glyph), and the name test now reports a control named only by a glyph such as `⋯` (#3699).
24
+ - **The 3D view for a screen reader**: the canvas is an image named "<title>, 3D scene", described in words (`describeScene`, `tosijs-3d/scene-description`: what you are in, which way you face, the time of day, the named things nearby with distance and direction). Built only when asked for: once when the scene appears, when the canvas takes focus, and by a visually hidden "Describe the scene" button that speaks it; never on a timer (#3699).
25
+ - **Assistive features cost nothing until used, and sit where things are drawn**: a scene builds no mirror, description or pad labels until focus first lands in it (not focus from a mouse or finger press: clicking the scene focuses its canvas) or one of its hidden buttons is pressed for real (iOS VoiceOver presses without focusing) (`b3d.assistive`), and runs no timer even then (values are re-read when a control takes focus). The mirrored controls are placed exactly over the drawn panel, modal and system bar (`ariaMirror`'s `place`; `ControlNode.box`, `WidgetSemantics.box` / `childBoxes`), so VoiceOver's touch exploration on a phone finds "Continue" where it is drawn and a double-tap lands on it (#3699).
26
+ - **Modals for a screen reader**: a modal (`showModal`: the pause, a respawn panel) is mirrored as a hidden dialog that takes focus on its first control (Continue) and gives focus back when it closes, so a pause can be dismissed with no pointer. It is always mirrored, not only once a scene is in use, because a modal blocks the page; its title ("Paused") is also announced. `ariaMirror` takes `role: 'dialog'`. Pressing a mirrored copy no longer counts as a press outside the settings panel (that closed the panel before the copy's click). Placed copies are real touch targets over the drawn controls, unpainted but opaque and, where the main pointer is a finger, touchable (`UNPAINTED`; with a mouse every press goes through to the drawn panel): iOS VoiceOver finds what a finger is on by hit-testing and passed transparent, untouchable copies over for the canvas. In use, the system bar's real buttons are touch targets the same way, and a copy with keyboard focus shows a ring over the drawn control. While a modal is open the system bar's buttons and the panel's copies are inert, so a reader cannot open the settings from behind a pause (#3699).
27
+ - **The glass gamepad says where its controls are and what they do**: each control is named for a screen reader ("A button, bottom right: handbrake"), from the driven entity's new `inputLabels` (car, tank, aircraft and biped carry their mapping's labels), updated when you change what you control. The pad also stays hidden while the scene is loading.
28
+ - **A weapon in a hand holds the same way on any rig**: a launcher with `socket: 'right-hand'` or `'left-hand'` rides a node under the hand oriented by the hand's anatomy at rest (forearm, thumb side), calibrated so UAL's hand is unchanged. A character from the character builder held the playground's pistol at a wrong angle and mirrored, because its hand bone's axes and mirror differ from UAL's.
29
+ - **Character builder ↔ Biped Playground**: the builder is under Demos, and **play in Biped Playground** takes the figure you are working on straight there (`/playground/?character=…`). The playground lists that figure as "from the character builder", loads the character it shows (the last one picked, remembered in this browser), and links back with **make your own character…**.
30
+ - **A sideways trackpad drag over a scene no longer swipes the page back or forward**: a scene cancels the default of a mostly horizontal wheel over it (the camera and panels still get the event).
31
+ - **Input trace in development**: with the debug sink on (the dev server), a scene posts each press it receives (touch, pointer, click, focus: real target, position, whether genuine) to the sink as `input`, so how a phone's screen reader presses things can be read rather than guessed (#3699).
32
+ - **Clouds drift on the sky's clock**: a cloud deck under a sky sped up with `realtimeScale` drifts and evolves that much faster, so a time-lapse carries its clouds; a stopped sky leaves them in real time (`skyRate(owner)`).
33
+
34
+ ## Changed
35
+
36
+ - **Bone heat with visibility**: a bone heats only the skin it can see, radiating along its whole length.
37
+ - **Arm space follows the clip**: how far a clip hangs the arm decides how much arm space applies.
38
+ - A biped's character loads out of sight and appears standing where it belongs.
39
+
40
+ ## Fixed
41
+
42
+ - **The rig tool stands a model on the floor when its file's origin is its middle** (Meshy's are), not its feet: on 0.12.2 these stood half under the floor.
43
+ - **Auto-rig**: a body with its arms held out keeps the arm bones off its ribcage and the collarbones off the chest; a held-out arm's shoulder clears the body; the thighs stay out of the belly, so a walk no longer squashes the torso; the elbow is found on arms held steeply down.
44
+ - **Done in the rig tool no longer makes the character vanish.**
45
+ - The tailor cuts a file's body as one surface (seams split for UVs are welded first).
46
+ - A character in the Biped Playground wears its clothes' saved colours, not white; a reload of the builder remembers which saved character you were editing.
47
+ - Panels fold their own sections, and the rig tool wears a mesh's own materials.
@@ -0,0 +1,75 @@
1
+ import type { ControlInput } from './control-input.js';
2
+ type Vec = {
3
+ x: number;
4
+ y?: number;
5
+ z: number;
6
+ };
7
+ /** Degrees, 0 = +z, 90 = +x, from a direction. */
8
+ export declare function headingDeg(dir: Vec): number;
9
+ /** The turn from `heading` at `from` to face `to`: -180..180, + is right. */
10
+ export declare function bearingDeg(from: Vec, heading: number, to: Vec): number;
11
+ /** Where the driven thing is: world metres, heading in degrees, speed along its nose in m/s. */
12
+ export interface DriverPose {
13
+ x: number;
14
+ z: number;
15
+ heading: number;
16
+ speed: number;
17
+ }
18
+ export type DriverState = 'idle' | 'running' | 'arrived' | 'done' | 'stuck' | 'cancelled';
19
+ export interface DriverStatus {
20
+ state: DriverState;
21
+ command?: 'hold' | 'go';
22
+ /** A go's destination, by name when it has one. */
23
+ place?: string;
24
+ target?: {
25
+ x: number;
26
+ z: number;
27
+ };
28
+ /** Metres left, on a go. */
29
+ distance?: number;
30
+ /** Seconds since the command started (world time). */
31
+ elapsed: number;
32
+ /** Why it ended, when it did not simply finish. */
33
+ reason?: string;
34
+ }
35
+ /** How a go drives: the defaults suit a car in town. */
36
+ export interface GoOptions {
37
+ place?: string;
38
+ /** Top speed, m/s (default 10). */
39
+ speed?: number;
40
+ /** Close enough, metres (default 4). */
41
+ arrive?: number;
42
+ /** Give up after this long, seconds of world time (default 120). */
43
+ timeout?: number;
44
+ }
45
+ /** Smallest stick or button the player can press on purpose. */
46
+ export declare const DELIBERATE = 0.2;
47
+ /** Is the player pressing anything? A twitch under `DELIBERATE` is not. */
48
+ export declare function isDeliberate(input: ControlInput): boolean;
49
+ export declare class AgentDriver {
50
+ private _status;
51
+ private hold;
52
+ private goal;
53
+ private best;
54
+ private sinceProgress;
55
+ get status(): DriverStatus;
56
+ get running(): boolean;
57
+ /** Hold some controls for `seconds` of world time. */
58
+ holdInput(input: Partial<ControlInput>, seconds: number): void;
59
+ /** Drive to `target` (world metres). */
60
+ go(target: {
61
+ x: number;
62
+ z: number;
63
+ }, options?: GoOptions): void;
64
+ /** End the command: `cancelled` with a reason. */
65
+ stop(reason?: string): void;
66
+ private reset;
67
+ private end;
68
+ /**
69
+ * One frame: the controls to apply, or null when there is no command (the
70
+ * player's input stands).
71
+ */
72
+ step(dt: number, pose: DriverPose): Partial<ControlInput> | null;
73
+ }
74
+ export {};
75
+ //# sourceMappingURL=agent-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-driver.d.ts","sourceRoot":"","sources":["../src/agent-driver.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,KAAK,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/C,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAG3C;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,MAAM,CAKtE;AAED,gGAAgG;AAChG,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,OAAO,GACP,WAAW,CAAA;AAEf,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wDAAwD;AACxD,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,gEAAgE;AAChE,eAAO,MAAM,UAAU,MAAM,CAAA;AAE7B,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAIzD;AAQD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,IAAI,CAAiE;IAC7E,OAAO,CAAC,IAAI,CAEG;IACf,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,aAAa,CAAI;IAEzB,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,sDAAsD;IACtD,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9D,wCAAwC;IACxC,EAAE,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,GAAE,SAAc,GAAG,IAAI;IAkBnE,kDAAkD;IAClD,IAAI,CAAC,MAAM,SAAY,GAAG,IAAI;IAO9B,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,GAAG;IAMX;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAkDjE"}
@@ -0,0 +1,163 @@
1
+ /*#
2
+ # agent driver
3
+
4
+ **How an agent drives: with the controls, never by moving things.** An
5
+ `AgentDriver` turns a command into `ControlInput` each frame, which the
6
+ controllable in focus merges in place of the player's (see
7
+ [agents](/b3d-agent/)). So an agent's car obeys the same grip, walls and
8
+ traffic as yours, and anything it can do, a player could.
9
+
10
+ Two commands:
11
+
12
+ - **hold**: some controls held for a time (`{ forward: 1, turn: -0.3 }` for
13
+ 2 s). The raw form.
14
+ - **go**: drive to a point. A ground vehicle aims its heading at it, slows
15
+ for the turn and for the stop, and brakes to rest on arrival. A straight
16
+ line, no route finding: when it stops making progress (3 m in 5 s, the
17
+ rule traffic uses) it reports `stuck` rather than pushing on.
18
+
19
+ Any deliberate input from the player cancels the command: the player's own
20
+ hands always win. Pure: no Babylon, no clock (time is the `dt` it is given).
21
+
22
+ ```javascript
23
+ import { AgentDriver } from 'tosijs-3d/agent-driver'
24
+ const d = new AgentDriver()
25
+ d.go({ x: 30, z: 40 }, { place: 'harbour', speed: 12 })
26
+ const input = d.step(dt, { x, z, heading, speed }) // each frame
27
+ d.status // { state: 'running', distance: 41.2, … } → 'arrived'
28
+ ```
29
+ */
30
+ /*{ "parent": "b3d-agent", "order": 10 }*/
31
+ /** Degrees, 0 = +z, 90 = +x, from a direction. */
32
+ export function headingDeg(dir) {
33
+ const h = (Math.atan2(dir.x, dir.z) * 180) / Math.PI;
34
+ return h < 0 ? h + 360 : h;
35
+ }
36
+ /** The turn from `heading` at `from` to face `to`: -180..180, + is right. */
37
+ export function bearingDeg(from, heading, to) {
38
+ let d = headingDeg({ x: to.x - from.x, z: to.z - from.z }) - heading;
39
+ while (d > 180)
40
+ d -= 360;
41
+ while (d <= -180)
42
+ d += 360;
43
+ return d;
44
+ }
45
+ /** Smallest stick or button the player can press on purpose. */
46
+ export const DELIBERATE = 0.2;
47
+ /** Is the player pressing anything? A twitch under `DELIBERATE` is not. */
48
+ export function isDeliberate(input) {
49
+ for (const v of Object.values(input))
50
+ if (typeof v === 'number' && Math.abs(v) >= DELIBERATE)
51
+ return true;
52
+ return false;
53
+ }
54
+ const clamp = (v, lo = -1, hi = 1) => Math.max(lo, Math.min(hi, v));
55
+ /** Progress needed to not be stuck: this far in this long. */
56
+ const PROGRESS_M = 3;
57
+ const PROGRESS_S = 5;
58
+ export class AgentDriver {
59
+ _status = { state: 'idle', elapsed: 0 };
60
+ hold = null;
61
+ goal = null;
62
+ best = Infinity;
63
+ sinceProgress = 0;
64
+ get status() {
65
+ return { ...this._status };
66
+ }
67
+ get running() {
68
+ return this._status.state === 'running';
69
+ }
70
+ /** Hold some controls for `seconds` of world time. */
71
+ holdInput(input, seconds) {
72
+ this.reset();
73
+ this.hold = { input, seconds: Math.max(0, seconds) };
74
+ this._status = { state: 'running', command: 'hold', elapsed: 0 };
75
+ }
76
+ /** Drive to `target` (world metres). */
77
+ go(target, options = {}) {
78
+ this.reset();
79
+ this.goal = {
80
+ x: target.x,
81
+ z: target.z,
82
+ speed: options.speed ?? 10,
83
+ arrive: options.arrive ?? 4,
84
+ timeout: options.timeout ?? 120,
85
+ };
86
+ this._status = {
87
+ state: 'running',
88
+ command: 'go',
89
+ ...(options.place ? { place: options.place } : {}),
90
+ target: { x: target.x, z: target.z },
91
+ elapsed: 0,
92
+ };
93
+ }
94
+ /** End the command: `cancelled` with a reason. */
95
+ stop(reason = 'stopped') {
96
+ if (!this.running)
97
+ return;
98
+ this._status = { ...this._status, state: 'cancelled', reason };
99
+ this.hold = null;
100
+ this.goal = null;
101
+ }
102
+ reset() {
103
+ this.hold = null;
104
+ this.goal = null;
105
+ this.best = Infinity;
106
+ this.sinceProgress = 0;
107
+ }
108
+ end(state, reason) {
109
+ this._status = { ...this._status, state, ...(reason ? { reason } : {}) };
110
+ this.hold = null;
111
+ this.goal = null;
112
+ }
113
+ /**
114
+ * One frame: the controls to apply, or null when there is no command (the
115
+ * player's input stands).
116
+ */
117
+ step(dt, pose) {
118
+ if (!this.running)
119
+ return null;
120
+ this._status.elapsed += dt;
121
+ if (this.hold != null) {
122
+ if (this._status.elapsed >= this.hold.seconds) {
123
+ this.end('done');
124
+ return null;
125
+ }
126
+ return this.hold.input;
127
+ }
128
+ const g = this.goal;
129
+ if (g == null)
130
+ return null;
131
+ const dist = Math.hypot(g.x - pose.x, g.z - pose.z);
132
+ this._status.distance = Math.round(dist * 10) / 10;
133
+ if (dist <= g.arrive) {
134
+ // Brake to rest; arrived once stopped.
135
+ if (Math.abs(pose.speed) < 0.5) {
136
+ this.end('arrived');
137
+ return { forward: 0, jump: 1 };
138
+ }
139
+ return { forward: pose.speed > 0 ? -1 : 1 };
140
+ }
141
+ if (dist < this.best - PROGRESS_M) {
142
+ this.best = dist;
143
+ this.sinceProgress = 0;
144
+ }
145
+ else if ((this.sinceProgress += dt) >= PROGRESS_S) {
146
+ this.end('stuck', `no progress in ${PROGRESS_S} s, ${dist.toFixed(0)} m short`);
147
+ return { forward: 0 };
148
+ }
149
+ if (this._status.elapsed >= g.timeout) {
150
+ this.end('stuck', `not there after ${g.timeout} s`);
151
+ return { forward: 0 };
152
+ }
153
+ const bearing = bearingDeg(pose, pose.heading, g);
154
+ // Slow for the stop (about 3 m/s² of braking) and for the turn.
155
+ const brakeTo = Math.sqrt(2 * 3 * Math.max(0, dist - g.arrive * 0.5));
156
+ const turnFactor = Math.max(0.25, Math.cos((Math.min(90, Math.abs(bearing)) * Math.PI) / 180));
157
+ const want = Math.min(g.speed, brakeTo) * turnFactor;
158
+ const forward = clamp((want - pose.speed) * 0.4);
159
+ const turn = clamp(bearing / 25);
160
+ return { forward, turn };
161
+ }
162
+ }
163
+ //# sourceMappingURL=agent-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-driver.js","sourceRoot":"","sources":["../src/agent-driver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"angle-field.d.ts","sourceRoot":"","sources":["../src/angle-field.ts"],"names":[],"mappings":"AA0JA,OAAO,EAWL,KAAK,GAAG,EAET,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAO3D,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,8EAA8E;IAC9E,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAChC;AAkHD,0BAA0B;AAC1B,wBAAgB,OAAO,CAAC,MAAM,GAAE,cAAmB,GAAG,UAAU,CAgG/D;AAED,6CAA6C;AAC7C,wBAAgB,KAAK,CAAC,MAAM,GAAE,YAAiB,GAAG,QAAQ,CAiHzD"}
1
+ {"version":3,"file":"angle-field.d.ts","sourceRoot":"","sources":["../src/angle-field.ts"],"names":[],"mappings":"AA0JA,OAAO,EAWL,KAAK,GAAG,EAET,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAO3D,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,8EAA8E;IAC9E,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAChC;AAkHD,0BAA0B;AAC1B,wBAAgB,OAAO,CAAC,MAAM,GAAE,cAAmB,GAAG,UAAU,CA2G/D;AAED,6CAA6C;AAC7C,wBAAgB,KAAK,CAAC,MAAM,GAAE,YAAiB,GAAG,QAAQ,CA4HzD"}
@@ -288,6 +288,18 @@ export function angle3d(config = {}) {
288
288
  change?.(value);
289
289
  };
290
290
  const api = {
291
+ semantics: () => ({
292
+ role: 'slider',
293
+ name: config.label ?? '',
294
+ value,
295
+ set: (v) => {
296
+ const n = Number(v);
297
+ if (!Number.isFinite(n))
298
+ return;
299
+ set(n, true);
300
+ config.handleCommit?.(value);
301
+ },
302
+ }),
291
303
  el: base.el,
292
304
  get value() {
293
305
  return value;
@@ -377,6 +389,18 @@ export function arc3d(config = {}) {
377
389
  change?.(value);
378
390
  };
379
391
  const api = {
392
+ semantics: () => ({
393
+ role: 'editor',
394
+ name: config.label ?? '',
395
+ value: { ...value },
396
+ // { centre, width }, in degrees.
397
+ set: (v) => {
398
+ if (v == null || typeof v !== 'object')
399
+ return;
400
+ set({ ...value, ...v }, true);
401
+ config.handleCommit?.({ ...value });
402
+ },
403
+ }),
380
404
  el: base.el,
381
405
  get value() {
382
406
  return { ...value };
@@ -1 +1 @@
1
- {"version":3,"file":"angle-field.js","sourceRoot":"","sources":["../src/angle-field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angle-field.js","sourceRoot":"","sources":["../src/angle-field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { ControlBox, ControlNode } from './widget-semantics.js';
2
+ export interface AriaMirrorOptions {
3
+ /** The region's accessible name (the panel's title). */
4
+ label?: string | (() => string);
5
+ /**
6
+ * Where a control's box (panel units) is on the host, in CSS pixels: the
7
+ * copy then sits over the drawn control, unpainted and (on a touch-first
8
+ * device) taking touches, so a finger exploring the screen with a screen
9
+ * reader finds it there. Null, or
10
+ * no `place`, keeps it hidden in the corner.
11
+ */
12
+ place?: (box: ControlBox) => ControlBox | null;
13
+ /** `dialog` for a modal (a pause, a respawn): marked modal. Default `region`. */
14
+ role?: 'region' | 'dialog';
15
+ }
16
+ export interface AriaMirror {
17
+ /** The element the controls are in. */
18
+ readonly root: HTMLElement;
19
+ /** Re-read the tree: values patch in place, a changed structure rebuilds (focus kept by path). */
20
+ update(): void;
21
+ /** Empty it (the panel closed). */
22
+ clear(): void;
23
+ dispose(): void;
24
+ }
25
+ /** Visually hidden, still in the accessibility tree and focusable. */
26
+ export declare const VISUALLY_HIDDEN: Partial<CSSStyleDeclaration>;
27
+ /**
28
+ A placed copy: a real, opaque, touchable box with nothing painted. Not
29
+ `opacity: 0` and not `pointer-events: none`: iOS VoiceOver finds what is under
30
+ a finger by hit-testing, and passed over such copies for the canvas. A range
31
+ input's thumb is a pseudo-element, which an inline style cannot reach: the
32
+ host's stylesheet hides it (`<tosi-b3d>` does).
33
+ */
34
+ export declare const UNPAINTED: Partial<CSSStyleDeclaration>;
35
+ export declare function ariaMirror(host: HTMLElement, read: () => ControlNode[] | null, options?: AriaMirrorOptions): AriaMirror;
36
+ //# sourceMappingURL=aria-mirror.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aria-mirror.d.ts","sourceRoot":"","sources":["../src/aria-mirror.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAA;IAC/B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,UAAU,GAAG,IAAI,CAAA;IAC9C,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,kGAAkG;IAClG,MAAM,IAAI,IAAI,CAAA;IACd,mCAAmC;IACnC,KAAK,IAAI,IAAI,CAAA;IACb,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,sEAAsE;AACtE,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,mBAAmB,CAOxD,CAAA;AAED;;;;;;EAME;AACF,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAQlD,CAAA;AAmED,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,WAAW,EAAE,GAAG,IAAI,EAChC,OAAO,GAAE,iBAAsB,GAC9B,UAAU,CAgZZ"}