@holoscript/core 8.0.5 → 8.0.7

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 (248) hide show
  1. package/README.md +34 -34
  2. package/bin/holoscript.cjs +1 -1
  3. package/dist/GLTFPipeline-3EJLL3TS.cjs +38 -0
  4. package/dist/GLTFPipeline-3OWJV2VK.js +17 -0
  5. package/dist/{HoloScriptPlusParser-A2W7OCN2.cjs → HoloScriptPlusParser-ADWRY5OS.cjs} +15 -15
  6. package/dist/{HoloScriptPlusParser-7FBIFUFC.js → HoloScriptPlusParser-JLJDXHSC.js} +4 -4
  7. package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +27 -0
  8. package/dist/{HoloScriptPlusParser-F2Z56FJR.js → HoloScriptPlusParser-WENAFEFV.js} +5 -5
  9. package/dist/HoloScriptRuntime-GGRVEU4T.cjs +19 -0
  10. package/dist/HoloScriptRuntime-GJK6VJPH.js +10 -0
  11. package/dist/{USDZExporter-3FWJ25JI.cjs → USDZExporter-AUHZODOF.cjs} +15 -4
  12. package/dist/{USDZExporter-D2HQLQYK.js → USDZExporter-GXB4AUSG.js} +15 -4
  13. package/dist/{chunk-V6MKC2FZ.js → chunk-22Q5A6RV.js} +3 -3
  14. package/dist/{chunk-IUDGEUDO.cjs → chunk-2BZHWUSR.cjs} +27 -15
  15. package/dist/{chunk-XJAN7CZG.cjs → chunk-2GCNOI2U.cjs} +2 -2
  16. package/dist/{chunk-CCATWPXM.js → chunk-2OWDB4FB.js} +13 -25
  17. package/dist/{chunk-N75IH2HY.js → chunk-2Y3V22SG.js} +5 -14
  18. package/dist/{chunk-MXFUTKCO.js → chunk-33YHE7HX.js} +3 -7
  19. package/dist/{chunk-GYZE55MO.js → chunk-3GWWJT7L.js} +4 -4
  20. package/dist/{chunk-CMT5NMMS.js → chunk-3NGDZZR4.js} +4 -4
  21. package/dist/{chunk-WRLUBRKS.cjs → chunk-3SKLAUDD.cjs} +2 -2
  22. package/dist/{chunk-KKFZ3B6J.cjs → chunk-3VBO3IYQ.cjs} +2 -2
  23. package/dist/{chunk-YF2I3MV3.js → chunk-47RUFYKR.js} +2 -2
  24. package/dist/{chunk-LHAXPADA.js → chunk-4JGRWHZJ.js} +7 -5
  25. package/dist/{chunk-ROHLEP2W.cjs → chunk-4W5G5QVL.cjs} +26 -26
  26. package/dist/{chunk-GQHQOPXZ.cjs → chunk-4YNYPHH3.cjs} +186 -17
  27. package/dist/{chunk-ZMCVKFXI.cjs → chunk-56VOWURB.cjs} +154 -47
  28. package/dist/{chunk-FXKAW7ZO.cjs → chunk-5A4TCHOC.cjs} +3 -3
  29. package/dist/{chunk-M56JSP4A.js → chunk-5EDVCNRT.js} +2 -2
  30. package/dist/{chunk-UJXISJBN.js → chunk-5ET6L4NS.js} +3 -3
  31. package/dist/{chunk-5NWINHR5.cjs → chunk-63ZGNR2T.cjs} +43 -39
  32. package/dist/{chunk-NG77ATEW.cjs → chunk-6PRZIHGL.cjs} +6 -6
  33. package/dist/{chunk-3WZEJHUQ.cjs → chunk-7DMMMBCY.cjs} +7 -7
  34. package/dist/{chunk-FHP6LXJS.js → chunk-7E7GCQCK.js} +2 -2
  35. package/dist/{chunk-YN2YWTXW.js → chunk-7VMGP2FW.js} +44 -28
  36. package/dist/{chunk-OJXHYNXN.js → chunk-7X5PNIQJ.js} +3 -3
  37. package/dist/{chunk-FYSPZT4V.cjs → chunk-7ZHYEITD.cjs} +11 -11
  38. package/dist/{chunk-KPJL34Y7.cjs → chunk-ACVWFGBI.cjs} +2 -2
  39. package/dist/{chunk-UWXE23BT.cjs → chunk-AWB7QYY6.cjs} +6 -6
  40. package/dist/{chunk-UO4WPSGQ.js → chunk-B4EKV6HQ.js} +154 -48
  41. package/dist/{chunk-2X7NGX3M.js → chunk-BRNUPDHJ.js} +5 -5
  42. package/dist/{chunk-D3STJ56J.js → chunk-BTKZGHAV.js} +23 -11
  43. package/dist/{chunk-I5CDNPPE.cjs → chunk-C4GSLCHE.cjs} +331 -125
  44. package/dist/{chunk-QPSKHBJP.js → chunk-C7ZBSV2Q.js} +13 -7
  45. package/dist/{chunk-YN6V7R3L.cjs → chunk-CCPSNT6B.cjs} +12 -7
  46. package/dist/{chunk-NW5G5FBQ.js → chunk-DD2JQ7TS.js} +4 -3
  47. package/dist/{chunk-JD7CIZ33.js → chunk-DUCB6LGL.js} +8 -10
  48. package/dist/{chunk-ANXZFVY2.js → chunk-DY72BMU5.js} +3 -3
  49. package/dist/{chunk-AIA52I7T.cjs → chunk-EBS32AJI.cjs} +6 -4
  50. package/dist/{chunk-6DO5IZ5N.cjs → chunk-EDPYCLRC.cjs} +85 -65
  51. package/dist/{chunk-WQKJSGVS.js → chunk-F2G6CWFT.js} +271 -66
  52. package/dist/{chunk-AVJHHUC5.cjs → chunk-F5LKJ6F5.cjs} +43 -31
  53. package/dist/{chunk-ZU7NIRT6.js → chunk-FGMDMJM7.js} +10 -5
  54. package/dist/{chunk-YVD3CSO3.js → chunk-FHQFPYV4.js} +4 -4
  55. package/dist/{chunk-YIMN575O.js → chunk-FNHJRI32.js} +8 -5
  56. package/dist/{chunk-EXUP2BUM.cjs → chunk-FT6TDR2O.cjs} +27 -27
  57. package/dist/{chunk-BRQJKJGT.cjs → chunk-FWVYAMNW.cjs} +4 -4
  58. package/dist/{chunk-PGANYCAG.cjs → chunk-G25QVBA5.cjs} +4 -3
  59. package/dist/{chunk-XB274MW5.cjs → chunk-G6PNEASF.cjs} +13 -13
  60. package/dist/{chunk-2BSMSUCE.js → chunk-GASCWJK5.js} +2 -2
  61. package/dist/{chunk-HKEXJUWS.cjs → chunk-GH6C2QGW.cjs} +12 -21
  62. package/dist/{chunk-WRKUDAZJ.js → chunk-GSOUNWEL.js} +35 -27
  63. package/dist/{chunk-QPOQ7VPI.js → chunk-GTA4Q3A3.js} +2 -2
  64. package/dist/{chunk-JIYN45TV.cjs → chunk-GVFJ6T4S.cjs} +3 -7
  65. package/dist/{chunk-IVY74O6C.js → chunk-GVOKJNUN.js} +50 -11
  66. package/dist/{chunk-GZG4KA4E.js → chunk-GW3LKD5C.js} +6 -4
  67. package/dist/{chunk-NCWCUZNS.cjs → chunk-HFSVMKM3.cjs} +14 -14
  68. package/dist/{chunk-IUTY5WQ2.cjs → chunk-HLFDZ35S.cjs} +5 -5
  69. package/dist/{chunk-IWC5DM2M.cjs → chunk-I76GIKN7.cjs} +20 -16
  70. package/dist/{chunk-ON5QSY35.cjs → chunk-KAIVDEIG.cjs} +175 -59
  71. package/dist/{chunk-R24NNAEG.js → chunk-KCPHASCO.js} +18 -6
  72. package/dist/{chunk-T5J7ZKP3.cjs → chunk-KOUAQL2B.cjs} +16 -13
  73. package/dist/{chunk-GMP623FG.cjs → chunk-KQU64CIX.cjs} +2 -2
  74. package/dist/{chunk-MVPBWHAC.js → chunk-L5U4W6JC.js} +4 -4
  75. package/dist/{chunk-2IWC4FP7.cjs → chunk-LMJ5EBV7.cjs} +10 -10
  76. package/dist/{chunk-KKP7JKN4.cjs → chunk-LODTHGST.cjs} +18 -12
  77. package/dist/{chunk-4V2E7U7Q.cjs → chunk-LPS5AMQD.cjs} +8 -8
  78. package/dist/{chunk-PY37LNDP.js → chunk-LWUOUCYL.js} +9 -5
  79. package/dist/{chunk-6CTRH7HT.cjs → chunk-LYJJI7ZK.cjs} +12 -14
  80. package/dist/{chunk-GTU2Z2WW.cjs → chunk-M7K4LE66.cjs} +5 -14
  81. package/dist/{chunk-URG2SJLK.js → chunk-MDR235RZ.js} +3 -7
  82. package/dist/{chunk-E4M5OAYO.js → chunk-MSYSQ2AJ.js} +132 -16
  83. package/dist/{chunk-TWUXUCEW.cjs → chunk-NGBXXZLL.cjs} +50 -62
  84. package/dist/{chunk-FFAOS5HQ.js → chunk-NHJLP37F.js} +6 -6
  85. package/dist/{chunk-S3MDHNKB.cjs → chunk-NHYRRAGI.cjs} +5 -5
  86. package/dist/{chunk-U44IKGG7.cjs → chunk-O3MGZDCT.cjs} +89 -52
  87. package/dist/{chunk-GIOYPNTH.js → chunk-OABEO6HH.js} +185 -16
  88. package/dist/{chunk-KQCN6AKJ.cjs → chunk-OS533P33.cjs} +37 -29
  89. package/dist/{chunk-DAJXW4KX.js → chunk-PABONWKI.js} +24 -11
  90. package/dist/{chunk-QACVP4PM.js → chunk-PXNZ6TME.js} +77 -59
  91. package/dist/{chunk-OMXII44L.js → chunk-Q2Q34NF3.js} +63 -26
  92. package/dist/{chunk-OH2FAIVU.js → chunk-QBWNJXNR.js} +10 -6
  93. package/dist/{chunk-XKTPFXGA.js → chunk-QFU53KRH.js} +4 -4
  94. package/dist/{chunk-CR4FMIWL.cjs → chunk-QGMUTVVH.cjs} +17 -17
  95. package/dist/{chunk-MYY4PMWX.cjs → chunk-RUVBFAF7.cjs} +50 -11
  96. package/dist/{chunk-QD32ADK6.js → chunk-S762UEV5.js} +5 -5
  97. package/dist/{chunk-HNDK4IQU.cjs → chunk-SH5PPVK7.cjs} +61 -45
  98. package/dist/{chunk-JC5YBPSF.cjs → chunk-SKZPC5AG.cjs} +5 -5
  99. package/dist/{chunk-TJHVSBP2.js → chunk-SLHLXUMO.js} +10 -4
  100. package/dist/{chunk-5KVXXUD4.js → chunk-SSSN7VAM.js} +3 -3
  101. package/dist/{chunk-KMC6CQH3.js → chunk-SXOSDZD6.js} +6 -6
  102. package/dist/{chunk-J32ZJZJH.js → chunk-SYTRBGDS.js} +2 -2
  103. package/dist/{chunk-CIWWXYHZ.cjs → chunk-T6W3Z3SH.cjs} +2 -2
  104. package/dist/{chunk-QXH7QDSZ.js → chunk-TEVX443G.js} +44 -51
  105. package/dist/{chunk-UFZZ7TSN.cjs → chunk-TQ377OLB.cjs} +23 -21
  106. package/dist/{chunk-PJGFU5DN.cjs → chunk-TRCGG42I.cjs} +195 -152
  107. package/dist/{chunk-H652NHX5.js → chunk-TVANHNJ7.js} +30 -23
  108. package/dist/{chunk-EKBKLK7P.js → chunk-UDE4OZMR.js} +3 -3
  109. package/dist/{chunk-LKWQNUE6.cjs → chunk-UGXHYIWT.cjs} +5 -5
  110. package/dist/{chunk-JBNDTXXV.cjs → chunk-ULMSSHCJ.cjs} +21 -21
  111. package/dist/{chunk-YWOBW2PV.cjs → chunk-UOL6Y5TD.cjs} +18 -18
  112. package/dist/{chunk-5S7RKFGR.cjs → chunk-UVFI7XIR.cjs} +10 -4
  113. package/dist/{chunk-7M3PNU2M.cjs → chunk-V7AKE5VT.cjs} +10 -10
  114. package/dist/{chunk-J7XZV333.js → chunk-VEPGBETF.js} +6 -6
  115. package/dist/{chunk-UWJHCOH2.js → chunk-VF257YKO.js} +4 -4
  116. package/dist/{chunk-4N4SXXWF.js → chunk-VSACG2AR.js} +3 -3
  117. package/dist/{chunk-ZDSYWBIE.cjs → chunk-VW5CRJBE.cjs} +3 -7
  118. package/dist/{chunk-YT5L3B57.cjs → chunk-WFKVS2K4.cjs} +65 -27
  119. package/dist/{chunk-J6M4FPK5.js → chunk-WXQ57LAO.js} +3 -3
  120. package/dist/{chunk-5H2G27PK.cjs → chunk-X27QRG4C.cjs} +38 -38
  121. package/dist/{chunk-TVHSPJ4N.cjs → chunk-X2AVEAZM.cjs} +30 -23
  122. package/dist/{chunk-DHO2YRIM.js → chunk-XQ5MWMP2.js} +4 -4
  123. package/dist/{chunk-XIVIE43A.cjs → chunk-XW6IXEQH.cjs} +26 -13
  124. package/dist/{chunk-YIVFJNYV.js → chunk-Y3ZFVUUU.js} +2 -2
  125. package/dist/{chunk-7H33U5SM.cjs → chunk-Y57W2CT5.cjs} +2 -2
  126. package/dist/{chunk-OBIYPYYS.cjs → chunk-YCM6QQRT.cjs} +46 -53
  127. package/dist/{chunk-MBOOR7X4.js → chunk-YFVQWSNJ.js} +3 -3
  128. package/dist/{chunk-ADADVMXY.js → chunk-YFWRJW4B.js} +2 -2
  129. package/dist/{chunk-ONDAWTW4.js → chunk-YN6IETRZ.js} +179 -136
  130. package/dist/{chunk-4SDKXQ4C.js → chunk-YRRAUB35.js} +4 -4
  131. package/dist/{chunk-OBP5REIV.js → chunk-Z6PMDS4G.js} +62 -24
  132. package/dist/{chunk-BOVPWH4H.js → chunk-ZA34AN3R.js} +8 -17
  133. package/dist/{chunk-EKYL4PE3.cjs → chunk-ZLF4YF3U.cjs} +2 -2
  134. package/dist/{chunk-6FH72EB2.cjs → chunk-ZPZAVHXL.cjs} +20 -20
  135. package/dist/cli/holoscript-runner.cjs +39 -22
  136. package/dist/cli/holoscript-runner.js +32 -15
  137. package/dist/compiler/GasOptimizationAnalyzer.d.ts +73 -0
  138. package/dist/compiler/NFTMarketplaceCompiler.d.ts +23 -0
  139. package/dist/compiler/agent-inference.cjs +7 -7
  140. package/dist/compiler/agent-inference.js +3 -3
  141. package/dist/compiler/android-xr.cjs +8 -8
  142. package/dist/compiler/android-xr.js +6 -6
  143. package/dist/compiler/android.cjs +6 -6
  144. package/dist/compiler/android.js +4 -4
  145. package/dist/compiler/ar.cjs +6 -6
  146. package/dist/compiler/ar.js +4 -4
  147. package/dist/compiler/babylon.cjs +8 -8
  148. package/dist/compiler/babylon.js +7 -7
  149. package/dist/compiler/business-quest.cjs +9 -9
  150. package/dist/compiler/business-quest.js +1 -1
  151. package/dist/compiler/context.cjs +6 -6
  152. package/dist/compiler/context.js +3 -3
  153. package/dist/compiler/domain-block-utils.cjs +153 -153
  154. package/dist/compiler/domain-block-utils.js +4 -4
  155. package/dist/compiler/dtdl.cjs +7 -7
  156. package/dist/compiler/dtdl.js +4 -4
  157. package/dist/compiler/gltf-pipeline.cjs +8 -8
  158. package/dist/compiler/gltf-pipeline.js +1 -1
  159. package/dist/compiler/godot.cjs +6 -6
  160. package/dist/compiler/godot.js +5 -5
  161. package/dist/compiler/incremental.cjs +8 -8
  162. package/dist/compiler/incremental.js +3 -3
  163. package/dist/compiler/index.cjs +530 -355
  164. package/dist/compiler/index.d.ts +20 -0
  165. package/dist/compiler/index.js +374 -210
  166. package/dist/compiler/ios.cjs +6 -6
  167. package/dist/compiler/ios.js +4 -4
  168. package/dist/compiler/llm-provider-capabilities.cjs +6 -6
  169. package/dist/compiler/llm-provider-capabilities.js +3 -3
  170. package/dist/compiler/multi-layer.cjs +10 -10
  171. package/dist/compiler/multi-layer.js +9 -9
  172. package/dist/compiler/openxr.cjs +7 -7
  173. package/dist/compiler/openxr.js +6 -6
  174. package/dist/compiler/playcanvas.cjs +6 -6
  175. package/dist/compiler/playcanvas.js +5 -5
  176. package/dist/compiler/r3f.cjs +13 -13
  177. package/dist/compiler/r3f.js +8 -8
  178. package/dist/compiler/sdf.cjs +7 -7
  179. package/dist/compiler/sdf.js +5 -5
  180. package/dist/compiler/state.cjs +6 -6
  181. package/dist/compiler/state.js +4 -4
  182. package/dist/compiler/trait-composition.cjs +8 -8
  183. package/dist/compiler/trait-composition.js +4 -4
  184. package/dist/compiler/unity.cjs +7 -7
  185. package/dist/compiler/unity.js +6 -6
  186. package/dist/compiler/unreal.cjs +8 -8
  187. package/dist/compiler/unreal.js +6 -6
  188. package/dist/compiler/urdf.cjs +14 -14
  189. package/dist/compiler/urdf.js +5 -5
  190. package/dist/compiler/usd-physics.cjs +7 -7
  191. package/dist/compiler/usd-physics.js +4 -4
  192. package/dist/compiler/visionos.cjs +7 -7
  193. package/dist/compiler/visionos.js +6 -6
  194. package/dist/compiler/vrchat.cjs +7 -7
  195. package/dist/compiler/vrchat.js +5 -5
  196. package/dist/compiler/vrr.cjs +7 -7
  197. package/dist/compiler/vrr.js +5 -5
  198. package/dist/compiler/wasm.cjs +10 -10
  199. package/dist/compiler/wasm.js +5 -5
  200. package/dist/compiler/webgpu.cjs +6 -6
  201. package/dist/compiler/webgpu.js +5 -5
  202. package/dist/coordinators/index.cjs +27 -10
  203. package/dist/coordinators/index.js +27 -10
  204. package/dist/debugger.cjs +6 -6
  205. package/dist/debugger.js +4 -4
  206. package/dist/entries/scripting.cjs +6 -6
  207. package/dist/entries/scripting.js +2 -2
  208. package/dist/hololand/index.cjs +36 -36
  209. package/dist/hololand/index.js +2 -2
  210. package/dist/index.cjs +1080 -2190
  211. package/dist/index.js +467 -1577
  212. package/dist/math/tropical-spmv.cjs +10 -10
  213. package/dist/math/tropical-spmv.js +1 -1
  214. package/dist/math/vec3.cjs +13 -13
  215. package/dist/math/vec3.js +1 -1
  216. package/dist/parser/NFTMarketplaceTypes.d.ts +191 -0
  217. package/dist/parser.cjs +16 -16
  218. package/dist/parser.js +5 -5
  219. package/dist/reconstruction/index.cjs +37 -37
  220. package/dist/reconstruction/index.js +4 -4
  221. package/dist/runtime.cjs +280 -74
  222. package/dist/runtime.d.ts +10 -1
  223. package/dist/runtime.js +268 -70
  224. package/dist/self-improvement/index.cjs +12 -4
  225. package/dist/self-improvement/index.js +12 -4
  226. package/dist/{src-HCCCSYP7.js → src-J6CM4AUR.js} +91 -33
  227. package/dist/{src-4ROC227P.cjs → src-PT2FERDV.cjs} +93 -35
  228. package/dist/testing.cjs +5 -5
  229. package/dist/testing.js +1 -1
  230. package/dist/traits/botanical-lotus.cjs +52 -48
  231. package/dist/traits/botanical-lotus.js +2 -2
  232. package/dist/traits/engines/index.cjs +39 -39
  233. package/dist/traits/engines/index.d.ts +279 -0
  234. package/dist/traits/engines/index.js +4 -4
  235. package/dist/traits/index.cjs +889 -773
  236. package/dist/traits/index.js +371 -259
  237. package/dist/world/index.cjs +21 -18
  238. package/dist/world/index.js +21 -18
  239. package/dist/world-model/index.cjs +11 -5
  240. package/dist/world-model/index.d.ts +8 -0
  241. package/dist/world-model/index.js +11 -5
  242. package/package.json +75 -69
  243. package/LICENSE +0 -21
  244. package/dist/GLTFPipeline-37FPRVPH.js +0 -17
  245. package/dist/GLTFPipeline-EK3LFJKW.cjs +0 -38
  246. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +0 -27
  247. package/dist/HoloScriptRuntime-ACDFKVVH.js +0 -10
  248. package/dist/HoloScriptRuntime-ON2OQVEF.cjs +0 -19
@@ -1,7 +1,7 @@
1
1
  import { init_AndroidKotlinHelpers, sanitizeName, toKotlinFloat3, toKotlinColor, mapShapeToFilament, toKotlinType, toKotlinValue, findObjProp, compositionUsesArCoreDepthTraits } from './chunk-FDSGHPAK.js';
2
- import { init_PlatformConditionalCompilerMixin, filterCompositionForPlatform } from './chunk-GZG4KA4E.js';
3
- import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileWeatherBlock, weatherToAndroidXR, compileAudioSourceBlock, audioSourceToAndroidXR, compilePostProcessingBlock, compileParticleBlock, particlesToAndroidXR, compilePhysicsBlock, physicsToAndroidXR, compileMaterialBlock, materialToAndroidXR } from './chunk-BOVPWH4H.js';
4
- import { init_CompilerBase, CompilerBase } from './chunk-QPSKHBJP.js';
2
+ import { init_PlatformConditionalCompilerMixin, filterCompositionForPlatform } from './chunk-GW3LKD5C.js';
3
+ import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileWeatherBlock, weatherToAndroidXR, compileAudioSourceBlock, audioSourceToAndroidXR, compilePostProcessingBlock, compileParticleBlock, particlesToAndroidXR, compilePhysicsBlock, physicsToAndroidXR, compileMaterialBlock, materialToAndroidXR } from './chunk-ZA34AN3R.js';
4
+ import { init_CompilerBase, CompilerBase } from './chunk-C7ZBSV2Q.js';
5
5
  import { __esm, __export } from './chunk-OL46QLBJ.js';
6
6
  import { ANSCapabilityPath } from '@holoscript/core-types/ans';
7
7
 
@@ -967,7 +967,11 @@ var init_AndroidXRTraitDispatch = __esm({
967
967
  trait: "mesh_detection",
968
968
  components: ["MeshReconstruction"],
969
969
  level: "full",
970
- imports: ["com.google.ar.core.Config", "com.google.ar.core.Frame", "com.google.ar.core.Trackable"],
970
+ imports: [
971
+ "com.google.ar.core.Config",
972
+ "com.google.ar.core.Frame",
973
+ "com.google.ar.core.Trackable"
974
+ ],
971
975
  generate: (varName) => [
972
976
  `// @mesh_detection -- ARCore scene mesh reconstruction`,
973
977
  `// android.permission.SCENE_UNDERSTANDING_COARSE required`,
@@ -1192,7 +1196,10 @@ var init_AndroidXRTraitDispatch = __esm({
1192
1196
  trait: "gaze_interactable",
1193
1197
  components: ["InteractableComponent"],
1194
1198
  level: "full",
1195
- imports: ["androidx.xr.scenecore.InteractableComponent", "androidx.xr.scenecore.InteractableType"],
1199
+ imports: [
1200
+ "androidx.xr.scenecore.InteractableComponent",
1201
+ "androidx.xr.scenecore.InteractableType"
1202
+ ],
1196
1203
  generate: (varName) => [
1197
1204
  `// Combine Android SceneCore Gaze entity with Hand tracking pinch`,
1198
1205
  `${varName}.addComponent(InteractableComponent(InteractableType.GAZE_AND_PINCH))`,
@@ -2797,10 +2804,7 @@ var init_AndroidXRCodeTemplates = __esm({
2797
2804
  trait: "controlnet",
2798
2805
  components: [],
2799
2806
  level: "full",
2800
- imports: [
2801
- "org.tensorflow.lite.Interpreter",
2802
- "org.tensorflow.lite.support.image.TensorImage"
2803
- ],
2807
+ imports: ["org.tensorflow.lite.Interpreter", "org.tensorflow.lite.support.image.TensorImage"],
2804
2808
  generate: (varName, config) => {
2805
2809
  const model = String(config.model || "controlnet_canny");
2806
2810
  const endpoint = String(config.endpoint || "");
@@ -2904,10 +2908,7 @@ var init_AndroidXRCodeTemplates = __esm({
2904
2908
  trait: "diffusion_realtime",
2905
2909
  components: [],
2906
2910
  level: "full",
2907
- imports: [
2908
- "org.tensorflow.lite.Interpreter",
2909
- "android.opengl.GLES31"
2910
- ],
2911
+ imports: ["org.tensorflow.lite.Interpreter", "android.opengl.GLES31"],
2911
2912
  generate: (varName, config) => {
2912
2913
  const backend = String(config.backend || "tflite");
2913
2914
  const steps = Number(config.steps || 4);
@@ -3324,10 +3325,7 @@ var init_AndroidXRCodeTemplates = __esm({
3324
3325
  ]
3325
3326
  };
3326
3327
  const lines = mlkitSetup[task] ?? mlkitSetup["classification"];
3327
- return [
3328
- `// @vision -- ML Kit Vision (task: ${task})`,
3329
- ...lines
3330
- ];
3328
+ return [`// @vision -- ML Kit Vision (task: ${task})`, ...lines];
3331
3329
  }
3332
3330
  },
3333
3331
  spatial_awareness: {
@@ -4010,7 +4008,9 @@ function generateNodeFactoryFile(compiler, composition) {
4010
4008
  compiler.indentLevel = 0;
4011
4009
  const pkg = compiler.options.packageName;
4012
4010
  compiler.emit("// Auto-generated by HoloScript AndroidXRCompiler");
4013
- compiler.emit(`// Node Factory: ${compiler.escapeStringValue(composition.name, "Kotlin")}`);
4011
+ compiler.emit(
4012
+ `// Node Factory: ${compiler.escapeStringValue(composition.name, "Kotlin")}`
4013
+ );
4014
4014
  compiler.emit("");
4015
4015
  compiler.emit(`package ${pkg}`);
4016
4016
  compiler.emit("");
@@ -4109,7 +4109,9 @@ function compileObjectFactory(compiler, obj) {
4109
4109
  compiler.emit("parent = session.scene.activitySpace");
4110
4110
  const pos = compiler.findProp(obj, "position");
4111
4111
  if (pos && Array.isArray(pos)) {
4112
- compiler.emit(`setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`);
4112
+ compiler.emit(
4113
+ `setPose(Pose(${compiler.toKotlinFloat3(pos)}, Quaternion.identity()))`
4114
+ );
4113
4115
  }
4114
4116
  const scale = compiler.findProp(obj, "scale");
4115
4117
  if (scale && Array.isArray(scale)) {
@@ -4632,7 +4634,9 @@ function emitObject(compiler, obj) {
4632
4634
  compiler.emit(`// Activate strictly if depth API is physically supported on-device`);
4633
4635
  compiler.emit(`if (xrSession.isDepthSupported) {`);
4634
4636
  compiler.indent();
4635
- compiler.emit(`xrSession.scene.configure { config -> config.depthMode = Config.DepthMode.AUTOMATIC }`);
4637
+ compiler.emit(
4638
+ `xrSession.scene.configure { config -> config.depthMode = Config.DepthMode.AUTOMATIC }`
4639
+ );
4636
4640
  compiler.emit(`${v}.enableDepthOcclusion(true)`);
4637
4641
  compiler.dedent();
4638
4642
  compiler.emit(`}`);
@@ -4646,7 +4650,9 @@ function emitObject(compiler, obj) {
4646
4650
  compiler.emit(`// AI upscaling: load texture, apply TFLite super-resolution`);
4647
4651
  compiler.emit(`val ${v}TexturePath = "${texture}"`);
4648
4652
  compiler.emit(`val ${v}OriginalBitmap = BitmapFactory.decodeFile(${v}TexturePath)`);
4649
- compiler.emit(`val ${v}UpscaledBitmap = ${v}Upscale(LocalContext.current, ${v}OriginalBitmap)`);
4653
+ compiler.emit(
4654
+ `val ${v}UpscaledBitmap = ${v}Upscale(LocalContext.current, ${v}OriginalBitmap)`
4655
+ );
4650
4656
  compiler.emit(`// Apply ${v}UpscaledBitmap to material texture`);
4651
4657
  } else {
4652
4658
  compiler.emit(`// AI upscaling trait present but no texture property found on ${v}`);
@@ -4660,10 +4666,14 @@ function emitObject(compiler, obj) {
4660
4666
  compiler.emit(`val ${v}MaskPath = "${mask}"`);
4661
4667
  compiler.emit(`val ${v}ImageBitmap = BitmapFactory.decodeFile(${v}TexturePath)`);
4662
4668
  compiler.emit(`val ${v}MaskBitmap = BitmapFactory.decodeFile(${v}MaskPath)`);
4663
- compiler.emit(`val ${v}InpaintedBitmap = ${v}Inpaint(LocalContext.current, ${v}ImageBitmap, ${v}MaskBitmap)`);
4669
+ compiler.emit(
4670
+ `val ${v}InpaintedBitmap = ${v}Inpaint(LocalContext.current, ${v}ImageBitmap, ${v}MaskBitmap)`
4671
+ );
4664
4672
  compiler.emit(`// Apply ${v}InpaintedBitmap to material texture`);
4665
4673
  } else {
4666
- compiler.emit(`// AI inpainting trait present but requires both 'texture' and 'mask' properties on ${v}`);
4674
+ compiler.emit(
4675
+ `// AI inpainting trait present but requires both 'texture' and 'mask' properties on ${v}`
4676
+ );
4667
4677
  }
4668
4678
  }
4669
4679
  }
@@ -4775,7 +4785,9 @@ function emitAudio(compiler, audio) {
4775
4785
  compiler.emit("");
4776
4786
  compiler.emit(`// Audio: ${compiler.escapeStringValue(audio.name, "Kotlin")}`);
4777
4787
  if (src) {
4778
- compiler.emit(`val ${v}Id = soundPool.load(this, R.raw.${compiler.sanitizeName(src)}, 1)`);
4788
+ compiler.emit(
4789
+ `val ${v}Id = soundPool.load(this, R.raw.${compiler.sanitizeName(src)}, 1)`
4790
+ );
4779
4791
  }
4780
4792
  if (spatial && pos && Array.isArray(pos)) {
4781
4793
  compiler.emit(
@@ -4867,7 +4879,9 @@ function emitFaceTracking(compiler, varName, config) {
4867
4879
  if (blendshapes.length > 0) {
4868
4880
  for (const bs of blendshapes) {
4869
4881
  const bsConst = `FaceBlendShapeType.FACE_BLEND_SHAPE_TYPE_${bs.toUpperCase()}`;
4870
- compiler.emit(`val ${varName}_${compiler.sanitizeName(bs)} = faceState.blendShapes[${bsConst}]`);
4882
+ compiler.emit(
4883
+ `val ${varName}_${compiler.sanitizeName(bs)} = faceState.blendShapes[${bsConst}]`
4884
+ );
4871
4885
  }
4872
4886
  } else {
4873
4887
  compiler.emit(
@@ -5248,7 +5262,9 @@ function emitGlimmerObject(compiler, obj) {
5248
5262
  } else if (modelSrc) {
5249
5263
  compiler.emit(`Card(`);
5250
5264
  compiler.indent();
5251
- compiler.emit(`title = { Text("${compiler.escapeStringValue(obj.name, "Kotlin")}") },`);
5265
+ compiler.emit(
5266
+ `title = { Text("${compiler.escapeStringValue(obj.name, "Kotlin")}") },`
5267
+ );
5252
5268
  compiler.emit(`action = {`);
5253
5269
  compiler.indent();
5254
5270
  compiler.emit(`Button(onClick = { /* interact with ${v} */ }) {`);
@@ -5727,5 +5743,5 @@ var init_AndroidXRCompiler = __esm({
5727
5743
  });
5728
5744
 
5729
5745
  export { ANDROIDXR_TRAIT_MAP, AndroidXRCompiler, AndroidXRCompiler_exports, compileToAndroidXR, getTraitMapping, init_AndroidXRCompiler, init_AndroidXRTraitMap };
5730
- //# sourceMappingURL=chunk-YN2YWTXW.js.map
5731
- //# sourceMappingURL=chunk-YN2YWTXW.js.map
5746
+ //# sourceMappingURL=chunk-7VMGP2FW.js.map
5747
+ //# sourceMappingURL=chunk-7VMGP2FW.js.map
@@ -1,4 +1,4 @@
1
- import { createHoloMapRuntime, HOLOMAP_DEFAULTS } from './chunk-OBP5REIV.js';
1
+ import { createHoloMapRuntime, HOLOMAP_DEFAULTS } from './chunk-Z6PMDS4G.js';
2
2
 
3
3
  // src/reconstruction/FusedAttentionKernel.ts
4
4
  var FUSED_ATTENTION_WGSL = `
@@ -619,5 +619,5 @@ async function replayMobileSensorBundle(bundle, config = {}) {
619
619
  }
620
620
 
621
621
  export { ANCHOR_DEFAULTS, ARCORE_DEPTH_RECOMMENDED_RANGE_MILLIMETERS, HOLOMAP_MOBILE_SENSOR_BUNDLE_VERSION, TRAJECTORY_DEFAULTS, arCoreDepthFrameToMobileSensorFrame, cameraPoseFromColumnMajorTransform, createAnchorContext, createArCoreDepthMobileSensorBundle, createFusedAttentionBackend, createPagedKVCache, createTrajectoryMemory, mergeAnchoredProvenance, mobileSensorBundleToFrames, replayMobileSensorBundle, validateMobileSensorBundle };
622
- //# sourceMappingURL=chunk-OJXHYNXN.js.map
623
- //# sourceMappingURL=chunk-OJXHYNXN.js.map
622
+ //# sourceMappingURL=chunk-7X5PNIQJ.js.map
623
+ //# sourceMappingURL=chunk-7X5PNIQJ.js.map
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunk5S7RKFGR_cjs = require('./chunk-5S7RKFGR.cjs');
4
- var chunkKKP7JKN4_cjs = require('./chunk-KKP7JKN4.cjs');
3
+ var chunkUVFI7XIR_cjs = require('./chunk-UVFI7XIR.cjs');
4
+ var chunkLODTHGST_cjs = require('./chunk-LODTHGST.cjs');
5
5
 
6
6
  // src/compiler/TraitCompositionCompiler.ts
7
- chunkKKP7JKN4_cjs.init_AgentRBAC();
8
- chunkKKP7JKN4_cjs.init_CompilerBase();
9
- chunk5S7RKFGR_cjs.init_ProvenanceSemiring();
7
+ chunkLODTHGST_cjs.init_AgentRBAC();
8
+ chunkLODTHGST_cjs.init_CompilerBase();
9
+ chunkUVFI7XIR_cjs.init_ProvenanceSemiring();
10
10
  var CompositionConflictError = class extends Error {
11
11
  constructor(traitA, traitB, conflictKey) {
12
12
  super(
@@ -63,7 +63,7 @@ var TraitCompositionCompiler = class {
63
63
  */
64
64
  validateAccess(agentToken) {
65
65
  if (!agentToken) return;
66
- const rbac = chunkKKP7JKN4_cjs.getRBAC();
66
+ const rbac = chunkLODTHGST_cjs.getRBAC();
67
67
  const decision = rbac.checkAccess({
68
68
  token: agentToken,
69
69
  resourceType: "ast" /* AST */,
@@ -83,12 +83,12 @@ var TraitCompositionCompiler = class {
83
83
  if (!handler) throw new MissingComponentError(decl.name, name);
84
84
  return { name, handler };
85
85
  });
86
- if (chunk5S7RKFGR_cjs.authorityWeight(
86
+ if (chunkUVFI7XIR_cjs.authorityWeight(
87
87
  decl.provenance?.context?.authorityLevel ?? 0
88
88
  ) < 100) {
89
89
  this.detectConflicts(handlers);
90
90
  }
91
- const semiring = new chunk5S7RKFGR_cjs.ProvenanceSemiring();
91
+ const semiring = new chunkUVFI7XIR_cjs.ProvenanceSemiring();
92
92
  const applications = [];
93
93
  for (const { name, handler } of handlers) {
94
94
  let configAccumulator = {};
@@ -154,7 +154,7 @@ var TraitCompositionCompiler = class {
154
154
  }
155
155
  }
156
156
  };
157
- var UnauthorizedTraitCompositionAccessError = class extends chunkKKP7JKN4_cjs.UnauthorizedCompilerAccessError {
157
+ var UnauthorizedTraitCompositionAccessError = class extends chunkLODTHGST_cjs.UnauthorizedCompilerAccessError {
158
158
  constructor(decision, compilerName) {
159
159
  super(decision, "trait composition", compilerName);
160
160
  this.name = "UnauthorizedTraitCompositionAccessError";
@@ -165,5 +165,5 @@ exports.CompositionConflictError = CompositionConflictError;
165
165
  exports.MissingComponentError = MissingComponentError;
166
166
  exports.TraitCompositionCompiler = TraitCompositionCompiler;
167
167
  exports.UnauthorizedTraitCompositionAccessError = UnauthorizedTraitCompositionAccessError;
168
- //# sourceMappingURL=chunk-FYSPZT4V.cjs.map
169
- //# sourceMappingURL=chunk-FYSPZT4V.cjs.map
168
+ //# sourceMappingURL=chunk-7ZHYEITD.cjs.map
169
+ //# sourceMappingURL=chunk-7ZHYEITD.cjs.map
@@ -182,5 +182,5 @@ exports.maxAbsDiff = maxAbsDiff;
182
182
  exports.mulberry32 = mulberry32;
183
183
  exports.tropicalMinPlusSpmv = tropicalMinPlusSpmv;
184
184
  exports.tropicalMinPlusSpmvDense = tropicalMinPlusSpmvDense;
185
- //# sourceMappingURL=chunk-KPJL34Y7.cjs.map
186
- //# sourceMappingURL=chunk-KPJL34Y7.cjs.map
185
+ //# sourceMappingURL=chunk-ACVWFGBI.cjs.map
186
+ //# sourceMappingURL=chunk-ACVWFGBI.cjs.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunk6DO5IZ5N_cjs = require('./chunk-6DO5IZ5N.cjs');
4
- var chunkJIYN45TV_cjs = require('./chunk-JIYN45TV.cjs');
3
+ var chunkEDPYCLRC_cjs = require('./chunk-EDPYCLRC.cjs');
4
+ var chunkGVFJ6T4S_cjs = require('./chunk-GVFJ6T4S.cjs');
5
5
 
6
6
  // src/HoloScriptDebugger.ts
7
7
  var HoloScriptDebugger = class {
@@ -21,8 +21,8 @@ var HoloScriptDebugger = class {
21
21
  callStack: [],
22
22
  breakpoints: []
23
23
  };
24
- this.runtime = runtime || new chunk6DO5IZ5N_cjs.HoloScriptRuntime();
25
- this.parser = new chunkJIYN45TV_cjs.HoloScriptCodeParser();
24
+ this.runtime = runtime || new chunkEDPYCLRC_cjs.HoloScriptRuntime();
25
+ this.parser = new chunkGVFJ6T4S_cjs.HoloScriptCodeParser();
26
26
  }
27
27
  /**
28
28
  * Load source code for debugging
@@ -420,5 +420,5 @@ function createDebugger(runtime) {
420
420
 
421
421
  exports.HoloScriptDebugger = HoloScriptDebugger;
422
422
  exports.createDebugger = createDebugger;
423
- //# sourceMappingURL=chunk-UWXE23BT.cjs.map
424
- //# sourceMappingURL=chunk-UWXE23BT.cjs.map
423
+ //# sourceMappingURL=chunk-AWB7QYY6.cjs.map
424
+ //# sourceMappingURL=chunk-AWB7QYY6.cjs.map
@@ -127,29 +127,11 @@ function validateBotanicalLotusConfig(input = {}) {
127
127
  material.subsurface_radius_rgb.forEach(
128
128
  (value, index) => addRangeError(errors, `material.subsurface_radius_rgb[${index}]`, value, 0, 2)
129
129
  );
130
- addRangeError(
131
- errors,
132
- "material.petal_translucency_base",
133
- material.petal_translucency_base,
134
- 0,
135
- 1
136
- );
137
- addRangeError(
138
- errors,
139
- "material.petal_translucency_edge",
140
- material.petal_translucency_edge,
141
- 0,
142
- 1
143
- );
130
+ addRangeError(errors, "material.petal_translucency_base", material.petal_translucency_base, 0, 1);
131
+ addRangeError(errors, "material.petal_translucency_edge", material.petal_translucency_edge, 0, 1);
144
132
  addRangeError(errors, "material.roughness", material.roughness, 0, 1);
145
133
  addRangeError(errors, "material.ior", material.ior, 1, 2.5);
146
- addRangeError(
147
- errors,
148
- "material.vein_normal_intensity",
149
- material.vein_normal_intensity,
150
- 0,
151
- 0.25
152
- );
134
+ addRangeError(errors, "material.vein_normal_intensity", material.vein_normal_intensity, 0, 0.25);
153
135
  addRangeError(errors, "material.edge_curl_intensity", material.edge_curl_intensity, 0, 1);
154
136
  addRangeError(errors, "material.gravity_sag_outer", material.gravity_sag_outer, 0, 1);
155
137
  addRangeError(errors, "material.sheen", material.sheen, 0, 1);
@@ -169,13 +151,7 @@ function validateBotanicalLotusConfig(input = {}) {
169
151
  errors.push(`geometry.petal_rings[${index}].count must be a positive integer`);
170
152
  }
171
153
  addRangeError(errors, `geometry.petal_rings[${index}].cup`, ring.cup, 0, 1);
172
- addRangeError(
173
- errors,
174
- `geometry.petal_rings[${index}].gravity_sag`,
175
- ring.gravity_sag,
176
- 0,
177
- 1
178
- );
154
+ addRangeError(errors, `geometry.petal_rings[${index}].gravity_sag`, ring.gravity_sag, 0, 1);
179
155
  });
180
156
  if (!Number.isInteger(geometry.stamen_filament_count) || geometry.stamen_filament_count <= 0) {
181
157
  errors.push("geometry.stamen_filament_count must be a positive integer");
@@ -526,9 +502,10 @@ function lotusSmoothstep(edge0, edge1, x) {
526
502
  return t * t * (3 - 2 * t);
527
503
  }
528
504
  function lotusPetalHalfWidthFraction(v) {
529
- const broad = Math.sin(Math.PI * Math.pow(v, 0.8));
530
- const tipPoint = 1 - lotusSmoothstep(0.82, 1, v) * 0.55;
531
- return Math.max(0, broad * tipPoint);
505
+ const broad = Math.sin(Math.PI * Math.pow(v, 1.3));
506
+ const baseFill = 0.25 + 0.75 * lotusSmoothstep(0, 0.18, v);
507
+ const tipRound = 1 - lotusSmoothstep(0.9, 1, v) * 0.3;
508
+ return Math.max(0, broad * baseFill * tipRound);
532
509
  }
533
510
  function buildLotusPetalGeometryData(params = {}) {
534
511
  const P = { ...DEFAULT_LOTUS_PETAL_GEOMETRY_PARAMS, ...params };
@@ -615,7 +592,69 @@ function buildLotusPetalGeometryData(params = {}) {
615
592
  k += 6;
616
593
  }
617
594
  }
618
- return { positions, normals, petalUv, veinPhase, indices, vertexCount };
595
+ const thickness = P.thickness ?? 0;
596
+ if (thickness <= 0) {
597
+ return { positions, normals, petalUv, veinPhase, indices, vertexCount };
598
+ }
599
+ const N = vertexCount;
600
+ const total = N * 2;
601
+ const sPos = new Float32Array(total * 3);
602
+ const sNorm = new Float32Array(total * 3);
603
+ const sUv = new Float32Array(total * 2);
604
+ const sVein = new Float32Array(total);
605
+ sPos.set(positions, 0);
606
+ sNorm.set(normals, 0);
607
+ sUv.set(petalUv, 0);
608
+ sVein.set(veinPhase, 0);
609
+ for (let idx = 0; idx < N; idx += 1) {
610
+ const nx = normals[idx * 3];
611
+ const ny = normals[idx * 3 + 1];
612
+ const nz = normals[idx * 3 + 2];
613
+ sPos[(N + idx) * 3] = positions[idx * 3] - nx * thickness;
614
+ sPos[(N + idx) * 3 + 1] = positions[idx * 3 + 1] - ny * thickness;
615
+ sPos[(N + idx) * 3 + 2] = positions[idx * 3 + 2] - nz * thickness;
616
+ sNorm[(N + idx) * 3] = -nx;
617
+ sNorm[(N + idx) * 3 + 1] = -ny;
618
+ sNorm[(N + idx) * 3 + 2] = -nz;
619
+ sUv[(N + idx) * 2] = petalUv[idx * 2];
620
+ sUv[(N + idx) * 2 + 1] = petalUv[idx * 2 + 1];
621
+ sVein[N + idx] = veinPhase[idx];
622
+ }
623
+ const boundary = [];
624
+ for (let i = 0; i < nu; i += 1) boundary.push(i);
625
+ for (let j = 0; j < nv; j += 1) boundary.push(j * cols + nu);
626
+ for (let i = nu; i > 0; i -= 1) boundary.push(nv * cols + i);
627
+ for (let j = nv; j > 0; j -= 1) boundary.push(j * cols);
628
+ const frontTris = indices.length;
629
+ const sIdx = new Uint32Array(frontTris * 2 + boundary.length * 6);
630
+ sIdx.set(indices, 0);
631
+ let bk = frontTris;
632
+ for (let tIdx = 0; tIdx < frontTris; tIdx += 3) {
633
+ sIdx[bk] = indices[tIdx] + N;
634
+ sIdx[bk + 1] = indices[tIdx + 2] + N;
635
+ sIdx[bk + 2] = indices[tIdx + 1] + N;
636
+ bk += 3;
637
+ }
638
+ let ek = frontTris * 2;
639
+ for (let e = 0; e < boundary.length; e += 1) {
640
+ const a = boundary[e];
641
+ const b = boundary[(e + 1) % boundary.length];
642
+ sIdx[ek] = a;
643
+ sIdx[ek + 1] = b;
644
+ sIdx[ek + 2] = b + N;
645
+ sIdx[ek + 3] = a;
646
+ sIdx[ek + 4] = b + N;
647
+ sIdx[ek + 5] = a + N;
648
+ ek += 6;
649
+ }
650
+ return {
651
+ positions: sPos,
652
+ normals: sNorm,
653
+ petalUv: sUv,
654
+ veinPhase: sVein,
655
+ indices: sIdx,
656
+ vertexCount: total
657
+ };
619
658
  }
620
659
  function lotusPetalGeometryParamsFromProfile(profile, options = {}) {
621
660
  const rings = profile.petal_rings;
@@ -652,6 +691,25 @@ function buildLotusFlowerPlacements(profile = createBotanicalLotusRenderProfile(
652
691
  });
653
692
  return placements;
654
693
  }
694
+ function buildLotusSceneScaffold() {
695
+ return {
696
+ waterSize: 60,
697
+ stem: { height: 2.4, topRadius: 0.045, bottomRadius: 0.06 },
698
+ receptacle: { radius: 0.42, squashY: 0.72, lift: 0.04 },
699
+ calyx: { radius: 0.16, height: 0.28, drop: 0.18 },
700
+ pads: [
701
+ { pos: [2.4, 0.02, 1.1], radius: 1.2, rotation: 0.3, dark: false },
702
+ { pos: [-2.7, 0.02, -0.6], radius: 1.5, rotation: 1.2, dark: true },
703
+ { pos: [0.6, 0.02, -3], radius: 1, rotation: 2.5, dark: false },
704
+ { pos: [-1.4, 0.02, 2.8], radius: 1.1, rotation: 3.6, dark: true }
705
+ ],
706
+ leaves: [
707
+ { pos: [3.7, 0, 1.5], height: 1.5, radius: 1.4, tilt: 0.22, rotation: 0.4, dark: false },
708
+ { pos: [-4, 0, -1.3], height: 1.2, radius: 1.6, tilt: 0.3, rotation: 1.6, dark: true },
709
+ { pos: [1.4, 0, -3.7], height: 1, radius: 1.2, tilt: 0.18, rotation: 2.7, dark: false }
710
+ ]
711
+ };
712
+ }
655
713
  function lotusMulberry32(seed) {
656
714
  let a = seed >>> 0;
657
715
  return () => {
@@ -719,7 +777,14 @@ function simulateLotusMorphogenesis(params) {
719
777
  primordia,
720
778
  emergentDivergenceDeg: meanDeg,
721
779
  divergenceSpreadDeg: spreadDeg,
722
- resolvedParams: { count, seed, apexRadius, radialVelocity, inhibitionExponent: s, angularSamples: samples }
780
+ resolvedParams: {
781
+ count,
782
+ seed,
783
+ apexRadius,
784
+ radialVelocity,
785
+ inhibitionExponent: s,
786
+ angularSamples: samples
787
+ }
723
788
  };
724
789
  }
725
790
  function lotusInhibitionAt(theta, primordia, range, apexRadius) {
@@ -772,8 +837,18 @@ function stepLotusMeristem(m) {
772
837
  }
773
838
  let off = bestK;
774
839
  if (bestK > 0 && bestK < m.samples) {
775
- const y0 = lotusInhibitionAt(m.last + m.wMin + m.step * (bestK - 1), m.primordia, m.range, m.apexRadius);
776
- const y2 = lotusInhibitionAt(m.last + m.wMin + m.step * (bestK + 1), m.primordia, m.range, m.apexRadius);
840
+ const y0 = lotusInhibitionAt(
841
+ m.last + m.wMin + m.step * (bestK - 1),
842
+ m.primordia,
843
+ m.range,
844
+ m.apexRadius
845
+ );
846
+ const y2 = lotusInhibitionAt(
847
+ m.last + m.wMin + m.step * (bestK + 1),
848
+ m.primordia,
849
+ m.range,
850
+ m.apexRadius
851
+ );
777
852
  const den = y0 - 2 * bestI + y2;
778
853
  if (Math.abs(den) > 1e-12) off = bestK + 0.5 * (y0 - y2) / den;
779
854
  }
@@ -1131,7 +1206,11 @@ function stepLotusPetalTurgor(state, dt, developmentalTime) {
1131
1206
  const rate = state.turgorStiffness * state.turgor * dt;
1132
1207
  for (let i = 0; i < state.segments; i += 1) {
1133
1208
  const s = (i + 0.5) / state.segments;
1134
- const maturity = lotusSmoothstep01(0, 1, (t - state.matureStart - s * state.acropetalDelay) / state.matureSpan);
1209
+ const maturity = lotusSmoothstep01(
1210
+ 0,
1211
+ 1,
1212
+ (t - state.matureStart - s * state.acropetalDelay) / state.matureSpan
1213
+ );
1135
1214
  const kappaRest = state.budCurl * (1 - maturity) + state.openCurl * maturity;
1136
1215
  state.kappaActual[i] += rate * (kappaRest - state.kappaActual[i]);
1137
1216
  }
@@ -1306,7 +1385,11 @@ var init_BotanicalLotusTrait = __esm({
1306
1385
  reference_anchors: updatedAnchors
1307
1386
  });
1308
1387
  state.config = updatedConfig;
1309
- state.profile = createBotanicalLotusRenderProfile(updatedConfig, state.placement, state.lighting);
1388
+ state.profile = createBotanicalLotusRenderProfile(
1389
+ updatedConfig,
1390
+ state.placement,
1391
+ state.lighting
1392
+ );
1310
1393
  context.emit?.("botanical_lotus_reference_updated", {
1311
1394
  node,
1312
1395
  anchorId,
@@ -1327,7 +1410,11 @@ var init_BotanicalLotusTrait = __esm({
1327
1410
  surface_normal: surfaceNormal,
1328
1411
  world_position: worldPosition
1329
1412
  };
1330
- state.profile = createBotanicalLotusRenderProfile(state.config, state.placement, state.lighting);
1413
+ state.profile = createBotanicalLotusRenderProfile(
1414
+ state.config,
1415
+ state.placement,
1416
+ state.lighting
1417
+ );
1331
1418
  context.emit?.("botanical_lotus_surface_bound", {
1332
1419
  node,
1333
1420
  surfaceAnchorId,
@@ -1349,7 +1436,11 @@ var init_BotanicalLotusTrait = __esm({
1349
1436
  color_temperature_k: colorTemperatureK,
1350
1437
  dominant_direction: dominantDirection
1351
1438
  };
1352
- state.profile = createBotanicalLotusRenderProfile(state.config, state.placement, state.lighting);
1439
+ state.profile = createBotanicalLotusRenderProfile(
1440
+ state.config,
1441
+ state.placement,
1442
+ state.lighting
1443
+ );
1353
1444
  context.emit?.("botanical_lotus_lighting_updated", {
1354
1445
  node,
1355
1446
  referenceId,
@@ -1497,9 +1588,21 @@ totalEmissiveRadiance += lotusScatter * (0.28 + uLotusBloom * 0.72);`
1497
1588
  { stage: "vertex", include: "begin_vertex", code: LOTUS_PETAL_SHADER_CHUNKS.vertexBend },
1498
1589
  { stage: "vertex", include: "worldpos_vertex", code: LOTUS_PETAL_SHADER_CHUNKS.vertexWorld },
1499
1590
  { stage: "fragment", include: "common", code: LOTUS_PETAL_SHADER_CHUNKS.fragmentHeader },
1500
- { stage: "fragment", include: "normal_fragment_maps", code: LOTUS_PETAL_SHADER_CHUNKS.fragmentNormalInjection },
1501
- { stage: "fragment", include: "color_fragment", code: LOTUS_PETAL_SHADER_CHUNKS.fragmentColorInjection },
1502
- { stage: "fragment", include: "emissivemap_fragment", code: LOTUS_PETAL_SHADER_CHUNKS.fragmentEmissiveInjection }
1591
+ {
1592
+ stage: "fragment",
1593
+ include: "normal_fragment_maps",
1594
+ code: LOTUS_PETAL_SHADER_CHUNKS.fragmentNormalInjection
1595
+ },
1596
+ {
1597
+ stage: "fragment",
1598
+ include: "color_fragment",
1599
+ code: LOTUS_PETAL_SHADER_CHUNKS.fragmentColorInjection
1600
+ },
1601
+ {
1602
+ stage: "fragment",
1603
+ include: "emissivemap_fragment",
1604
+ code: LOTUS_PETAL_SHADER_CHUNKS.fragmentEmissiveInjection
1605
+ }
1503
1606
  ];
1504
1607
  LOTUS_PETAL_DEFAULT_DYNAMIC = {
1505
1608
  devTime: 1,
@@ -1516,17 +1619,20 @@ totalEmissiveRadiance += lotusScatter * (0.28 + uLotusBloom * 0.72);`
1516
1619
  };
1517
1620
  DEFAULT_LOTUS_PETAL_GEOMETRY_PARAMS = {
1518
1621
  length: 1.7,
1519
- width: 1.1,
1520
- cup: 0.34,
1622
+ // Broader (width/length 0.65 → 0.85) + a deeper cup so each petal reads as a wide
1623
+ // cupped tear-drop, not a thin sliver; the obovate silhouette does the rest.
1624
+ width: 1.45,
1625
+ cup: 0.4,
1521
1626
  ridge: 0.12,
1522
1627
  gravitySag: 0.18,
1523
1628
  segmentsU: 24,
1524
1629
  segmentsV: 40,
1525
- veinPhase: 0
1630
+ veinPhase: 0,
1631
+ thickness: 0.012
1526
1632
  };
1527
1633
  }
1528
1634
  });
1529
1635
 
1530
- export { DEFAULT_BOTANICAL_LOTUS_CONFIG, DEFAULT_LOTUS_PETAL_GEOMETRY_PARAMS, LOTUS_GENESIS_SEED_PLACEHOLDER, LOTUS_GOLDEN_ANGLE_DEG, LOTUS_GROWTH_SECONDS, LOTUS_OUTER_PETAL_COLOR, LOTUS_PETAL_CHUNK_ENTRIES, LOTUS_PETAL_SHADER_CHUNKS, LOTUS_PETAL_UNIFORM_BINDINGS, LOTUS_RING_SCALING, assertBotanicalLotusConfig, botanicalLotusHandler, buildLotusFlowerPlacements, buildLotusPetalGeometryData, buildLotusPetalMaterialSpec, buildLotusSceneFromComposition, createBotanicalLotusRenderProfile, createLotusMeristem, createLotusMorphogen, createLotusMorphogen2D, createLotusPetalTurgor, createLotusPond, deriveBotanicalLotusAnchorStatus, deriveLotusBloomFromGlow, disturbLotusPond, generateBotanicalNormalMap, generateBotanicalRoughnessMap, getBotanicalLotusPetalCount, init_BotanicalLotusTrait, lotusMorphogen2DPeaks, lotusMorphogen2DSampleAt, lotusMorphogenPeaks, lotusPetalGeometryParamsFromProfile, lotusPetalRenderColor, lotusPetalTurgorOpenProgress, lotusPetalTurgorTipDeg, lotusPondSurface, normalizeBotanicalLotusConfig, simulateLotusMorphogenesis, simulateLotusPetalGrowth, simulateLotusPhyllotaxis, stepLotusMeristem, stepLotusMorphogen, stepLotusMorphogen2D, stepLotusPetalTurgor, stepLotusPond, validateBotanicalLotusConfig };
1531
- //# sourceMappingURL=chunk-UO4WPSGQ.js.map
1532
- //# sourceMappingURL=chunk-UO4WPSGQ.js.map
1636
+ export { DEFAULT_BOTANICAL_LOTUS_CONFIG, DEFAULT_LOTUS_PETAL_GEOMETRY_PARAMS, LOTUS_GENESIS_SEED_PLACEHOLDER, LOTUS_GOLDEN_ANGLE_DEG, LOTUS_GROWTH_SECONDS, LOTUS_OUTER_PETAL_COLOR, LOTUS_PETAL_CHUNK_ENTRIES, LOTUS_PETAL_SHADER_CHUNKS, LOTUS_PETAL_UNIFORM_BINDINGS, LOTUS_RING_SCALING, assertBotanicalLotusConfig, botanicalLotusHandler, buildLotusFlowerPlacements, buildLotusPetalGeometryData, buildLotusPetalMaterialSpec, buildLotusSceneFromComposition, buildLotusSceneScaffold, createBotanicalLotusRenderProfile, createLotusMeristem, createLotusMorphogen, createLotusMorphogen2D, createLotusPetalTurgor, createLotusPond, deriveBotanicalLotusAnchorStatus, deriveLotusBloomFromGlow, disturbLotusPond, generateBotanicalNormalMap, generateBotanicalRoughnessMap, getBotanicalLotusPetalCount, init_BotanicalLotusTrait, lotusMorphogen2DPeaks, lotusMorphogen2DSampleAt, lotusMorphogenPeaks, lotusPetalGeometryParamsFromProfile, lotusPetalRenderColor, lotusPetalTurgorOpenProgress, lotusPetalTurgorTipDeg, lotusPondSurface, normalizeBotanicalLotusConfig, simulateLotusMorphogenesis, simulateLotusPetalGrowth, simulateLotusPhyllotaxis, stepLotusMeristem, stepLotusMorphogen, stepLotusMorphogen2D, stepLotusPetalTurgor, stepLotusPond, validateBotanicalLotusConfig };
1637
+ //# sourceMappingURL=chunk-B4EKV6HQ.js.map
1638
+ //# sourceMappingURL=chunk-B4EKV6HQ.js.map
@@ -1,6 +1,6 @@
1
- import { init_PlatformConditionalCompilerMixin, filterCompositionForPlatform } from './chunk-GZG4KA4E.js';
2
- import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileWeatherBlock, compileAudioSourceBlock, audioSourceToVisionOS, compilePostProcessingBlock, compileParticleBlock, particlesToVisionOS, compilePhysicsBlock, physicsToVisionOS, compileMaterialBlock, materialToVisionOS } from './chunk-BOVPWH4H.js';
3
- import { init_CompilerBase, CompilerBase } from './chunk-QPSKHBJP.js';
1
+ import { init_PlatformConditionalCompilerMixin, filterCompositionForPlatform } from './chunk-GW3LKD5C.js';
2
+ import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileWeatherBlock, compileAudioSourceBlock, audioSourceToVisionOS, compilePostProcessingBlock, compileParticleBlock, particlesToVisionOS, compilePhysicsBlock, physicsToVisionOS, compileMaterialBlock, materialToVisionOS } from './chunk-ZA34AN3R.js';
3
+ import { init_CompilerBase, CompilerBase } from './chunk-C7ZBSV2Q.js';
4
4
  import { __esm, __export } from './chunk-OL46QLBJ.js';
5
5
  import { ANSCapabilityPath } from '@holoscript/core-types/ans';
6
6
 
@@ -2422,5 +2422,5 @@ ${layers}`;
2422
2422
  });
2423
2423
 
2424
2424
  export { VisionOSCompiler, VisionOSCompiler_exports, generateTraitCode, getTraitMapping, init_VisionOSCompiler, init_VisionOSTraitMap, listAllTraits };
2425
- //# sourceMappingURL=chunk-2X7NGX3M.js.map
2426
- //# sourceMappingURL=chunk-2X7NGX3M.js.map
2425
+ //# sourceMappingURL=chunk-BRNUPDHJ.js.map
2426
+ //# sourceMappingURL=chunk-BRNUPDHJ.js.map