@holoscript/core 7.0.0 → 8.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 (350) hide show
  1. package/README.md +4 -4
  2. package/bin/holoscript.cjs +3 -0
  3. package/dist/GLTFPipeline-N6B6PJ6G.cjs +38 -0
  4. package/dist/GLTFPipeline-P3WMNYCN.js +17 -0
  5. package/dist/HoloScriptPlusParser-7FBIFUFC.js +693 -0
  6. package/dist/HoloScriptPlusParser-A2W7OCN2.cjs +698 -0
  7. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  8. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  9. package/dist/HoloScriptRuntime-CBYJX3LZ.js +10 -0
  10. package/dist/HoloScriptRuntime-VJ374RER.cjs +19 -0
  11. package/dist/USDZExporter-3FWJ25JI.cjs +1037 -0
  12. package/dist/USDZExporter-D2HQLQYK.js +1035 -0
  13. package/dist/agents/index.cjs +19 -0
  14. package/dist/agents/index.d.ts +100 -0
  15. package/dist/agents/index.js +17 -0
  16. package/dist/chunk-2BSMSUCE.js +1941 -0
  17. package/dist/chunk-2IWC4FP7.cjs +1189 -0
  18. package/dist/chunk-2M2DPHKB.js +762 -0
  19. package/dist/chunk-2X7NGX3M.js +2426 -0
  20. package/dist/chunk-2YSNA2F2.cjs +1274 -0
  21. package/dist/chunk-3FOKASKO.cjs +348 -0
  22. package/dist/chunk-3WZEJHUQ.cjs +116 -0
  23. package/dist/chunk-4C57PR42.js +468 -0
  24. package/dist/chunk-4GU5GCIY.js +1384 -0
  25. package/dist/chunk-4N4SXXWF.js +769 -0
  26. package/dist/chunk-4PDEPEQW.cjs +41 -0
  27. package/dist/chunk-4R6SBXDB.js +45 -0
  28. package/dist/chunk-4SDKXQ4C.js +811 -0
  29. package/dist/chunk-4V2E7U7Q.cjs +2015 -0
  30. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  31. package/dist/chunk-5GLCTO44.js +161 -0
  32. package/dist/chunk-5H2G27PK.cjs +627 -0
  33. package/dist/chunk-5JEU52DW.js +382 -0
  34. package/dist/chunk-5NWINHR5.cjs +689 -0
  35. package/dist/chunk-5S7RKFGR.cjs +446 -0
  36. package/dist/chunk-5WUNN6ZN.cjs +428 -0
  37. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  38. package/dist/chunk-6EX3I5P4.cjs +130 -0
  39. package/dist/chunk-6Q7RC2MK.cjs +1418 -0
  40. package/dist/chunk-7H33U5SM.cjs +413 -0
  41. package/dist/chunk-7M3PNU2M.cjs +672 -0
  42. package/dist/chunk-7T25IEZ2.js +449 -0
  43. package/dist/chunk-7V4JI5TB.cjs +6947 -0
  44. package/dist/chunk-A6KINLZJ.js +236 -0
  45. package/dist/chunk-ADADVMXY.js +404 -0
  46. package/dist/chunk-AIA52I7T.cjs +543 -0
  47. package/dist/chunk-ALC6K7GL.cjs +4402 -0
  48. package/dist/chunk-ANXZFVY2.js +113 -0
  49. package/dist/chunk-AOVGZ25K.cjs +56583 -0
  50. package/dist/chunk-AVJHHUC5.cjs +718 -0
  51. package/dist/chunk-BGY3SDG3.js +4396 -0
  52. package/dist/chunk-BOVPWH4H.js +3857 -0
  53. package/dist/chunk-BRQJKJGT.cjs +20 -0
  54. package/dist/chunk-C37BHB7N.cjs +636 -0
  55. package/dist/chunk-CBJY23VL.js +126 -0
  56. package/dist/chunk-CCATWPXM.js +778 -0
  57. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  58. package/dist/chunk-CMT5NMMS.js +669 -0
  59. package/dist/chunk-CR4FMIWL.cjs +1049 -0
  60. package/dist/chunk-CR7XRXRN.cjs +639 -0
  61. package/dist/chunk-CSD27UNQ.js +2176 -0
  62. package/dist/chunk-D3STJ56J.js +714 -0
  63. package/dist/chunk-DAJXW4KX.js +725 -0
  64. package/dist/chunk-DHO2YRIM.js +756 -0
  65. package/dist/chunk-DTGBOSEM.cjs +319 -0
  66. package/dist/chunk-E6XXE66V.js +2252 -0
  67. package/dist/chunk-E7JP3BS3.cjs +61 -0
  68. package/dist/chunk-EKBKLK7P.js +1169 -0
  69. package/dist/chunk-EKYL4PE3.cjs +404 -0
  70. package/dist/chunk-EXKSFGSX.cjs +274 -0
  71. package/dist/chunk-EXUP2BUM.cjs +1173 -0
  72. package/dist/chunk-FDSGHPAK.js +130 -0
  73. package/dist/chunk-FEWUHQNM.cjs +144 -0
  74. package/dist/chunk-FFAOS5HQ.js +70 -0
  75. package/dist/chunk-FGGJQRLZ.js +270 -0
  76. package/dist/chunk-FHP6LXJS.js +415 -0
  77. package/dist/chunk-FJPADH77.cjs +666 -0
  78. package/dist/chunk-FL33V6U7.js +421 -0
  79. package/dist/chunk-FYSPZT4V.cjs +169 -0
  80. package/dist/chunk-GIOYPNTH.js +5575 -0
  81. package/dist/chunk-GJNCFRJU.cjs +125 -0
  82. package/dist/chunk-GMP623FG.cjs +1508 -0
  83. package/dist/chunk-GQHQOPXZ.cjs +5580 -0
  84. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  85. package/dist/chunk-GYZE55MO.js +2007 -0
  86. package/dist/chunk-GZG4KA4E.js +529 -0
  87. package/dist/chunk-H652NHX5.js +600 -0
  88. package/dist/chunk-HCCQLAA4.cjs +74 -0
  89. package/dist/chunk-HKEXJUWS.cjs +4007 -0
  90. package/dist/chunk-HNDK4IQU.cjs +5737 -0
  91. package/dist/chunk-HR2OSYVQ.js +56165 -0
  92. package/dist/chunk-HYNTS5CP.js +422 -0
  93. package/dist/chunk-I6XZ5DZF.cjs +488 -0
  94. package/dist/chunk-ILRBGFVD.cjs +72 -0
  95. package/dist/chunk-IUDGEUDO.cjs +1409 -0
  96. package/dist/chunk-IUTY5WQ2.cjs +424 -0
  97. package/dist/chunk-IVY74O6C.js +247 -0
  98. package/dist/chunk-IWC5DM2M.cjs +611 -0
  99. package/dist/chunk-J32ZJZJH.js +554 -0
  100. package/dist/chunk-J52VSAQ7.js +6884 -0
  101. package/dist/chunk-J6M4FPK5.js +421 -0
  102. package/dist/chunk-J7XZV333.js +844 -0
  103. package/dist/chunk-JBNDTXXV.cjs +2433 -0
  104. package/dist/chunk-JC5YBPSF.cjs +984 -0
  105. package/dist/chunk-JD7CIZ33.js +1949 -0
  106. package/dist/chunk-JIBL5LRK.js +4287 -0
  107. package/dist/chunk-JIYN45TV.cjs +2525 -0
  108. package/dist/chunk-K574J76X.cjs +457 -0
  109. package/dist/chunk-KHDZJE5D.cjs +2196 -0
  110. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  111. package/dist/chunk-KKP7JKN4.cjs +6002 -0
  112. package/dist/chunk-KPJL34Y7.cjs +186 -0
  113. package/dist/chunk-KQCN6AKJ.cjs +3042 -0
  114. package/dist/chunk-L5LKKENW.cjs +424 -0
  115. package/dist/chunk-LHAXPADA.js +882 -0
  116. package/dist/chunk-LM2VU56C.cjs +37 -0
  117. package/dist/chunk-M56JSP4A.js +400 -0
  118. package/dist/chunk-MBOOR7X4.js +18 -0
  119. package/dist/chunk-MQWAT42R.cjs +4310 -0
  120. package/dist/chunk-MXFUTKCO.js +56 -0
  121. package/dist/chunk-MYY4PMWX.cjs +264 -0
  122. package/dist/chunk-N75IH2HY.js +258 -0
  123. package/dist/chunk-NCWCUZNS.cjs +72 -0
  124. package/dist/chunk-NG77ATEW.cjs +778 -0
  125. package/dist/chunk-NW5G5FBQ.js +215 -0
  126. package/dist/chunk-OBIYPYYS.cjs +1993 -0
  127. package/dist/chunk-OH2FAIVU.js +608 -0
  128. package/dist/chunk-OIQYIIO3.cjs +473 -0
  129. package/dist/chunk-OL46QLBJ.js +61 -0
  130. package/dist/chunk-OMXII44L.js +5386 -0
  131. package/dist/chunk-OSYNRVOV.cjs +243 -0
  132. package/dist/chunk-PGANYCAG.cjs +220 -0
  133. package/dist/chunk-PHENW4MQ.js +65 -0
  134. package/dist/chunk-PY37LNDP.js +686 -0
  135. package/dist/chunk-Q56TT7IL.js +483 -0
  136. package/dist/chunk-QD32ADK6.js +1046 -0
  137. package/dist/chunk-QPOQ7VPI.js +1491 -0
  138. package/dist/chunk-QPSKHBJP.js +5963 -0
  139. package/dist/chunk-QXH7QDSZ.js +1989 -0
  140. package/dist/chunk-R24NNAEG.js +1399 -0
  141. package/dist/chunk-R75BSDH7.cjs +50 -0
  142. package/dist/chunk-RARB3MBR.js +207 -0
  143. package/dist/chunk-ROHLEP2W.cjs +847 -0
  144. package/dist/chunk-S3MDHNKB.cjs +490 -0
  145. package/dist/chunk-S6YWHCKV.cjs +410 -0
  146. package/dist/chunk-SIEXCILW.js +229 -0
  147. package/dist/chunk-SLU6UPJI.cjs +410 -0
  148. package/dist/chunk-SMIWS6DE.cjs +212 -0
  149. package/dist/chunk-T5J7ZKP3.cjs +4885 -0
  150. package/dist/chunk-TDCNJHWO.js +341 -0
  151. package/dist/chunk-TG7O4WBC.js +406 -0
  152. package/dist/chunk-THCK6ECW.js +2085 -0
  153. package/dist/chunk-TJHVSBP2.js +439 -0
  154. package/dist/chunk-TVHSPJ4N.cjs +606 -0
  155. package/dist/chunk-TWUXUCEW.cjs +781 -0
  156. package/dist/chunk-U44IKGG7.cjs +5390 -0
  157. package/dist/chunk-UFZZ7TSN.cjs +886 -0
  158. package/dist/chunk-UJXISJBN.js +487 -0
  159. package/dist/chunk-UOIGFQXC.cjs +9750 -0
  160. package/dist/chunk-URG2SJLK.js +2521 -0
  161. package/dist/chunk-UWJHCOH2.js +623 -0
  162. package/dist/chunk-V6MKC2FZ.js +979 -0
  163. package/dist/chunk-VJ3L7CHT.cjs +169 -0
  164. package/dist/chunk-VMLKSV26.js +1216 -0
  165. package/dist/chunk-VVKVQZI6.js +55 -0
  166. package/dist/chunk-W6RW64BB.cjs +1219 -0
  167. package/dist/chunk-WKX5AMOY.js +309 -0
  168. package/dist/chunk-WNNE3PO3.js +34 -0
  169. package/dist/chunk-WRKUDAZJ.js +3038 -0
  170. package/dist/chunk-WRLUBRKS.cjs +1943 -0
  171. package/dist/chunk-WRNEH5MO.js +3169 -0
  172. package/dist/chunk-WRWEX5ZF.js +658 -0
  173. package/dist/chunk-X3GJPRVK.cjs +3246 -0
  174. package/dist/chunk-X3UVCWNL.cjs +2257 -0
  175. package/dist/chunk-XB274MW5.cjs +814 -0
  176. package/dist/chunk-XHIV6326.cjs +793 -0
  177. package/dist/chunk-XIVIE43A.cjs +729 -0
  178. package/dist/chunk-XJAN7CZG.cjs +432 -0
  179. package/dist/chunk-XKTPFXGA.js +164 -0
  180. package/dist/chunk-XL6INWKT.js +121 -0
  181. package/dist/chunk-XSFNHP2E.js +632 -0
  182. package/dist/chunk-XT6JY5W5.js +9684 -0
  183. package/dist/chunk-XUILI4KB.cjs +430 -0
  184. package/dist/chunk-YF2I3MV3.js +46 -0
  185. package/dist/chunk-YIMN575O.js +4847 -0
  186. package/dist/chunk-YIVFJNYV.js +176 -0
  187. package/dist/chunk-YKGPCZEE.cjs +237 -0
  188. package/dist/chunk-YN2YWTXW.js +5731 -0
  189. package/dist/chunk-YN6V7R3L.cjs +327 -0
  190. package/dist/chunk-YQELFNJV.js +39 -0
  191. package/dist/chunk-YVD3CSO3.js +1183 -0
  192. package/dist/chunk-YVOAF4ML.js +623 -0
  193. package/dist/chunk-YWOBW2PV.cjs +759 -0
  194. package/dist/chunk-YYXH45E2.js +426 -0
  195. package/dist/chunk-ZDSYWBIE.cjs +69 -0
  196. package/dist/chunk-ZU7NIRT6.js +325 -0
  197. package/dist/chunk-ZZ7RO2UQ.js +1243 -0
  198. package/dist/cli/holoscript-runner.cjs +2255 -0
  199. package/dist/cli/holoscript-runner.js +2230 -0
  200. package/dist/codebase/index.cjs +336 -0
  201. package/dist/codebase/index.js +331 -0
  202. package/dist/compiler/agent-inference.cjs +31 -0
  203. package/dist/compiler/agent-inference.js +8 -0
  204. package/dist/compiler/android-xr.cjs +24 -0
  205. package/dist/compiler/android-xr.js +14 -0
  206. package/dist/compiler/android.cjs +24 -0
  207. package/dist/compiler/android.js +14 -0
  208. package/dist/compiler/ar.cjs +23 -0
  209. package/dist/compiler/ar.js +11 -0
  210. package/dist/compiler/babylon.cjs +21 -0
  211. package/dist/compiler/babylon.js +15 -0
  212. package/dist/compiler/business-quest.cjs +43 -0
  213. package/dist/compiler/business-quest.js +4 -0
  214. package/dist/compiler/coco.cjs +27 -0
  215. package/dist/compiler/coco.js +4 -0
  216. package/dist/compiler/context.cjs +25 -0
  217. package/dist/compiler/context.d.ts +28 -0
  218. package/dist/compiler/context.js +8 -0
  219. package/dist/compiler/domain-block-utils.cjs +609 -0
  220. package/dist/compiler/domain-block-utils.js +11 -0
  221. package/dist/compiler/dtdl.cjs +27 -0
  222. package/dist/compiler/dtdl.js +11 -0
  223. package/dist/compiler/gltf-pipeline.cjs +39 -0
  224. package/dist/compiler/gltf-pipeline.js +4 -0
  225. package/dist/compiler/godot.cjs +18 -0
  226. package/dist/compiler/godot.js +12 -0
  227. package/dist/compiler/incremental.cjs +34 -0
  228. package/dist/compiler/incremental.js +9 -0
  229. package/dist/compiler/index.cjs +5408 -0
  230. package/dist/compiler/index.d.ts +334 -21
  231. package/dist/compiler/index.js +5069 -0
  232. package/dist/compiler/ios.cjs +23 -0
  233. package/dist/compiler/ios.js +13 -0
  234. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  235. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  236. package/dist/compiler/llm-provider-capabilities.js +8 -0
  237. package/dist/compiler/multi-layer.cjs +24 -0
  238. package/dist/compiler/multi-layer.js +15 -0
  239. package/dist/compiler/nodetoy.cjs +23 -0
  240. package/dist/compiler/nodetoy.d.ts +69 -0
  241. package/dist/compiler/nodetoy.js +4 -0
  242. package/dist/compiler/openxr.cjs +19 -0
  243. package/dist/compiler/openxr.js +13 -0
  244. package/dist/compiler/playcanvas.cjs +19 -0
  245. package/dist/compiler/playcanvas.js +13 -0
  246. package/dist/compiler/r3f.cjs +39 -0
  247. package/dist/compiler/r3f.d.ts +22 -0
  248. package/dist/compiler/r3f.js +17 -0
  249. package/dist/compiler/remotion.cjs +23 -0
  250. package/dist/compiler/remotion.js +4 -0
  251. package/dist/compiler/reproducibility.cjs +39 -0
  252. package/dist/compiler/reproducibility.js +4 -0
  253. package/dist/compiler/sdf.cjs +24 -0
  254. package/dist/compiler/sdf.js +12 -0
  255. package/dist/compiler/semantic-scene.cjs +31 -0
  256. package/dist/compiler/semantic-scene.js +4 -0
  257. package/dist/compiler/state.cjs +21 -0
  258. package/dist/compiler/state.js +11 -0
  259. package/dist/compiler/trait-composition.cjs +30 -0
  260. package/dist/compiler/trait-composition.js +9 -0
  261. package/dist/compiler/unity.cjs +19 -0
  262. package/dist/compiler/unity.js +13 -0
  263. package/dist/compiler/unreal.cjs +23 -0
  264. package/dist/compiler/unreal.js +13 -0
  265. package/dist/compiler/urdf.cjs +52 -0
  266. package/dist/compiler/urdf.js +12 -0
  267. package/dist/compiler/usd-physics.cjs +26 -0
  268. package/dist/compiler/usd-physics.js +9 -0
  269. package/dist/compiler/visionos.cjs +19 -0
  270. package/dist/compiler/visionos.js +13 -0
  271. package/dist/compiler/vrchat.cjs +22 -0
  272. package/dist/compiler/vrchat.js +12 -0
  273. package/dist/compiler/vrr.cjs +24 -0
  274. package/dist/compiler/vrr.js +12 -0
  275. package/dist/compiler/wasm.cjs +36 -0
  276. package/dist/compiler/wasm.js +12 -0
  277. package/dist/compiler/webgpu.cjs +18 -0
  278. package/dist/compiler/webgpu.js +12 -0
  279. package/dist/coordinators/index.cjs +1266 -0
  280. package/dist/coordinators/index.d.ts +72 -1
  281. package/dist/coordinators/index.js +1259 -0
  282. package/dist/debugger.cjs +24 -0
  283. package/dist/debugger.js +11 -0
  284. package/dist/dist-ACXG6IH5.cjs +3113 -0
  285. package/dist/dist-VD4L6V7Q.js +3076 -0
  286. package/dist/entries/interop.cjs +64 -0
  287. package/dist/entries/interop.js +7 -0
  288. package/dist/entries/scripting.cjs +55 -0
  289. package/dist/entries/scripting.js +10 -0
  290. package/dist/hololand/index.cjs +146 -0
  291. package/dist/hololand/index.d.ts +70 -0
  292. package/dist/hololand/index.js +5 -0
  293. package/dist/index.cjs +44660 -0
  294. package/dist/index.d.ts +978 -21
  295. package/dist/index.js +41422 -0
  296. package/dist/math/tropical-spmv.cjs +45 -0
  297. package/dist/math/tropical-spmv.js +4 -0
  298. package/dist/math/vec3.cjs +57 -0
  299. package/dist/math/vec3.js +4 -0
  300. package/dist/ml-dsa-FSKBTE3W.cjs +1265 -0
  301. package/dist/ml-dsa-Z7JDKW4L.js +1265 -0
  302. package/dist/paper-0c-spike/index.cjs +150 -0
  303. package/dist/paper-0c-spike/index.js +141 -0
  304. package/dist/parser.cjs +61 -0
  305. package/dist/parser.d.ts +11 -0
  306. package/dist/parser.js +12 -0
  307. package/dist/playwright-3AT3AKTV.cjs +98673 -0
  308. package/dist/playwright-VZPDVUEQ.js +98660 -0
  309. package/dist/reconstruction/index.cjs +153 -0
  310. package/dist/reconstruction/index.d.ts +29 -2
  311. package/dist/reconstruction/index.js +8 -0
  312. package/dist/runtime.cjs +316 -0
  313. package/dist/runtime.d.ts +61 -0
  314. package/dist/runtime.js +31 -0
  315. package/dist/self-improvement/index.cjs +563 -0
  316. package/dist/self-improvement/index.js +545 -0
  317. package/dist/src-4ROC227P.cjs +2094 -0
  318. package/dist/src-HCCCSYP7.js +2073 -0
  319. package/dist/storage/index.cjs +38 -0
  320. package/dist/storage/index.js +5 -0
  321. package/dist/testing.cjs +25 -0
  322. package/dist/testing.d.ts +70 -0
  323. package/dist/testing.js +4 -0
  324. package/dist/traitDocs/traitDocs.cjs +33 -0
  325. package/dist/traitDocs/traitDocs.js +7 -0
  326. package/dist/traits/botanical-lotus.cjs +177 -0
  327. package/dist/traits/botanical-lotus.d.ts +502 -0
  328. package/dist/traits/botanical-lotus.js +7 -0
  329. package/dist/traits/engines/index.cjs +520 -0
  330. package/dist/traits/engines/index.js +380 -0
  331. package/dist/traits/index.cjs +24548 -0
  332. package/dist/traits/index.d.ts +171 -35
  333. package/dist/traits/index.js +21638 -0
  334. package/dist/traits/simulation-solver-factory.cjs +13 -0
  335. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  336. package/dist/traits/simulation-solver-factory.js +4 -0
  337. package/dist/traits/webcam-gaze.cjs +35 -0
  338. package/dist/traits/webcam-gaze.d.ts +17 -0
  339. package/dist/traits/webcam-gaze.js +4 -0
  340. package/dist/type-checker.cjs +19 -0
  341. package/dist/type-checker.js +6 -0
  342. package/dist/world/index.cjs +947 -0
  343. package/dist/world/index.d.ts +147 -0
  344. package/dist/world/index.js +939 -0
  345. package/dist/world-model/index.cjs +1446 -0
  346. package/dist/world-model/index.d.ts +119 -0
  347. package/dist/world-model/index.js +1414 -0
  348. package/dist/wot/index.cjs +29 -0
  349. package/dist/wot/index.js +4 -0
  350. package/package.json +93 -49
@@ -0,0 +1,410 @@
1
+ 'use strict';
2
+
3
+ // src/compiler/NodeToyMapping.ts
4
+ var NODE_TYPE_MAP = {
5
+ // Math operations
6
+ Add: { expression: "({in:a} + {in:b})", outputType: "float" },
7
+ Subtract: { expression: "({in:a} - {in:b})", outputType: "float" },
8
+ Multiply: { expression: "({in:a} * {in:b})", outputType: "float" },
9
+ Divide: { expression: "({in:a} / max({in:b}, 0.0001))", outputType: "float" },
10
+ Power: { expression: "pow({in:a}, {in:b})", outputType: "float" },
11
+ Sqrt: { expression: "sqrt({in:a})", outputType: "float" },
12
+ Abs: { expression: "abs({in:a})", outputType: "float" },
13
+ Sign: { expression: "sign({in:a})", outputType: "float" },
14
+ Floor: { expression: "floor({in:a})", outputType: "float" },
15
+ Ceil: { expression: "ceil({in:a})", outputType: "float" },
16
+ Fract: { expression: "fract({in:a})", outputType: "float" },
17
+ Mod: { expression: "mod({in:a}, {in:b})", outputType: "float" },
18
+ Min: { expression: "min({in:a}, {in:b})", outputType: "float" },
19
+ Max: { expression: "max({in:a}, {in:b})", outputType: "float" },
20
+ Clamp: { expression: "clamp({in:a}, {in:min}, {in:max})", outputType: "float" },
21
+ Lerp: { expression: "mix({in:a}, {in:b}, {in:t})", outputType: "float" },
22
+ Smoothstep: { expression: "smoothstep({in:edge0}, {in:edge1}, {in:x})", outputType: "float" },
23
+ Step: { expression: "step({in:edge}, {in:x})", outputType: "float" },
24
+ OneMinus: { expression: "(1.0 - {in:a})", outputType: "float" },
25
+ Negate: { expression: "(-{in:a})", outputType: "float" },
26
+ Length: { expression: "length({in:a})", outputType: "float" },
27
+ Distance: { expression: "distance({in:a}, {in:b})", outputType: "float" },
28
+ Dot: { expression: "dot({in:a}, {in:b})", outputType: "float" },
29
+ Cross: { expression: "cross({in:a}, {in:b})", outputType: "vec3" },
30
+ Normalize: { expression: "normalize({in:a})", outputType: "vec3" },
31
+ Reflect: { expression: "reflect({in:a}, {in:b})", outputType: "vec3" },
32
+ // Trigonometry
33
+ Sin: { expression: "sin({in:a})", outputType: "float" },
34
+ Cos: { expression: "cos({in:a})", outputType: "float" },
35
+ Tan: { expression: "tan({in:a})", outputType: "float" },
36
+ Asin: { expression: "asin({in:a})", outputType: "float" },
37
+ Acos: { expression: "acos({in:a})", outputType: "float" },
38
+ Atan: { expression: "atan({in:a})", outputType: "float" },
39
+ Atan2: { expression: "atan({in:y}, {in:x})", outputType: "float" },
40
+ // Color operations
41
+ Mix: { expression: "mix({in:a}, {in:b}, {in:factor})", outputType: "vec3" },
42
+ Saturate: { expression: "clamp({in:a}, 0.0, 1.0)", outputType: "float" },
43
+ // Constructors
44
+ Vec2: { expression: "vec2({in:x}, {in:y})", outputType: "vec2" },
45
+ Vec3: { expression: "vec3({in:x}, {in:y}, {in:z})", outputType: "vec3" },
46
+ Vec4: { expression: "vec4({in:x}, {in:y}, {in:z}, {in:w})", outputType: "vec4" },
47
+ // Component extraction
48
+ SplitVec2: { expression: "{in:a}", outputType: "float" },
49
+ SplitVec3: { expression: "{in:a}", outputType: "float" },
50
+ SplitVec4: { expression: "{in:a}", outputType: "float" },
51
+ // Texture sampling
52
+ Texture2D: { expression: "texture2D({in:sampler}, {in:uv})", outputType: "vec4" },
53
+ CubeMap: { expression: "textureCube({in:sampler}, {in:dir})", outputType: "vec4" },
54
+ // Noise
55
+ ProceduralNoise: { expression: "snoise({in:uv} * {in:scale})", outputType: "float" }
56
+ };
57
+ var BUILTIN_INPUT_NODES = /* @__PURE__ */ new Set([
58
+ "Time",
59
+ "Resolution",
60
+ "ScreenUV",
61
+ "UV",
62
+ "Normal",
63
+ "Position",
64
+ "ViewDirection",
65
+ "FragCoord",
66
+ "Constant",
67
+ "Parameter"
68
+ ]);
69
+ var OUTPUT_NODES = /* @__PURE__ */ new Set(["FragColor", "Output", "Emission", "Alpha", "Discard"]);
70
+ function mapNodeToyToShader(graph, options = {}) {
71
+ const mapper = new NodeToyMapper(options);
72
+ return mapper.map(graph);
73
+ }
74
+ var NodeToyMapper = class {
75
+ constructor(options = {}) {
76
+ this.warnings = [];
77
+ this.unsupportedNodes = [];
78
+ this.uniforms = {};
79
+ this.varyingDecls = [];
80
+ this.fragmentLines = [];
81
+ this.nodeOutputVars = /* @__PURE__ */ new Map();
82
+ this.nodeMap = /* @__PURE__ */ new Map();
83
+ this.edgesByTarget = /* @__PURE__ */ new Map();
84
+ this.visitedNodes = /* @__PURE__ */ new Set();
85
+ this.language = options.language ?? "glsl";
86
+ this.autoTimeUniform = options.autoTimeUniform ?? true;
87
+ this.autoResolutionUniform = options.autoResolutionUniform ?? true;
88
+ this.variablePrefix = options.variablePrefix ?? "nt_";
89
+ this.optimization = options.optimization ?? "basic";
90
+ }
91
+ map(graph) {
92
+ this.warnings = [];
93
+ this.unsupportedNodes = [];
94
+ this.uniforms = {};
95
+ this.varyingDecls = [];
96
+ this.fragmentLines = [];
97
+ this.nodeOutputVars.clear();
98
+ this.nodeMap.clear();
99
+ this.edgesByTarget.clear();
100
+ this.visitedNodes.clear();
101
+ for (const node of graph.nodes) {
102
+ this.nodeMap.set(node.id, node);
103
+ }
104
+ for (const edge of graph.edges) {
105
+ const key = `${edge.toNode}:${edge.toPort}`;
106
+ if (!this.edgesByTarget.has(key)) {
107
+ this.edgesByTarget.set(key, []);
108
+ }
109
+ this.edgesByTarget.get(key).push(edge);
110
+ }
111
+ const outputNodes = graph.nodes.filter((n) => OUTPUT_NODES.has(n.type));
112
+ if (outputNodes.length === 0) {
113
+ this.warnings.push("No output node found in graph; generating passthrough shader");
114
+ }
115
+ for (const outputNode of outputNodes) {
116
+ this.traverseNode(outputNode.id);
117
+ }
118
+ const hasTimeNode = graph.nodes.some((n) => n.type === "Time");
119
+ const hasResolutionNode = graph.nodes.some((n) => n.type === "Resolution");
120
+ if (this.autoTimeUniform && hasTimeNode) {
121
+ this.uniforms["time"] = { type: "float", value: 0 };
122
+ }
123
+ if (this.autoResolutionUniform && hasResolutionNode) {
124
+ this.uniforms["resolution"] = { type: "vec2", value: [1920, 1080] };
125
+ }
126
+ for (const node of graph.nodes) {
127
+ if (node.type === "Parameter" || node.type === "Constant") {
128
+ this.extractParameterUniform(node);
129
+ }
130
+ }
131
+ const vertexSource = this.generateVertexSource();
132
+ const fragmentSource = this.generateFragmentSource(outputNodes);
133
+ const shaderConfig = {
134
+ name: graph.name || "nodetoy_shader",
135
+ source: {
136
+ language: this.language,
137
+ vertex: vertexSource,
138
+ fragment: fragmentSource
139
+ },
140
+ uniforms: this.uniforms,
141
+ blendMode: graph.settings?.blendMode ?? "opaque",
142
+ depthTest: graph.settings?.depthTest ?? true,
143
+ depthWrite: graph.settings?.depthWrite ?? true,
144
+ cullFace: graph.settings?.doubleSided ? "none" : "back"
145
+ };
146
+ return {
147
+ shaderConfig,
148
+ vertexSource,
149
+ fragmentSource,
150
+ uniforms: this.uniforms,
151
+ warnings: this.warnings,
152
+ unsupportedNodes: this.unsupportedNodes
153
+ };
154
+ }
155
+ // ---------------------------------------------------------------------------
156
+ // Graph traversal (reverse topological from output nodes)
157
+ // ---------------------------------------------------------------------------
158
+ traverseNode(nodeId) {
159
+ if (this.nodeOutputVars.has(nodeId)) {
160
+ return this.nodeOutputVars.get(nodeId);
161
+ }
162
+ if (this.visitedNodes.has(nodeId)) {
163
+ this.warnings.push(`Cycle detected at node ${nodeId}; breaking with default value`);
164
+ return "0.0";
165
+ }
166
+ this.visitedNodes.add(nodeId);
167
+ const node = this.nodeMap.get(nodeId);
168
+ if (!node) {
169
+ this.warnings.push(`Missing node: ${nodeId}`);
170
+ return "0.0";
171
+ }
172
+ if (BUILTIN_INPUT_NODES.has(node.type)) {
173
+ const varExpr = this.resolveBuiltinNode(node);
174
+ this.nodeOutputVars.set(nodeId, varExpr);
175
+ return varExpr;
176
+ }
177
+ if (OUTPUT_NODES.has(node.type)) {
178
+ for (const input of node.inputs) {
179
+ const inputExpr = this.resolveInputPort(nodeId, input.name, input);
180
+ if (node.type === "FragColor" || node.type === "Output") {
181
+ this.fragmentLines.push(` // Output: ${node.label || node.type}`);
182
+ if (input.type === "vec4") {
183
+ this.fragmentLines.push(` gl_FragColor = ${inputExpr};`);
184
+ } else if (input.type === "vec3") {
185
+ this.fragmentLines.push(` gl_FragColor = vec4(${inputExpr}, 1.0);`);
186
+ } else {
187
+ this.fragmentLines.push(` gl_FragColor = vec4(vec3(${inputExpr}), 1.0);`);
188
+ }
189
+ }
190
+ }
191
+ const varName2 = `${this.variablePrefix}out_${this.sanitize(nodeId)}`;
192
+ this.nodeOutputVars.set(nodeId, varName2);
193
+ return varName2;
194
+ }
195
+ const codegen = NODE_TYPE_MAP[node.type];
196
+ if (!codegen) {
197
+ this.unsupportedNodes.push(node.type);
198
+ this.warnings.push(`Unsupported node type: ${node.type}; using default value`);
199
+ this.nodeOutputVars.set(nodeId, "0.0");
200
+ return "0.0";
201
+ }
202
+ const resolvedInputs = {};
203
+ for (const input of node.inputs) {
204
+ resolvedInputs[input.name] = this.resolveInputPort(nodeId, input.name, input);
205
+ }
206
+ let expression = codegen.expression;
207
+ for (const [portName, portExpr] of Object.entries(resolvedInputs)) {
208
+ expression = expression.replace(`{in:${portName}}`, portExpr);
209
+ }
210
+ expression = expression.replace(/\{in:\w+\}/g, "0.0");
211
+ const varName = `${this.variablePrefix}${this.sanitize(nodeId)}`;
212
+ const glslType = this.uniformTypeToGLSL(codegen.outputType);
213
+ this.fragmentLines.push(` ${glslType} ${varName} = ${expression};`);
214
+ this.nodeOutputVars.set(nodeId, varName);
215
+ return varName;
216
+ }
217
+ resolveInputPort(nodeId, portName, port) {
218
+ const edgeKey = `${nodeId}:${portName}`;
219
+ const edges = this.edgesByTarget.get(edgeKey);
220
+ if (edges && edges.length > 0) {
221
+ const edge = edges[0];
222
+ return this.traverseNode(edge.fromNode);
223
+ }
224
+ if (port.default !== void 0) {
225
+ if (typeof port.default === "number") return String(port.default);
226
+ if (Array.isArray(port.default)) {
227
+ const len = port.default.length;
228
+ if (len === 2) return `vec2(${port.default.join(", ")})`;
229
+ if (len === 3) return `vec3(${port.default.join(", ")})`;
230
+ if (len === 4) return `vec4(${port.default.join(", ")})`;
231
+ return String(port.default[0] ?? 0);
232
+ }
233
+ }
234
+ return "0.0";
235
+ }
236
+ resolveBuiltinNode(node) {
237
+ switch (node.type) {
238
+ case "Time":
239
+ return "time";
240
+ case "Resolution":
241
+ return "resolution";
242
+ case "UV":
243
+ case "ScreenUV":
244
+ this.ensureVarying("vUv", "vec2");
245
+ return "vUv";
246
+ case "Normal":
247
+ this.ensureVarying("vNormal", "vec3");
248
+ return "vNormal";
249
+ case "Position":
250
+ this.ensureVarying("vPosition", "vec3");
251
+ return "vPosition";
252
+ case "ViewDirection":
253
+ this.ensureVarying("vViewDir", "vec3");
254
+ return "vViewDir";
255
+ case "FragCoord":
256
+ return "gl_FragCoord.xy";
257
+ case "Constant": {
258
+ const val = node.params?.["value"];
259
+ if (typeof val === "number") return String(val);
260
+ if (Array.isArray(val)) {
261
+ if (val.length === 2) return `vec2(${val.join(", ")})`;
262
+ if (val.length === 3) return `vec3(${val.join(", ")})`;
263
+ if (val.length === 4) return `vec4(${val.join(", ")})`;
264
+ }
265
+ return "0.0";
266
+ }
267
+ case "Parameter": {
268
+ const name = node.params?.["name"] || `param_${node.id}`;
269
+ return name;
270
+ }
271
+ default:
272
+ return "0.0";
273
+ }
274
+ }
275
+ // ---------------------------------------------------------------------------
276
+ // Uniform and varying management
277
+ // ---------------------------------------------------------------------------
278
+ extractParameterUniform(node) {
279
+ const name = node.params?.["name"] || `param_${node.id}`;
280
+ const value = node.params?.["value"];
281
+ const uniformType = this.inferUniformType(value);
282
+ if (!this.uniforms[name]) {
283
+ this.uniforms[name] = {
284
+ type: uniformType,
285
+ value: typeof value === "number" || Array.isArray(value) ? value : 0,
286
+ min: node.params?.["min"],
287
+ max: node.params?.["max"],
288
+ label: node.label
289
+ };
290
+ }
291
+ }
292
+ inferUniformType(value) {
293
+ if (typeof value === "number") return "float";
294
+ if (typeof value === "boolean") return "bool";
295
+ if (Array.isArray(value)) {
296
+ if (value.length === 2) return "vec2";
297
+ if (value.length === 3) return "vec3";
298
+ if (value.length === 4) return "vec4";
299
+ if (value.length === 9) return "mat3";
300
+ if (value.length === 16) return "mat4";
301
+ }
302
+ return "float";
303
+ }
304
+ ensureVarying(name, type) {
305
+ const decl = `varying ${type} ${name};`;
306
+ if (!this.varyingDecls.includes(decl)) {
307
+ this.varyingDecls.push(decl);
308
+ }
309
+ }
310
+ // ---------------------------------------------------------------------------
311
+ // Source generation
312
+ // ---------------------------------------------------------------------------
313
+ generateVertexSource() {
314
+ const lines = [];
315
+ for (const decl of this.varyingDecls) {
316
+ lines.push(decl);
317
+ }
318
+ lines.push("");
319
+ lines.push("void main() {");
320
+ if (this.varyingDecls.some((d) => d.includes("vUv"))) {
321
+ lines.push(" vUv = uv;");
322
+ }
323
+ if (this.varyingDecls.some((d) => d.includes("vNormal"))) {
324
+ lines.push(" vNormal = normalize(normalMatrix * normal);");
325
+ }
326
+ if (this.varyingDecls.some((d) => d.includes("vPosition"))) {
327
+ lines.push(" vPosition = position;");
328
+ }
329
+ if (this.varyingDecls.some((d) => d.includes("vViewDir"))) {
330
+ lines.push(" vec4 mvPos = modelViewMatrix * vec4(position, 1.0);");
331
+ lines.push(" vViewDir = normalize(-mvPos.xyz);");
332
+ }
333
+ lines.push(" gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);");
334
+ lines.push("}");
335
+ return lines.join("\n");
336
+ }
337
+ generateFragmentSource(outputNodes) {
338
+ const lines = [];
339
+ lines.push("precision highp float;");
340
+ lines.push("");
341
+ for (const [name, uniform] of Object.entries(this.uniforms)) {
342
+ lines.push(`uniform ${this.uniformTypeToGLSL(uniform.type)} ${name};`);
343
+ }
344
+ lines.push("");
345
+ for (const decl of this.varyingDecls) {
346
+ lines.push(decl);
347
+ }
348
+ lines.push("");
349
+ if (this.nodeMap.size > 0) {
350
+ const hasNoise = Array.from(this.nodeMap.values()).some((n) => n.type === "ProceduralNoise");
351
+ if (hasNoise) {
352
+ lines.push(SIMPLEX_NOISE_2D);
353
+ lines.push("");
354
+ }
355
+ }
356
+ lines.push("void main() {");
357
+ for (const line of this.fragmentLines) {
358
+ lines.push(line);
359
+ }
360
+ if (!this.fragmentLines.some((l) => l.includes("gl_FragColor"))) {
361
+ lines.push(" gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0); // No output node");
362
+ }
363
+ lines.push("}");
364
+ return lines.join("\n");
365
+ }
366
+ // ---------------------------------------------------------------------------
367
+ // Helpers
368
+ // ---------------------------------------------------------------------------
369
+ uniformTypeToGLSL(type) {
370
+ return type;
371
+ }
372
+ sanitize(id) {
373
+ return id.replace(/[^a-zA-Z0-9]/g, "_");
374
+ }
375
+ };
376
+ var SIMPLEX_NOISE_2D = `
377
+ // Simplex 2D noise for ProceduralNoise nodes
378
+ vec3 mod289_n(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
379
+ vec2 mod289_n(vec2 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
380
+ vec3 permute_n(vec3 x) { return mod289_n(((x*34.0)+1.0)*x); }
381
+
382
+ float snoise(vec2 v) {
383
+ const vec4 C = vec4(0.211324865405187, 0.366025403784439,
384
+ -0.577350269189626, 0.024390243902439);
385
+ vec2 i = floor(v + dot(v, C.yy));
386
+ vec2 x0 = v - i + dot(i, C.xx);
387
+ vec2 i1 = (x0[0] > x0[1]) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
388
+ vec4 x12 = x0.xyxy + C.xxzz;
389
+ x12.xy -= i1;
390
+ i = mod289_n(i);
391
+ vec3 p = permute_n(permute_n(i[1] + vec3(0.0, i1[1], 1.0)) + i[0] + vec3(0.0, i1[0], 1.0));
392
+ vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0);
393
+ m = m*m; m = m*m;
394
+ vec3 x = 2.0 * fract(p * C.www) - 1.0;
395
+ vec3 h = abs(x) - 0.5;
396
+ vec3 ox = floor(x + 0.5);
397
+ vec3 a0 = x - ox;
398
+ m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);
399
+ vec3 g;
400
+ g[0] = a0[0] * x0[0] + h[0] * x0[1];
401
+ g.yz = a0.yz * x12.xz + h.yz * x12.yw;
402
+ return 130.0 * dot(m, g);
403
+ }`.trim();
404
+ var NodeToyMapping_default = mapNodeToyToShader;
405
+
406
+ exports.NodeToyMapper = NodeToyMapper;
407
+ exports.NodeToyMapping_default = NodeToyMapping_default;
408
+ exports.mapNodeToyToShader = mapNodeToyToShader;
409
+ //# sourceMappingURL=chunk-S6YWHCKV.cjs.map
410
+ //# sourceMappingURL=chunk-S6YWHCKV.cjs.map
@@ -0,0 +1,229 @@
1
+ import { __esm } from './chunk-OL46QLBJ.js';
2
+
3
+ // src/traits/constants/mobile/ios-object-capture.ts
4
+ var IOS_OBJECT_CAPTURE_TRAITS;
5
+ var init_ios_object_capture = __esm({
6
+ "src/traits/constants/mobile/ios-object-capture.ts"() {
7
+ IOS_OBJECT_CAPTURE_TRAITS = [
8
+ "object_capture",
9
+ // enable Object Capture session
10
+ "object_capture_guide",
11
+ // guided capture overlay (orbit path, coverage indicator)
12
+ "object_capture_feedback",
13
+ // real-time quality feedback during scan
14
+ "photogrammetry_scan",
15
+ // photogrammetry reconstruction pipeline
16
+ "pbr_texture_extract",
17
+ // extract PBR materials (diffuse, normal, roughness, metallic)
18
+ "object_capture_lod",
19
+ // generate LOD levels (preview, reduced, medium, full, raw)
20
+ "object_capture_to_holo",
21
+ // convert captured object to .holo asset
22
+ "object_capture_export_usdz"
23
+ // export as USDZ for Quick Look
24
+ ];
25
+ }
26
+ });
27
+
28
+ // src/traits/constants/mobile/airpods-spatial-audio.ts
29
+ var AIRPODS_SPATIAL_AUDIO_TRAITS;
30
+ var init_airpods_spatial_audio = __esm({
31
+ "src/traits/constants/mobile/airpods-spatial-audio.ts"() {
32
+ AIRPODS_SPATIAL_AUDIO_TRAITS = [
33
+ "spatial_audio_airpods",
34
+ // enable AirPods spatial audio
35
+ "audio_head_track",
36
+ // head-tracked audio stays pinned in space
37
+ "audio_source_3d",
38
+ // define 3D audio source position on .holo entity
39
+ "audio_falloff",
40
+ // distance-based volume falloff model
41
+ "audio_directivity",
42
+ // directional audio cone (inner/outer angle)
43
+ "audio_reverb_match",
44
+ // match reverb to physical room acoustics
45
+ "audio_occlusion"
46
+ // audio occluded by physical/holographic objects
47
+ ];
48
+ }
49
+ });
50
+
51
+ // src/traits/constants/mobile/shareplay.ts
52
+ var SHAREPLAY_TRAITS;
53
+ var init_shareplay = __esm({
54
+ "src/traits/constants/mobile/shareplay.ts"() {
55
+ SHAREPLAY_TRAITS = [
56
+ // --- Session ---
57
+ "shareplay_session",
58
+ // enable SharePlay session for .holo scene
59
+ "shareplay_host",
60
+ // designate host who controls scene state
61
+ "shareplay_join",
62
+ // join existing SharePlay session
63
+ // --- Sync ---
64
+ "shareplay_sync",
65
+ // sync scene state across participants (Loro CRDT)
66
+ "shareplay_anchor_local",
67
+ // each participant anchors scene to their own space
68
+ "shareplay_entity_ownership",
69
+ // per-entity ownership for conflict resolution
70
+ "shareplay_late_join",
71
+ // full state sync for late-joining participants
72
+ // --- Audio ---
73
+ "shareplay_voice_spatial",
74
+ // spatial audio for participant voices in shared scene
75
+ "shareplay_mute_zone"
76
+ // define zones where spatial audio is attenuated
77
+ ];
78
+ }
79
+ });
80
+
81
+ // src/traits/constants/mobile/uwb-positioning.ts
82
+ var UWB_POSITIONING_TRAITS;
83
+ var init_uwb_positioning = __esm({
84
+ "src/traits/constants/mobile/uwb-positioning.ts"() {
85
+ UWB_POSITIONING_TRAITS = [
86
+ "uwb_discover",
87
+ // discover nearby UWB-capable devices
88
+ "uwb_range",
89
+ // measure distance to peer device (cm precision)
90
+ "uwb_direction",
91
+ // determine direction to peer device (azimuth + elevation)
92
+ "uwb_handoff",
93
+ // hand off .holo entity to nearby device by pointing
94
+ "uwb_anchor_peer",
95
+ // use peer device position as spatial anchor
96
+ "uwb_controller"
97
+ // use second device as spatial controller/wand
98
+ ];
99
+ }
100
+ });
101
+
102
+ // src/traits/constants/mobile/face-tracking.ts
103
+ var FACE_TRACKING_TRAITS;
104
+ var init_face_tracking = __esm({
105
+ "src/traits/constants/mobile/face-tracking.ts"() {
106
+ FACE_TRACKING_TRAITS = [
107
+ // --- Tracking ---
108
+ "face_track_truedepth",
109
+ // enable TrueDepth face tracking (ARFaceAnchor)
110
+ "face_blendshapes",
111
+ // 52 ARKit blendshape coefficients
112
+ "face_mesh",
113
+ // face topology mesh (1220 vertices)
114
+ "face_transform",
115
+ // head position and orientation in world space
116
+ // --- Avatar ---
117
+ "face_avatar_drive",
118
+ // drive .holo avatar with face blendshapes
119
+ "face_blendshape_mirror",
120
+ // mirror blendshapes to avatar (1:1 mapping)
121
+ "face_puppet",
122
+ // face-driven holographic puppet mode
123
+ "face_retarget",
124
+ // retarget blendshapes to non-human avatar topology
125
+ // --- Analysis ---
126
+ "face_emotion_detect",
127
+ // derive emotion from blendshape combinations
128
+ "face_gaze_direction",
129
+ // eye gaze vector from lookAtPoint
130
+ "face_tongue_detect"
131
+ // tongue out detection (blendshape tongueOut)
132
+ ];
133
+ }
134
+ });
135
+
136
+ // src/traits/constants/mobile/lidar-scanner.ts
137
+ var LIDAR_SCANNER_TRAITS;
138
+ var init_lidar_scanner = __esm({
139
+ "src/traits/constants/mobile/lidar-scanner.ts"() {
140
+ LIDAR_SCANNER_TRAITS = [
141
+ // --- Scanning ---
142
+ "lidar_scan",
143
+ // enable LiDAR scanning session
144
+ "lidar_mesh_capture",
145
+ // capture raw triangle mesh from LiDAR
146
+ "lidar_realtime_mesh",
147
+ // live-updating mesh during scan (ARMeshAnchor stream)
148
+ // --- Mesh Processing ---
149
+ "lidar_mesh_classification",
150
+ // ARKit mesh classification (floor, wall, ceiling, table, seat, window, door)
151
+ "lidar_point_cloud",
152
+ // raw point cloud access (ARPointCloud)
153
+ "lidar_mesh_simplify",
154
+ // reduce mesh complexity for performance
155
+ "lidar_mesh_smooth",
156
+ // smooth captured mesh normals
157
+ // --- Output ---
158
+ "lidar_mesh_to_holo",
159
+ // convert mesh to .holo scene graph with semantic labels
160
+ "lidar_mesh_export",
161
+ // export mesh as USDZ/OBJ/GLB
162
+ // --- Depth ---
163
+ "lidar_depth_map",
164
+ // per-frame depth buffer (ARFrame.sceneDepth)
165
+ "lidar_depth_confidence"
166
+ // per-pixel confidence map for depth data
167
+ ];
168
+ }
169
+ });
170
+
171
+ // src/traits/constants/mobile/roomplan.ts
172
+ var ROOMPLAN_TRAITS;
173
+ var init_roomplan = __esm({
174
+ "src/traits/constants/mobile/roomplan.ts"() {
175
+ ROOMPLAN_TRAITS = [
176
+ // --- Scanning ---
177
+ "roomplan_scan",
178
+ // marks scene as a RoomPlan capture target (iOS 16+)
179
+ "roomplan_realtime_preview",
180
+ // show live mesh preview during scan
181
+ "roomplan_scan_quality",
182
+ // scan quality level: quick | standard | detailed
183
+ // --- Structural Surfaces ---
184
+ "roomplan_wall",
185
+ // detected wall surface
186
+ "roomplan_floor",
187
+ // detected floor surface
188
+ "roomplan_ceiling",
189
+ // detected ceiling surface
190
+ // --- Openings ---
191
+ "roomplan_door",
192
+ // detected door opening
193
+ "roomplan_window",
194
+ // detected window opening
195
+ "roomplan_opening",
196
+ // generic opening (archway, pass-through)
197
+ // --- Furniture & Fixtures ---
198
+ "roomplan_furniture",
199
+ // generic detected furniture item
200
+ "roomplan_table",
201
+ // classified table
202
+ "roomplan_chair",
203
+ // classified chair / seating
204
+ "roomplan_sofa",
205
+ // classified sofa / couch
206
+ "roomplan_bed",
207
+ // classified bed
208
+ "roomplan_storage",
209
+ // classified storage (cabinet, shelf, dresser)
210
+ "roomplan_appliance",
211
+ // classified appliance (oven, fridge, washer)
212
+ "roomplan_fixture",
213
+ // classified fixture (sink, toilet, bathtub)
214
+ "roomplan_screen",
215
+ // classified screen (TV, monitor)
216
+ "roomplan_fireplace",
217
+ // classified fireplace
218
+ // --- Output ---
219
+ "roomplan_scene_export",
220
+ // export captured room as .holo scene graph
221
+ "roomplan_coordinate_map"
222
+ // map RoomPlan world coordinates to HoloScript space
223
+ ];
224
+ }
225
+ });
226
+
227
+ export { AIRPODS_SPATIAL_AUDIO_TRAITS, FACE_TRACKING_TRAITS, IOS_OBJECT_CAPTURE_TRAITS, LIDAR_SCANNER_TRAITS, ROOMPLAN_TRAITS, SHAREPLAY_TRAITS, UWB_POSITIONING_TRAITS, init_airpods_spatial_audio, init_face_tracking, init_ios_object_capture, init_lidar_scanner, init_roomplan, init_shareplay, init_uwb_positioning };
228
+ //# sourceMappingURL=chunk-SIEXCILW.js.map
229
+ //# sourceMappingURL=chunk-SIEXCILW.js.map