@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.
- package/README.md +4 -4
- package/bin/holoscript.cjs +3 -0
- package/dist/GLTFPipeline-N6B6PJ6G.cjs +38 -0
- package/dist/GLTFPipeline-P3WMNYCN.js +17 -0
- package/dist/HoloScriptPlusParser-7FBIFUFC.js +693 -0
- package/dist/HoloScriptPlusParser-A2W7OCN2.cjs +698 -0
- package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
- package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
- package/dist/HoloScriptRuntime-CBYJX3LZ.js +10 -0
- package/dist/HoloScriptRuntime-VJ374RER.cjs +19 -0
- package/dist/USDZExporter-3FWJ25JI.cjs +1037 -0
- package/dist/USDZExporter-D2HQLQYK.js +1035 -0
- package/dist/agents/index.cjs +19 -0
- package/dist/agents/index.d.ts +100 -0
- package/dist/agents/index.js +17 -0
- package/dist/chunk-2BSMSUCE.js +1941 -0
- package/dist/chunk-2IWC4FP7.cjs +1189 -0
- package/dist/chunk-2M2DPHKB.js +762 -0
- package/dist/chunk-2X7NGX3M.js +2426 -0
- package/dist/chunk-2YSNA2F2.cjs +1274 -0
- package/dist/chunk-3FOKASKO.cjs +348 -0
- package/dist/chunk-3WZEJHUQ.cjs +116 -0
- package/dist/chunk-4C57PR42.js +468 -0
- package/dist/chunk-4GU5GCIY.js +1384 -0
- package/dist/chunk-4N4SXXWF.js +769 -0
- package/dist/chunk-4PDEPEQW.cjs +41 -0
- package/dist/chunk-4R6SBXDB.js +45 -0
- package/dist/chunk-4SDKXQ4C.js +811 -0
- package/dist/chunk-4V2E7U7Q.cjs +2015 -0
- package/dist/chunk-5FSKKMR7.cjs +2092 -0
- package/dist/chunk-5GLCTO44.js +161 -0
- package/dist/chunk-5H2G27PK.cjs +627 -0
- package/dist/chunk-5JEU52DW.js +382 -0
- package/dist/chunk-5NWINHR5.cjs +689 -0
- package/dist/chunk-5S7RKFGR.cjs +446 -0
- package/dist/chunk-5WUNN6ZN.cjs +428 -0
- package/dist/chunk-6CTRH7HT.cjs +1985 -0
- package/dist/chunk-6EX3I5P4.cjs +130 -0
- package/dist/chunk-6Q7RC2MK.cjs +1418 -0
- package/dist/chunk-7H33U5SM.cjs +413 -0
- package/dist/chunk-7M3PNU2M.cjs +672 -0
- package/dist/chunk-7T25IEZ2.js +449 -0
- package/dist/chunk-7V4JI5TB.cjs +6947 -0
- package/dist/chunk-A6KINLZJ.js +236 -0
- package/dist/chunk-ADADVMXY.js +404 -0
- package/dist/chunk-AIA52I7T.cjs +543 -0
- package/dist/chunk-ALC6K7GL.cjs +4402 -0
- package/dist/chunk-ANXZFVY2.js +113 -0
- package/dist/chunk-AOVGZ25K.cjs +56583 -0
- package/dist/chunk-AVJHHUC5.cjs +718 -0
- package/dist/chunk-BGY3SDG3.js +4396 -0
- package/dist/chunk-BOVPWH4H.js +3857 -0
- package/dist/chunk-BRQJKJGT.cjs +20 -0
- package/dist/chunk-C37BHB7N.cjs +636 -0
- package/dist/chunk-CBJY23VL.js +126 -0
- package/dist/chunk-CCATWPXM.js +778 -0
- package/dist/chunk-CIWWXYHZ.cjs +50 -0
- package/dist/chunk-CMT5NMMS.js +669 -0
- package/dist/chunk-CR4FMIWL.cjs +1049 -0
- package/dist/chunk-CR7XRXRN.cjs +639 -0
- package/dist/chunk-CSD27UNQ.js +2176 -0
- package/dist/chunk-D3STJ56J.js +714 -0
- package/dist/chunk-DAJXW4KX.js +725 -0
- package/dist/chunk-DHO2YRIM.js +756 -0
- package/dist/chunk-DTGBOSEM.cjs +319 -0
- package/dist/chunk-E6XXE66V.js +2252 -0
- package/dist/chunk-E7JP3BS3.cjs +61 -0
- package/dist/chunk-EKBKLK7P.js +1169 -0
- package/dist/chunk-EKYL4PE3.cjs +404 -0
- package/dist/chunk-EXKSFGSX.cjs +274 -0
- package/dist/chunk-EXUP2BUM.cjs +1173 -0
- package/dist/chunk-FDSGHPAK.js +130 -0
- package/dist/chunk-FEWUHQNM.cjs +144 -0
- package/dist/chunk-FFAOS5HQ.js +70 -0
- package/dist/chunk-FGGJQRLZ.js +270 -0
- package/dist/chunk-FHP6LXJS.js +415 -0
- package/dist/chunk-FJPADH77.cjs +666 -0
- package/dist/chunk-FL33V6U7.js +421 -0
- package/dist/chunk-FYSPZT4V.cjs +169 -0
- package/dist/chunk-GIOYPNTH.js +5575 -0
- package/dist/chunk-GJNCFRJU.cjs +125 -0
- package/dist/chunk-GMP623FG.cjs +1508 -0
- package/dist/chunk-GQHQOPXZ.cjs +5580 -0
- package/dist/chunk-GTU2Z2WW.cjs +262 -0
- package/dist/chunk-GYZE55MO.js +2007 -0
- package/dist/chunk-GZG4KA4E.js +529 -0
- package/dist/chunk-H652NHX5.js +600 -0
- package/dist/chunk-HCCQLAA4.cjs +74 -0
- package/dist/chunk-HKEXJUWS.cjs +4007 -0
- package/dist/chunk-HNDK4IQU.cjs +5737 -0
- package/dist/chunk-HR2OSYVQ.js +56165 -0
- package/dist/chunk-HYNTS5CP.js +422 -0
- package/dist/chunk-I6XZ5DZF.cjs +488 -0
- package/dist/chunk-ILRBGFVD.cjs +72 -0
- package/dist/chunk-IUDGEUDO.cjs +1409 -0
- package/dist/chunk-IUTY5WQ2.cjs +424 -0
- package/dist/chunk-IVY74O6C.js +247 -0
- package/dist/chunk-IWC5DM2M.cjs +611 -0
- package/dist/chunk-J32ZJZJH.js +554 -0
- package/dist/chunk-J52VSAQ7.js +6884 -0
- package/dist/chunk-J6M4FPK5.js +421 -0
- package/dist/chunk-J7XZV333.js +844 -0
- package/dist/chunk-JBNDTXXV.cjs +2433 -0
- package/dist/chunk-JC5YBPSF.cjs +984 -0
- package/dist/chunk-JD7CIZ33.js +1949 -0
- package/dist/chunk-JIBL5LRK.js +4287 -0
- package/dist/chunk-JIYN45TV.cjs +2525 -0
- package/dist/chunk-K574J76X.cjs +457 -0
- package/dist/chunk-KHDZJE5D.cjs +2196 -0
- package/dist/chunk-KKFZ3B6J.cjs +557 -0
- package/dist/chunk-KKP7JKN4.cjs +6002 -0
- package/dist/chunk-KPJL34Y7.cjs +186 -0
- package/dist/chunk-KQCN6AKJ.cjs +3042 -0
- package/dist/chunk-L5LKKENW.cjs +424 -0
- package/dist/chunk-LHAXPADA.js +882 -0
- package/dist/chunk-LM2VU56C.cjs +37 -0
- package/dist/chunk-M56JSP4A.js +400 -0
- package/dist/chunk-MBOOR7X4.js +18 -0
- package/dist/chunk-MQWAT42R.cjs +4310 -0
- package/dist/chunk-MXFUTKCO.js +56 -0
- package/dist/chunk-MYY4PMWX.cjs +264 -0
- package/dist/chunk-N75IH2HY.js +258 -0
- package/dist/chunk-NCWCUZNS.cjs +72 -0
- package/dist/chunk-NG77ATEW.cjs +778 -0
- package/dist/chunk-NW5G5FBQ.js +215 -0
- package/dist/chunk-OBIYPYYS.cjs +1993 -0
- package/dist/chunk-OH2FAIVU.js +608 -0
- package/dist/chunk-OIQYIIO3.cjs +473 -0
- package/dist/chunk-OL46QLBJ.js +61 -0
- package/dist/chunk-OMXII44L.js +5386 -0
- package/dist/chunk-OSYNRVOV.cjs +243 -0
- package/dist/chunk-PGANYCAG.cjs +220 -0
- package/dist/chunk-PHENW4MQ.js +65 -0
- package/dist/chunk-PY37LNDP.js +686 -0
- package/dist/chunk-Q56TT7IL.js +483 -0
- package/dist/chunk-QD32ADK6.js +1046 -0
- package/dist/chunk-QPOQ7VPI.js +1491 -0
- package/dist/chunk-QPSKHBJP.js +5963 -0
- package/dist/chunk-QXH7QDSZ.js +1989 -0
- package/dist/chunk-R24NNAEG.js +1399 -0
- package/dist/chunk-R75BSDH7.cjs +50 -0
- package/dist/chunk-RARB3MBR.js +207 -0
- package/dist/chunk-ROHLEP2W.cjs +847 -0
- package/dist/chunk-S3MDHNKB.cjs +490 -0
- package/dist/chunk-S6YWHCKV.cjs +410 -0
- package/dist/chunk-SIEXCILW.js +229 -0
- package/dist/chunk-SLU6UPJI.cjs +410 -0
- package/dist/chunk-SMIWS6DE.cjs +212 -0
- package/dist/chunk-T5J7ZKP3.cjs +4885 -0
- package/dist/chunk-TDCNJHWO.js +341 -0
- package/dist/chunk-TG7O4WBC.js +406 -0
- package/dist/chunk-THCK6ECW.js +2085 -0
- package/dist/chunk-TJHVSBP2.js +439 -0
- package/dist/chunk-TVHSPJ4N.cjs +606 -0
- package/dist/chunk-TWUXUCEW.cjs +781 -0
- package/dist/chunk-U44IKGG7.cjs +5390 -0
- package/dist/chunk-UFZZ7TSN.cjs +886 -0
- package/dist/chunk-UJXISJBN.js +487 -0
- package/dist/chunk-UOIGFQXC.cjs +9750 -0
- package/dist/chunk-URG2SJLK.js +2521 -0
- package/dist/chunk-UWJHCOH2.js +623 -0
- package/dist/chunk-V6MKC2FZ.js +979 -0
- package/dist/chunk-VJ3L7CHT.cjs +169 -0
- package/dist/chunk-VMLKSV26.js +1216 -0
- package/dist/chunk-VVKVQZI6.js +55 -0
- package/dist/chunk-W6RW64BB.cjs +1219 -0
- package/dist/chunk-WKX5AMOY.js +309 -0
- package/dist/chunk-WNNE3PO3.js +34 -0
- package/dist/chunk-WRKUDAZJ.js +3038 -0
- package/dist/chunk-WRLUBRKS.cjs +1943 -0
- package/dist/chunk-WRNEH5MO.js +3169 -0
- package/dist/chunk-WRWEX5ZF.js +658 -0
- package/dist/chunk-X3GJPRVK.cjs +3246 -0
- package/dist/chunk-X3UVCWNL.cjs +2257 -0
- package/dist/chunk-XB274MW5.cjs +814 -0
- package/dist/chunk-XHIV6326.cjs +793 -0
- package/dist/chunk-XIVIE43A.cjs +729 -0
- package/dist/chunk-XJAN7CZG.cjs +432 -0
- package/dist/chunk-XKTPFXGA.js +164 -0
- package/dist/chunk-XL6INWKT.js +121 -0
- package/dist/chunk-XSFNHP2E.js +632 -0
- package/dist/chunk-XT6JY5W5.js +9684 -0
- package/dist/chunk-XUILI4KB.cjs +430 -0
- package/dist/chunk-YF2I3MV3.js +46 -0
- package/dist/chunk-YIMN575O.js +4847 -0
- package/dist/chunk-YIVFJNYV.js +176 -0
- package/dist/chunk-YKGPCZEE.cjs +237 -0
- package/dist/chunk-YN2YWTXW.js +5731 -0
- package/dist/chunk-YN6V7R3L.cjs +327 -0
- package/dist/chunk-YQELFNJV.js +39 -0
- package/dist/chunk-YVD3CSO3.js +1183 -0
- package/dist/chunk-YVOAF4ML.js +623 -0
- package/dist/chunk-YWOBW2PV.cjs +759 -0
- package/dist/chunk-YYXH45E2.js +426 -0
- package/dist/chunk-ZDSYWBIE.cjs +69 -0
- package/dist/chunk-ZU7NIRT6.js +325 -0
- package/dist/chunk-ZZ7RO2UQ.js +1243 -0
- package/dist/cli/holoscript-runner.cjs +2255 -0
- package/dist/cli/holoscript-runner.js +2230 -0
- package/dist/codebase/index.cjs +336 -0
- package/dist/codebase/index.js +331 -0
- package/dist/compiler/agent-inference.cjs +31 -0
- package/dist/compiler/agent-inference.js +8 -0
- package/dist/compiler/android-xr.cjs +24 -0
- package/dist/compiler/android-xr.js +14 -0
- package/dist/compiler/android.cjs +24 -0
- package/dist/compiler/android.js +14 -0
- package/dist/compiler/ar.cjs +23 -0
- package/dist/compiler/ar.js +11 -0
- package/dist/compiler/babylon.cjs +21 -0
- package/dist/compiler/babylon.js +15 -0
- package/dist/compiler/business-quest.cjs +43 -0
- package/dist/compiler/business-quest.js +4 -0
- package/dist/compiler/coco.cjs +27 -0
- package/dist/compiler/coco.js +4 -0
- package/dist/compiler/context.cjs +25 -0
- package/dist/compiler/context.d.ts +28 -0
- package/dist/compiler/context.js +8 -0
- package/dist/compiler/domain-block-utils.cjs +609 -0
- package/dist/compiler/domain-block-utils.js +11 -0
- package/dist/compiler/dtdl.cjs +27 -0
- package/dist/compiler/dtdl.js +11 -0
- package/dist/compiler/gltf-pipeline.cjs +39 -0
- package/dist/compiler/gltf-pipeline.js +4 -0
- package/dist/compiler/godot.cjs +18 -0
- package/dist/compiler/godot.js +12 -0
- package/dist/compiler/incremental.cjs +34 -0
- package/dist/compiler/incremental.js +9 -0
- package/dist/compiler/index.cjs +5408 -0
- package/dist/compiler/index.d.ts +334 -21
- package/dist/compiler/index.js +5069 -0
- package/dist/compiler/ios.cjs +23 -0
- package/dist/compiler/ios.js +13 -0
- package/dist/compiler/llm-provider-capabilities.cjs +25 -0
- package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
- package/dist/compiler/llm-provider-capabilities.js +8 -0
- package/dist/compiler/multi-layer.cjs +24 -0
- package/dist/compiler/multi-layer.js +15 -0
- package/dist/compiler/nodetoy.cjs +23 -0
- package/dist/compiler/nodetoy.d.ts +69 -0
- package/dist/compiler/nodetoy.js +4 -0
- package/dist/compiler/openxr.cjs +19 -0
- package/dist/compiler/openxr.js +13 -0
- package/dist/compiler/playcanvas.cjs +19 -0
- package/dist/compiler/playcanvas.js +13 -0
- package/dist/compiler/r3f.cjs +39 -0
- package/dist/compiler/r3f.d.ts +22 -0
- package/dist/compiler/r3f.js +17 -0
- package/dist/compiler/remotion.cjs +23 -0
- package/dist/compiler/remotion.js +4 -0
- package/dist/compiler/reproducibility.cjs +39 -0
- package/dist/compiler/reproducibility.js +4 -0
- package/dist/compiler/sdf.cjs +24 -0
- package/dist/compiler/sdf.js +12 -0
- package/dist/compiler/semantic-scene.cjs +31 -0
- package/dist/compiler/semantic-scene.js +4 -0
- package/dist/compiler/state.cjs +21 -0
- package/dist/compiler/state.js +11 -0
- package/dist/compiler/trait-composition.cjs +30 -0
- package/dist/compiler/trait-composition.js +9 -0
- package/dist/compiler/unity.cjs +19 -0
- package/dist/compiler/unity.js +13 -0
- package/dist/compiler/unreal.cjs +23 -0
- package/dist/compiler/unreal.js +13 -0
- package/dist/compiler/urdf.cjs +52 -0
- package/dist/compiler/urdf.js +12 -0
- package/dist/compiler/usd-physics.cjs +26 -0
- package/dist/compiler/usd-physics.js +9 -0
- package/dist/compiler/visionos.cjs +19 -0
- package/dist/compiler/visionos.js +13 -0
- package/dist/compiler/vrchat.cjs +22 -0
- package/dist/compiler/vrchat.js +12 -0
- package/dist/compiler/vrr.cjs +24 -0
- package/dist/compiler/vrr.js +12 -0
- package/dist/compiler/wasm.cjs +36 -0
- package/dist/compiler/wasm.js +12 -0
- package/dist/compiler/webgpu.cjs +18 -0
- package/dist/compiler/webgpu.js +12 -0
- package/dist/coordinators/index.cjs +1266 -0
- package/dist/coordinators/index.d.ts +72 -1
- package/dist/coordinators/index.js +1259 -0
- package/dist/debugger.cjs +24 -0
- package/dist/debugger.js +11 -0
- package/dist/dist-ACXG6IH5.cjs +3113 -0
- package/dist/dist-VD4L6V7Q.js +3076 -0
- package/dist/entries/interop.cjs +64 -0
- package/dist/entries/interop.js +7 -0
- package/dist/entries/scripting.cjs +55 -0
- package/dist/entries/scripting.js +10 -0
- package/dist/hololand/index.cjs +146 -0
- package/dist/hololand/index.d.ts +70 -0
- package/dist/hololand/index.js +5 -0
- package/dist/index.cjs +44660 -0
- package/dist/index.d.ts +978 -21
- package/dist/index.js +41422 -0
- package/dist/math/tropical-spmv.cjs +45 -0
- package/dist/math/tropical-spmv.js +4 -0
- package/dist/math/vec3.cjs +57 -0
- package/dist/math/vec3.js +4 -0
- package/dist/ml-dsa-FSKBTE3W.cjs +1265 -0
- package/dist/ml-dsa-Z7JDKW4L.js +1265 -0
- package/dist/paper-0c-spike/index.cjs +150 -0
- package/dist/paper-0c-spike/index.js +141 -0
- package/dist/parser.cjs +61 -0
- package/dist/parser.d.ts +11 -0
- package/dist/parser.js +12 -0
- package/dist/playwright-3AT3AKTV.cjs +98673 -0
- package/dist/playwright-VZPDVUEQ.js +98660 -0
- package/dist/reconstruction/index.cjs +153 -0
- package/dist/reconstruction/index.d.ts +29 -2
- package/dist/reconstruction/index.js +8 -0
- package/dist/runtime.cjs +316 -0
- package/dist/runtime.d.ts +61 -0
- package/dist/runtime.js +31 -0
- package/dist/self-improvement/index.cjs +563 -0
- package/dist/self-improvement/index.js +545 -0
- package/dist/src-4ROC227P.cjs +2094 -0
- package/dist/src-HCCCSYP7.js +2073 -0
- package/dist/storage/index.cjs +38 -0
- package/dist/storage/index.js +5 -0
- package/dist/testing.cjs +25 -0
- package/dist/testing.d.ts +70 -0
- package/dist/testing.js +4 -0
- package/dist/traitDocs/traitDocs.cjs +33 -0
- package/dist/traitDocs/traitDocs.js +7 -0
- package/dist/traits/botanical-lotus.cjs +177 -0
- package/dist/traits/botanical-lotus.d.ts +502 -0
- package/dist/traits/botanical-lotus.js +7 -0
- package/dist/traits/engines/index.cjs +520 -0
- package/dist/traits/engines/index.js +380 -0
- package/dist/traits/index.cjs +24548 -0
- package/dist/traits/index.d.ts +171 -35
- package/dist/traits/index.js +21638 -0
- package/dist/traits/simulation-solver-factory.cjs +13 -0
- package/dist/traits/simulation-solver-factory.d.ts +23 -0
- package/dist/traits/simulation-solver-factory.js +4 -0
- package/dist/traits/webcam-gaze.cjs +35 -0
- package/dist/traits/webcam-gaze.d.ts +17 -0
- package/dist/traits/webcam-gaze.js +4 -0
- package/dist/type-checker.cjs +19 -0
- package/dist/type-checker.js +6 -0
- package/dist/world/index.cjs +947 -0
- package/dist/world/index.d.ts +147 -0
- package/dist/world/index.js +939 -0
- package/dist/world-model/index.cjs +1446 -0
- package/dist/world-model/index.d.ts +119 -0
- package/dist/world-model/index.js +1414 -0
- package/dist/wot/index.cjs +29 -0
- package/dist/wot/index.js +4 -0
- 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
|