@babylonjs/lite 0.1.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 (417) hide show
  1. package/_math-factory-C-QqW-Wi.js +55 -0
  2. package/_math-factory-C-QqW-Wi.js.map +1 -0
  3. package/add-block-CikX5gWy.js +6 -0
  4. package/add-block-CikX5gWy.js.map +1 -0
  5. package/alpha-test-fragment-CUiHCw7W.js +22 -0
  6. package/alpha-test-fragment-CUiHCw7W.js.map +1 -0
  7. package/ambient-occlusion-block-DForhWL3.js +77 -0
  8. package/ambient-occlusion-block-DForhWL3.js.map +1 -0
  9. package/anisotropy-block-D5fXH_OY.js +12 -0
  10. package/anisotropy-block-D5fXH_OY.js.map +1 -0
  11. package/anisotropy-fragment-HgasXS7l.js +89 -0
  12. package/anisotropy-fragment-HgasXS7l.js.map +1 -0
  13. package/arc-tan2-block-d8sWt_x0.js +12 -0
  14. package/arc-tan2-block-d8sWt_x0.js.map +1 -0
  15. package/assets/splat-sort-worker-Crg3CaCc.js.map +1 -0
  16. package/background-dds-skybox-yHTqabU3.js +221 -0
  17. package/background-dds-skybox-yHTqabU3.js.map +1 -0
  18. package/background-ground-DIw6D3qf.js +235 -0
  19. package/background-ground-DIw6D3qf.js.map +1 -0
  20. package/background-hdr-skybox-c4uuTmkP.js +179 -0
  21. package/background-hdr-skybox-c4uuTmkP.js.map +1 -0
  22. package/background-solid-skybox-DPGBpPbm.js +235 -0
  23. package/background-solid-skybox-DPGBpPbm.js.map +1 -0
  24. package/bake-local-matrix-Dfpd3b06.js +28 -0
  25. package/bake-local-matrix-Dfpd3b06.js.map +1 -0
  26. package/billboard-renderable-D8mlVGCd.js +242 -0
  27. package/billboard-renderable-D8mlVGCd.js.map +1 -0
  28. package/biplanar-block-DZnKuV81.js +115 -0
  29. package/biplanar-block-DZnKuV81.js.map +1 -0
  30. package/bones-block-D6IhqUVV.js +31 -0
  31. package/bones-block-D6IhqUVV.js.map +1 -0
  32. package/clamp-block-BdII67hT.js +21 -0
  33. package/clamp-block-BdII67hT.js.map +1 -0
  34. package/clearcoat-block-BGML4npi.js +12 -0
  35. package/clearcoat-block-BGML4npi.js.map +1 -0
  36. package/clearcoat-fragment-LCiG98Rf.js +256 -0
  37. package/clearcoat-fragment-LCiG98Rf.js.map +1 -0
  38. package/clip-planes-block-BPfFJrbf.js +26 -0
  39. package/clip-planes-block-BPfFJrbf.js.map +1 -0
  40. package/cloud-block-BeVrangc.js +90 -0
  41. package/cloud-block-BeVrangc.js.map +1 -0
  42. package/color-converter-block-CvwKiW4k.js +123 -0
  43. package/color-converter-block-CvwKiW4k.js.map +1 -0
  44. package/color-merger-CCu21ZII.js +57 -0
  45. package/color-merger-CCu21ZII.js.map +1 -0
  46. package/color-splitter-CGn1G4ow.js +33 -0
  47. package/color-splitter-CGn1G4ow.js.map +1 -0
  48. package/conditional-block-Cd2pbejI.js +51 -0
  49. package/conditional-block-Cd2pbejI.js.map +1 -0
  50. package/create-skeleton-C9JdIJnb.js +44 -0
  51. package/create-skeleton-C9JdIJnb.js.map +1 -0
  52. package/cross-block-DCrLwCpt.js +12 -0
  53. package/cross-block-DCrLwCpt.js.map +1 -0
  54. package/cubemap-skybox-material-DvXMVc4k.js +79 -0
  55. package/cubemap-skybox-material-DvXMVc4k.js.map +1 -0
  56. package/curve-block-BlJpXVYv.js +89 -0
  57. package/curve-block-BlJpXVYv.js.map +1 -0
  58. package/debug-block-D2pg4Yf6.js +14 -0
  59. package/debug-block-D2pg4Yf6.js.map +1 -0
  60. package/derivative-block-B8KjtaWs.js +20 -0
  61. package/derivative-block-B8KjtaWs.js.map +1 -0
  62. package/desaturate-block-C1RghNSB.js +15 -0
  63. package/desaturate-block-C1RghNSB.js.map +1 -0
  64. package/discard-block-B2jKjaEL.js +21 -0
  65. package/discard-block-B2jKjaEL.js.map +1 -0
  66. package/distance-block-3NkgFZ3f.js +16 -0
  67. package/distance-block-3NkgFZ3f.js.map +1 -0
  68. package/divide-block-ZyepIg_-.js +6 -0
  69. package/divide-block-ZyepIg_-.js.map +1 -0
  70. package/dot-block-VlfAC6cD.js +16 -0
  71. package/dot-block-VlfAC6cD.js.map +1 -0
  72. package/elbow-block-NEOiIxzO.js +10 -0
  73. package/elbow-block-NEOiIxzO.js.map +1 -0
  74. package/emissive-fragment-BnNvbBCw.js +39 -0
  75. package/emissive-fragment-BnNvbBCw.js.map +1 -0
  76. package/esm-shadow-view-DGKdF1NI.js +18 -0
  77. package/esm-shadow-view-DGKdF1NI.js.map +1 -0
  78. package/esm-shadow-view-DN9HIaM4.js +15 -0
  79. package/esm-shadow-view-DN9HIaM4.js.map +1 -0
  80. package/esm-shadow-view-Dk9NFtLq.js +15 -0
  81. package/esm-shadow-view-Dk9NFtLq.js.map +1 -0
  82. package/fog-block-DJ9hEolm.js +41 -0
  83. package/fog-block-DJ9hEolm.js.map +1 -0
  84. package/frag-coord-block-DzXfFgfV.js +25 -0
  85. package/frag-coord-block-DzXfFgfV.js.map +1 -0
  86. package/frag-depth-block-UQbeKP2D.js +34 -0
  87. package/frag-depth-block-UQbeKP2D.js.map +1 -0
  88. package/fragment-output-BOphkIeh.js +26 -0
  89. package/fragment-output-BOphkIeh.js.map +1 -0
  90. package/fresnel-block-DefHWeO-.js +20 -0
  91. package/fresnel-block-DefHWeO-.js.map +1 -0
  92. package/front-facing-0d6aiyrv.js +11 -0
  93. package/front-facing-0d6aiyrv.js.map +1 -0
  94. package/gaussian-splatting-pipeline-sh-DgJl7l56.js +500 -0
  95. package/gaussian-splatting-pipeline-sh-DgJl7l56.js.map +1 -0
  96. package/gltf-animation-D7uyTyO3.js +245 -0
  97. package/gltf-animation-D7uyTyO3.js.map +1 -0
  98. package/gltf-ext-anisotropy-CknJiJK8.js +22 -0
  99. package/gltf-ext-anisotropy-CknJiJK8.js.map +1 -0
  100. package/gltf-ext-basisu-CPg5kPrx.js +452 -0
  101. package/gltf-ext-basisu-CPg5kPrx.js.map +1 -0
  102. package/gltf-ext-clearcoat-CLH2SVph.js +31 -0
  103. package/gltf-ext-clearcoat-CLH2SVph.js.map +1 -0
  104. package/gltf-ext-dielectric-qHzlnvdl.js +105 -0
  105. package/gltf-ext-dielectric-qHzlnvdl.js.map +1 -0
  106. package/gltf-ext-emissive-strength-nzGZXZVK.js +19 -0
  107. package/gltf-ext-emissive-strength-nzGZXZVK.js.map +1 -0
  108. package/gltf-ext-iridescence-C6bq7jiM.js +26 -0
  109. package/gltf-ext-iridescence-C6bq7jiM.js.map +1 -0
  110. package/gltf-ext-node-visibility-MafA9ot2.js +25 -0
  111. package/gltf-ext-node-visibility-MafA9ot2.js.map +1 -0
  112. package/gltf-ext-orm-CT18G_vQ.js +33 -0
  113. package/gltf-ext-orm-CT18G_vQ.js.map +1 -0
  114. package/gltf-ext-quantization-CpZyLDIz.js +94 -0
  115. package/gltf-ext-quantization-CpZyLDIz.js.map +1 -0
  116. package/gltf-ext-sheen-BgIxUzyZ.js +25 -0
  117. package/gltf-ext-sheen-BgIxUzyZ.js.map +1 -0
  118. package/gltf-ext-spec-gloss-D0LJLBUM.js +24 -0
  119. package/gltf-ext-spec-gloss-D0LJLBUM.js.map +1 -0
  120. package/gltf-ext-unlit-D2ANui0V.js +16 -0
  121. package/gltf-ext-unlit-D2ANui0V.js.map +1 -0
  122. package/gltf-ext-uv-transform-CE_-T1Tr.js +38 -0
  123. package/gltf-ext-uv-transform-CE_-T1Tr.js.map +1 -0
  124. package/gltf-feature-animation-pointer-BjpwOOqo.js +88 -0
  125. package/gltf-feature-animation-pointer-BjpwOOqo.js.map +1 -0
  126. package/gltf-feature-animations-CCizegp8.js +15 -0
  127. package/gltf-feature-animations-CCizegp8.js.map +1 -0
  128. package/gltf-feature-draco-yGSMGTE3.js +124 -0
  129. package/gltf-feature-draco-yGSMGTE3.js.map +1 -0
  130. package/gltf-feature-gpu-instancing-2e_CFQnl.js +151 -0
  131. package/gltf-feature-gpu-instancing-2e_CFQnl.js.map +1 -0
  132. package/gltf-feature-lights-punctual-DDDg4j0U.js +71 -0
  133. package/gltf-feature-lights-punctual-DDDg4j0U.js.map +1 -0
  134. package/gltf-feature-meshopt-Des96YFI.js +84 -0
  135. package/gltf-feature-meshopt-Des96YFI.js.map +1 -0
  136. package/gltf-feature-morph-CKCw6tkX.js +29 -0
  137. package/gltf-feature-morph-CKCw6tkX.js.map +1 -0
  138. package/gltf-feature-skeleton-D8hWLqi2.js +36 -0
  139. package/gltf-feature-skeleton-D8hWLqi2.js.map +1 -0
  140. package/gltf-feature-variants-Ds6v9byg.js +17 -0
  141. package/gltf-feature-variants-Ds6v9byg.js.map +1 -0
  142. package/gltf-feature-xmp-BUfq_IVG.js +15 -0
  143. package/gltf-feature-xmp-BUfq_IVG.js.map +1 -0
  144. package/gltf-glb-parser-D6UZWFuC.js +27 -0
  145. package/gltf-glb-parser-D6UZWFuC.js.map +1 -0
  146. package/gltf-interleave-DGnUlz28.js +241 -0
  147. package/gltf-interleave-DGnUlz28.js.map +1 -0
  148. package/gltf-pbr-builder-ext-BFOxOCnQ.js +85 -0
  149. package/gltf-pbr-builder-ext-BFOxOCnQ.js.map +1 -0
  150. package/gltf-variants-DFbr8EES.js +88 -0
  151. package/gltf-variants-DFbr8EES.js.map +1 -0
  152. package/gradient-block-DL_60sDc.js +50 -0
  153. package/gradient-block-DL_60sDc.js.map +1 -0
  154. package/gs-picking-pipeline-DzfMASL9.js +280 -0
  155. package/gs-picking-pipeline-DzfMASL9.js.map +1 -0
  156. package/height-to-normal-block-DhPHkDFg.js +65 -0
  157. package/height-to-normal-block-DhPHkDFg.js.map +1 -0
  158. package/ibl-fragment-DqQVi8k0.js +91 -0
  159. package/ibl-fragment-DqQVi8k0.js.map +1 -0
  160. package/ibl-skybox-wgsl-DCah0kWV.js +13 -0
  161. package/ibl-skybox-wgsl-DCah0kWV.js.map +1 -0
  162. package/image-processing-block-DwrhhmuF.js +40 -0
  163. package/image-processing-block-DwrhhmuF.js.map +1 -0
  164. package/image-source-BuMJgd9-.js +17 -0
  165. package/image-source-BuMJgd9-.js.map +1 -0
  166. package/index-C8HOR2sB.js +19222 -0
  167. package/index-C8HOR2sB.js.map +1 -0
  168. package/index.d.ts +4611 -0
  169. package/index.js +309 -0
  170. package/index.js.map +1 -0
  171. package/input-block-DgAJBzN_.js +109 -0
  172. package/input-block-DgAJBzN_.js.map +1 -0
  173. package/instances-block-BaSSiz8m.js +12 -0
  174. package/instances-block-BaSSiz8m.js.map +1 -0
  175. package/iridescence-block-B0pRFoOU.js +67 -0
  176. package/iridescence-block-B0pRFoOU.js.map +1 -0
  177. package/iridescence-fragment-Gymp7or5.js +243 -0
  178. package/iridescence-fragment-Gymp7or5.js.map +1 -0
  179. package/length-block-ChOkeiHR.js +11 -0
  180. package/length-block-ChOkeiHR.js.map +1 -0
  181. package/lerp-block-DjI2SfmI.js +18 -0
  182. package/lerp-block-DjI2SfmI.js.map +1 -0
  183. package/light-block-B11ew7FA.js +123 -0
  184. package/light-block-B11ew7FA.js.map +1 -0
  185. package/light-information-VJbW0jbs.js +19 -0
  186. package/light-information-VJbW0jbs.js.map +1 -0
  187. package/loop-block-Bb23EOMb.js +71 -0
  188. package/loop-block-Bb23EOMb.js.map +1 -0
  189. package/manifold-AS8POaOr.js +3022 -0
  190. package/manifold-AS8POaOr.js.map +1 -0
  191. package/manifold-RCa7RkKz.js +5 -0
  192. package/manifold-RCa7RkKz.js.map +1 -0
  193. package/matrix-blocks-acWn_V6g.js +51 -0
  194. package/matrix-blocks-acWn_V6g.js.map +1 -0
  195. package/max-block-CjFgljZ7.js +6 -0
  196. package/max-block-CjFgljZ7.js.map +1 -0
  197. package/mesh-attribute-exists-block-BfK8UiSL.js +44 -0
  198. package/mesh-attribute-exists-block-BfK8UiSL.js.map +1 -0
  199. package/mesh-features-BLENkYVt.js +341 -0
  200. package/mesh-features-BLENkYVt.js.map +1 -0
  201. package/min-block-CHtBngNl.js +6 -0
  202. package/min-block-CHtBngNl.js.map +1 -0
  203. package/mod-block-Ceizv8Y7.js +6 -0
  204. package/mod-block-Ceizv8Y7.js.map +1 -0
  205. package/morph-fragment-DOVo70gP.js +59 -0
  206. package/morph-fragment-DOVo70gP.js.map +1 -0
  207. package/morph-targets-55z342ZB.js +35 -0
  208. package/morph-targets-55z342ZB.js.map +1 -0
  209. package/multilight-wgsl-BGyiIOp3.js +112 -0
  210. package/multilight-wgsl-BGyiIOp3.js.map +1 -0
  211. package/multiply-block-DaXLJ7Ud.js +6 -0
  212. package/multiply-block-DaXLJ7Ud.js.map +1 -0
  213. package/negate-block-9CSLc5pM.js +6 -0
  214. package/negate-block-9CSLc5pM.js.map +1 -0
  215. package/nlerp-block-BNK1adIb.js +21 -0
  216. package/nlerp-block-BNK1adIb.js.map +1 -0
  217. package/node-env-BPZXZzBf.js +39 -0
  218. package/node-env-BPZXZzBf.js.map +1 -0
  219. package/node-registry-DwgC4yth.js +190 -0
  220. package/node-registry-DwgC4yth.js.map +1 -0
  221. package/node-registry-extra-advanced-2DJVt67-.js +45 -0
  222. package/node-registry-extra-advanced-2DJVt67-.js.map +1 -0
  223. package/node-registry-extra-compat-Dhrw8fDQ.js +41 -0
  224. package/node-registry-extra-compat-Dhrw8fDQ.js.map +1 -0
  225. package/node-registry-extra-math-CsAHvIZo.js +49 -0
  226. package/node-registry-extra-math-CsAHvIZo.js.map +1 -0
  227. package/node-registry-extra-procedural-5pLQ3Bhz.js +45 -0
  228. package/node-registry-extra-procedural-5pLQ3Bhz.js.map +1 -0
  229. package/node-renderable-DlLIdBmd.js +269 -0
  230. package/node-renderable-DlLIdBmd.js.map +1 -0
  231. package/node-shadow-DKrcqmNg.js +122 -0
  232. package/node-shadow-DKrcqmNg.js.map +1 -0
  233. package/node-snippet-DUMm9qEO.js +22 -0
  234. package/node-snippet-DUMm9qEO.js.map +1 -0
  235. package/normal-blend-block-BfH_nBoj.js +29 -0
  236. package/normal-blend-block-BfH_nBoj.js.map +1 -0
  237. package/normal-map-fragment-DpsIXrJf.js +38 -0
  238. package/normal-map-fragment-DpsIXrJf.js.map +1 -0
  239. package/normalize-block-F2bLNj9K.js +6 -0
  240. package/normalize-block-F2bLNj9K.js.map +1 -0
  241. package/oneminus-block-BP9x4Dc3.js +6 -0
  242. package/oneminus-block-BP9x4Dc3.js.map +1 -0
  243. package/opposite-block-Cnqmm-lH.js +6 -0
  244. package/opposite-block-Cnqmm-lH.js.map +1 -0
  245. package/package.json +26 -0
  246. package/panner-block-BwMQq-6Y.js +13 -0
  247. package/panner-block-BwMQq-6Y.js.map +1 -0
  248. package/parse-camera-DM3oJJeT.js +23 -0
  249. package/parse-camera-DM3oJJeT.js.map +1 -0
  250. package/pbr-aces-wgsl-HpiQHGN_.js +13 -0
  251. package/pbr-aces-wgsl-HpiQHGN_.js.map +1 -0
  252. package/pbr-metallic-roughness-block-full-6vMm1Jk6.js +763 -0
  253. package/pbr-metallic-roughness-block-full-6vMm1Jk6.js.map +1 -0
  254. package/pbr-metallic-roughness-block-h_KAOZrW.js +104 -0
  255. package/pbr-metallic-roughness-block-h_KAOZrW.js.map +1 -0
  256. package/pbr-mr-helper-core-CIwm-T1G.js +237 -0
  257. package/pbr-mr-helper-core-CIwm-T1G.js.map +1 -0
  258. package/pbr-refraction-DGmMSa2v.js +17 -0
  259. package/pbr-refraction-DGmMSa2v.js.map +1 -0
  260. package/pbr-renderable-BJxUtPBb.js +961 -0
  261. package/pbr-renderable-BJxUtPBb.js.map +1 -0
  262. package/pbr-shadow-fragment-LO9SlbJj.js +14 -0
  263. package/pbr-shadow-fragment-LO9SlbJj.js.map +1 -0
  264. package/pbr-template-ext-8q7BcTDf.js +88 -0
  265. package/pbr-template-ext-8q7BcTDf.js.map +1 -0
  266. package/pbr-tracking-B3alzn91.js +31 -0
  267. package/pbr-tracking-B3alzn91.js.map +1 -0
  268. package/pbr-transmission-ext-BxW4CEGu.js +581 -0
  269. package/pbr-transmission-ext-BxW4CEGu.js.map +1 -0
  270. package/perturb-normal-0Q8EM9ig.js +39 -0
  271. package/perturb-normal-0Q8EM9ig.js.map +1 -0
  272. package/posterize-block-DfdKsbEf.js +28 -0
  273. package/posterize-block-DfdKsbEf.js.map +1 -0
  274. package/pow-block-DI5ICzhc.js +13 -0
  275. package/pow-block-DI5ICzhc.js.map +1 -0
  276. package/random-number-block-2OyRYljF.js +15 -0
  277. package/random-number-block-2OyRYljF.js.map +1 -0
  278. package/reciprocal-block-Ck3CW-j-.js +14 -0
  279. package/reciprocal-block-Ck3CW-j-.js.map +1 -0
  280. package/reflect-block-CizpzrX4.js +12 -0
  281. package/reflect-block-CizpzrX4.js.map +1 -0
  282. package/reflectance-fragment-BCrgPmrt.js +143 -0
  283. package/reflectance-fragment-BCrgPmrt.js.map +1 -0
  284. package/reflection-block-DqcwyYqr.js +12 -0
  285. package/reflection-block-DqcwyYqr.js.map +1 -0
  286. package/reflection-texture-base-block-1xmJ0HDj.js +10 -0
  287. package/reflection-texture-base-block-1xmJ0HDj.js.map +1 -0
  288. package/reflection-texture-block-C3QtzoV8.js +60 -0
  289. package/reflection-texture-block-C3QtzoV8.js.map +1 -0
  290. package/refract-block-HHiAk-7U.js +13 -0
  291. package/refract-block-HHiAk-7U.js.map +1 -0
  292. package/refraction-block-U8y6XiXs.js +11 -0
  293. package/refraction-block-U8y6XiXs.js.map +1 -0
  294. package/refraction-dispersion-wgsl-DdQCyyO1.js +16 -0
  295. package/refraction-dispersion-wgsl-DdQCyyO1.js.map +1 -0
  296. package/remap-block-DxK1W1vp.js +27 -0
  297. package/remap-block-DxK1W1vp.js.map +1 -0
  298. package/replace-color-block-1m--hiru.js +17 -0
  299. package/replace-color-block-1m--hiru.js.map +1 -0
  300. package/rgbd-decode-DCvzUYeI.js +110 -0
  301. package/rgbd-decode-DCvzUYeI.js.map +1 -0
  302. package/rotate2d-block-nEe1N2MJ.js +15 -0
  303. package/rotate2d-block-nEe1N2MJ.js.map +1 -0
  304. package/scale-block-C5Z8159G.js +13 -0
  305. package/scale-block-C5Z8159G.js.map +1 -0
  306. package/scene-material-swap-C2ykv55W.js +34 -0
  307. package/scene-material-swap-C2ykv55W.js.map +1 -0
  308. package/screen-size-block-BVNnOvE8.js +21 -0
  309. package/screen-size-block-BVNnOvE8.js.map +1 -0
  310. package/screen-space-block-CwaxdfSe.js +28 -0
  311. package/screen-space-block-CwaxdfSe.js.map +1 -0
  312. package/shader-renderable-D-6796KR.js +531 -0
  313. package/shader-renderable-D-6796KR.js.map +1 -0
  314. package/shadow-fragment-core-DHN2G6FI.js +110 -0
  315. package/shadow-fragment-core-DHN2G6FI.js.map +1 -0
  316. package/shadow-map-CQNQC-Fw.js +13 -0
  317. package/shadow-map-CQNQC-Fw.js.map +1 -0
  318. package/sheen-block-BugfJqK3.js +12 -0
  319. package/sheen-block-BugfJqK3.js.map +1 -0
  320. package/sheen-fragment-Dze2f7XJ.js +215 -0
  321. package/sheen-fragment-Dze2f7XJ.js.map +1 -0
  322. package/simplex-perlin-3d-block-CcMtofzV.js +58 -0
  323. package/simplex-perlin-3d-block-CcMtofzV.js.map +1 -0
  324. package/singlelight-directional-wgsl-CmUDZxwz.js +39 -0
  325. package/singlelight-directional-wgsl-CmUDZxwz.js.map +1 -0
  326. package/singlelight-hemispheric-wgsl-t-83IP_s.js +40 -0
  327. package/singlelight-hemispheric-wgsl-t-83IP_s.js.map +1 -0
  328. package/singlelight-point-wgsl-CLzULIYV.js +45 -0
  329. package/singlelight-point-wgsl-CLzULIYV.js.map +1 -0
  330. package/singlelight-spot-wgsl-DEEUrfVM.js +47 -0
  331. package/singlelight-spot-wgsl-DEEUrfVM.js.map +1 -0
  332. package/skeleton-fragment-B_XlFbtx.js +71 -0
  333. package/skeleton-fragment-B_XlFbtx.js.map +1 -0
  334. package/skybox-renderable-DDwzu-PT.js +92 -0
  335. package/skybox-renderable-DDwzu-PT.js.map +1 -0
  336. package/skybox.vertex-DJgi072W.js +5 -0
  337. package/skybox.vertex-DJgi072W.js.map +1 -0
  338. package/smoothstep-block-Di4t37x-.js +15 -0
  339. package/smoothstep-block-Di4t37x-.js.map +1 -0
  340. package/splat-ply-compressed-BahdBG1r.js +394 -0
  341. package/splat-ply-compressed-BahdBG1r.js.map +1 -0
  342. package/standard-renderable-GjxL9xSf.js +636 -0
  343. package/standard-renderable-GjxL9xSf.js.map +1 -0
  344. package/std-ambient-fragment-BoUsD06w.js +37 -0
  345. package/std-ambient-fragment-BoUsD06w.js.map +1 -0
  346. package/std-cube-reflection-fragment-ulqc3bsP.js +31 -0
  347. package/std-cube-reflection-fragment-ulqc3bsP.js.map +1 -0
  348. package/std-emissive-fragment-DNGj1HdQ.js +40 -0
  349. package/std-emissive-fragment-DNGj1HdQ.js.map +1 -0
  350. package/std-lightmap-fragment-Bqj89aIe.js +37 -0
  351. package/std-lightmap-fragment-Bqj89aIe.js.map +1 -0
  352. package/std-opacity-fragment-KuPh5N2Z.js +37 -0
  353. package/std-opacity-fragment-KuPh5N2Z.js.map +1 -0
  354. package/std-reflection-fragment-BA5Ghn_M.js +57 -0
  355. package/std-reflection-fragment-BA5Ghn_M.js.map +1 -0
  356. package/std-shadow-fragment-FNQfrJuC.js +8 -0
  357. package/std-shadow-fragment-FNQfrJuC.js.map +1 -0
  358. package/std-specular-fragment-CE-6scqd.js +37 -0
  359. package/std-specular-fragment-CE-6scqd.js.map +1 -0
  360. package/std-tracking-CNKZ-hJN.js +15 -0
  361. package/std-tracking-CNKZ-hJN.js.map +1 -0
  362. package/step-block-BkywzTYm.js +13 -0
  363. package/step-block-BkywzTYm.js.map +1 -0
  364. package/storage-read-block-BdzhJfln.js +25 -0
  365. package/storage-read-block-BdzhJfln.js.map +1 -0
  366. package/storage-write-block-DjLKZ0Ro.js +11 -0
  367. package/storage-write-block-DjLKZ0Ro.js.map +1 -0
  368. package/subsurface-block-CBhxT9ui.js +12 -0
  369. package/subsurface-block-CBhxT9ui.js.map +1 -0
  370. package/subsurface-fragment-liM3y2-P.js +158 -0
  371. package/subsurface-fragment-liM3y2-P.js.map +1 -0
  372. package/subtract-block-NPfKvzQP.js +6 -0
  373. package/subtract-block-NPfKvzQP.js.map +1 -0
  374. package/swapchain-overlay-DcCSFDp7.js +35 -0
  375. package/swapchain-overlay-DcCSFDp7.js.map +1 -0
  376. package/tbn-block-ByOI6Y43.js +43 -0
  377. package/tbn-block-ByOI6Y43.js.map +1 -0
  378. package/teleport-in-block-BMa17cqq.js +10 -0
  379. package/teleport-in-block-BMa17cqq.js.map +1 -0
  380. package/teleport-out-block-5AkB25H6.js +19 -0
  381. package/teleport-out-block-5AkB25H6.js.map +1 -0
  382. package/texture-block-rr21KIL_.js +70 -0
  383. package/texture-block-rr21KIL_.js.map +1 -0
  384. package/thin-instance-fragment-hsv-RyDs.js +69 -0
  385. package/thin-instance-fragment-hsv-RyDs.js.map +1 -0
  386. package/thin-instance-gpu-C9Gv_Z1w.js +62 -0
  387. package/thin-instance-gpu-C9Gv_Z1w.js.map +1 -0
  388. package/tracking-primitives-wgdBY85t.js +82 -0
  389. package/tracking-primitives-wgdBY85t.js.map +1 -0
  390. package/transform-block-DbRph9JI.js +32 -0
  391. package/transform-block-DbRph9JI.js.map +1 -0
  392. package/trigonometry-block-BYQcTHiD.js +36 -0
  393. package/trigonometry-block-BYQcTHiD.js.map +1 -0
  394. package/triplanar-block-BZHkD9hX.js +148 -0
  395. package/triplanar-block-BZHkD9hX.js.map +1 -0
  396. package/twirl-block-78WtdiBd.js +39 -0
  397. package/twirl-block-78WtdiBd.js.map +1 -0
  398. package/unlit-fragment-BIlhJpz6.js +43 -0
  399. package/unlit-fragment-BIlhJpz6.js.map +1 -0
  400. package/uv-transform-fragment-hYujGpZg.js +47 -0
  401. package/uv-transform-fragment-hYujGpZg.js.map +1 -0
  402. package/vector-merger-CrW-ONB0.js +43 -0
  403. package/vector-merger-CrW-ONB0.js.map +1 -0
  404. package/vector-splitter-BoJuHrAU.js +34 -0
  405. package/vector-splitter-BoJuHrAU.js.map +1 -0
  406. package/vertex-output-Cvft64y0.js +14 -0
  407. package/vertex-output-Cvft64y0.js.map +1 -0
  408. package/view-direction-CWVucfnT.js +12 -0
  409. package/view-direction-CWVucfnT.js.map +1 -0
  410. package/voronoi-noise-block-iNQxa_Ls.js +43 -0
  411. package/voronoi-noise-block-iNQxa_Ls.js.map +1 -0
  412. package/wave-block-CY_mk1ec.js +41 -0
  413. package/wave-block-CY_mk1ec.js.map +1 -0
  414. package/wgsl-helpers-DyzNzCeE.js +48 -0
  415. package/wgsl-helpers-DyzNzCeE.js.map +1 -0
  416. package/worley-noise-3d-block-CyR2-k4s.js +58 -0
  417. package/worley-noise-3d-block-CyR2-k4s.js.map +1 -0
@@ -0,0 +1,394 @@
1
+ const SH_C0 = 0.28209479177387814;
2
+ const SQRT2 = Math.SQRT2;
3
+ const ROW_OUTPUT_LENGTH = 32;
4
+ const TYPE_SIZE = { double: 8, int: 4, uint: 4, float: 4, short: 2, ushort: 2, uchar: 1 };
5
+ function shDegreeForIndex(i) {
6
+ if (i >= 71) {
7
+ return 4;
8
+ }
9
+ if (i >= 44) {
10
+ return 3;
11
+ }
12
+ if (i >= 23) {
13
+ return 2;
14
+ }
15
+ if (i >= 8) {
16
+ return 1;
17
+ }
18
+ return 0;
19
+ }
20
+ function parseHeader(data) {
21
+ const headerText = new TextDecoder().decode(new Uint8Array(data, 0, Math.min(data.byteLength, 1024 * 10)));
22
+ const headerEnd = "end_header\n";
23
+ const idx = headerText.indexOf(headerEnd);
24
+ if (idx < 0) {
25
+ return null;
26
+ }
27
+ const vmatch = /element vertex (\d+)\n/.exec(headerText);
28
+ if (!vmatch) {
29
+ return null;
30
+ }
31
+ const vertexCount = parseInt(vmatch[1], 10);
32
+ const cmatch = /element chunk (\d+)\n/.exec(headerText);
33
+ const chunkCount = cmatch ? parseInt(cmatch[1], 10) : 0;
34
+ let section = 1;
35
+ let rowVertex = 0;
36
+ let rowChunk = 0;
37
+ const vertexProps = [];
38
+ const chunkProps = [];
39
+ const shProps = [];
40
+ let shDegree = 0;
41
+ for (const line of headerText.slice(0, idx).split("\n")) {
42
+ if (line.startsWith("element ")) {
43
+ const [, kind] = line.split(" ");
44
+ section = kind === "chunk" ? 1 : kind === "vertex" ? 0 : kind === "sh" ? 2 : 3;
45
+ continue;
46
+ }
47
+ if (!line.startsWith("property ")) {
48
+ continue;
49
+ }
50
+ const [, type, name] = line.split(" ");
51
+ if (!type || !name || TYPE_SIZE[type] === void 0) {
52
+ return null;
53
+ }
54
+ const sz = TYPE_SIZE[type];
55
+ if (section === 1) {
56
+ chunkProps.push({ name, type, offset: rowChunk });
57
+ rowChunk += sz;
58
+ } else if (section === 0) {
59
+ vertexProps.push({ name, type, offset: rowVertex });
60
+ rowVertex += sz;
61
+ if (name.startsWith("f_rest_")) {
62
+ shDegree = Math.max(shDegree, shDegreeForIndex(parseInt(name.slice(7), 10)));
63
+ }
64
+ } else if (section === 2) {
65
+ shProps.push({ name, type, offset: 0 });
66
+ if (name.startsWith("f_rest_")) {
67
+ shDegree = Math.max(shDegree, shDegreeForIndex(parseInt(name.slice(7), 10)));
68
+ }
69
+ }
70
+ }
71
+ const shCoefficientCount = shDegree ? ((shDegree + 1) * (shDegree + 1) - 1) * 3 : 0;
72
+ return {
73
+ vertexCount,
74
+ chunkCount,
75
+ rowVertexLength: rowVertex,
76
+ rowChunkLength: rowChunk,
77
+ vertexProps,
78
+ chunkProps,
79
+ shProps,
80
+ shDegree,
81
+ shCoefficientCount,
82
+ dataStart: idx + headerEnd.length
83
+ };
84
+ }
85
+ function readChunks(header, dv, offsetRef) {
86
+ const out = [];
87
+ for (let i = 0; i < header.chunkCount; i++) {
88
+ const c = {
89
+ minX: 0,
90
+ minY: 0,
91
+ minZ: 0,
92
+ maxX: 0,
93
+ maxY: 0,
94
+ maxZ: 0,
95
+ minSX: 0,
96
+ minSY: 0,
97
+ minSZ: 0,
98
+ maxSX: 0,
99
+ maxSY: 0,
100
+ maxSZ: 0,
101
+ minR: 0,
102
+ minG: 0,
103
+ minB: 0,
104
+ maxR: 1,
105
+ maxG: 1,
106
+ maxB: 1
107
+ };
108
+ for (const p of header.chunkProps) {
109
+ if (p.type !== "float") {
110
+ continue;
111
+ }
112
+ const v = dv.getFloat32(offsetRef.value + p.offset, true);
113
+ switch (p.name) {
114
+ case "min_x":
115
+ c.minX = v;
116
+ break;
117
+ case "min_y":
118
+ c.minY = v;
119
+ break;
120
+ case "min_z":
121
+ c.minZ = v;
122
+ break;
123
+ case "max_x":
124
+ c.maxX = v;
125
+ break;
126
+ case "max_y":
127
+ c.maxY = v;
128
+ break;
129
+ case "max_z":
130
+ c.maxZ = v;
131
+ break;
132
+ case "min_scale_x":
133
+ c.minSX = v;
134
+ break;
135
+ case "min_scale_y":
136
+ c.minSY = v;
137
+ break;
138
+ case "min_scale_z":
139
+ c.minSZ = v;
140
+ break;
141
+ case "max_scale_x":
142
+ c.maxSX = v;
143
+ break;
144
+ case "max_scale_y":
145
+ c.maxSY = v;
146
+ break;
147
+ case "max_scale_z":
148
+ c.maxSZ = v;
149
+ break;
150
+ case "min_r":
151
+ c.minR = v;
152
+ break;
153
+ case "min_g":
154
+ c.minG = v;
155
+ break;
156
+ case "min_b":
157
+ c.minB = v;
158
+ break;
159
+ case "max_r":
160
+ c.maxR = v;
161
+ break;
162
+ case "max_g":
163
+ c.maxG = v;
164
+ break;
165
+ case "max_b":
166
+ c.maxB = v;
167
+ break;
168
+ }
169
+ }
170
+ out.push(c);
171
+ offsetRef.value += header.rowChunkLength;
172
+ }
173
+ return out;
174
+ }
175
+ const lerp = (a, b, t) => a + (b - a) * t;
176
+ const clamp255 = (v) => v < 0 ? 0 : v > 255 ? 255 : v;
177
+ function unpack111011(value, out) {
178
+ out[0] = (value >>> 21 & 2047) / 2047;
179
+ out[1] = (value >>> 11 & 1023) / 1023;
180
+ out[2] = (value & 2047) / 2047;
181
+ }
182
+ function unpack8888(value, out) {
183
+ out[0] = (value >>> 24 & 255) / 255;
184
+ out[1] = (value >>> 16 & 255) / 255;
185
+ out[2] = (value >>> 8 & 255) / 255;
186
+ out[3] = (value & 255) / 255;
187
+ }
188
+ function unpackRot(value, out) {
189
+ const norm = 1 / (SQRT2 * 0.5);
190
+ const a = ((value >>> 20 & 1023) / 1023 - 0.5) * norm;
191
+ const b = ((value >>> 10 & 1023) / 1023 - 0.5) * norm;
192
+ const c = ((value & 1023) / 1023 - 0.5) * norm;
193
+ const m = Math.sqrt(Math.max(0, 1 - (a * a + b * b + c * c)));
194
+ switch (value >>> 30) {
195
+ case 0:
196
+ out[0] = a;
197
+ out[1] = b;
198
+ out[2] = c;
199
+ out[3] = m;
200
+ break;
201
+ case 1:
202
+ out[0] = m;
203
+ out[1] = b;
204
+ out[2] = c;
205
+ out[3] = a;
206
+ break;
207
+ case 2:
208
+ out[0] = b;
209
+ out[1] = m;
210
+ out[2] = c;
211
+ out[3] = a;
212
+ break;
213
+ default:
214
+ out[0] = b;
215
+ out[1] = c;
216
+ out[2] = m;
217
+ out[3] = a;
218
+ break;
219
+ }
220
+ }
221
+ function convertCompressedPlyToParsedSplat(data) {
222
+ const header = parseHeader(data);
223
+ if (!header) {
224
+ return { data };
225
+ }
226
+ const isCompressed = header.chunkCount > 0;
227
+ const dv = new DataView(data, header.dataStart);
228
+ const out = new ArrayBuffer(ROW_OUTPUT_LENGTH * header.vertexCount);
229
+ const tmpPos = [0, 0, 0];
230
+ const tmpScl = [0, 0, 0];
231
+ const tmpRgba = [0, 0, 0, 0];
232
+ const tmpQuat = [0, 0, 0, 1];
233
+ const offsetRef = { value: 0 };
234
+ const chunks = isCompressed ? readChunks(header, dv, offsetRef) : null;
235
+ const shFlat = header.shDegree && header.shCoefficientCount ? new Uint8Array(header.shCoefficientCount * header.vertexCount) : null;
236
+ const shBlockBase = header.rowChunkLength * header.chunkCount + header.vertexCount * header.rowVertexLength;
237
+ const shDim = header.shCoefficientCount / 3;
238
+ for (let i = 0; i < header.vertexCount; i++) {
239
+ const position = new Float32Array(out, i * ROW_OUTPUT_LENGTH, 3);
240
+ const scale = new Float32Array(out, i * ROW_OUTPUT_LENGTH + 12, 3);
241
+ const rgba = new Uint8ClampedArray(out, i * ROW_OUTPUT_LENGTH + 24, 4);
242
+ const rot = new Uint8ClampedArray(out, i * ROW_OUTPUT_LENGTH + 28, 4);
243
+ const chunk = chunks ? chunks[i >> 8] : null;
244
+ let r0 = 255, r1 = 0, r2 = 0, r3 = 0;
245
+ const plySH = shFlat ? new Array(header.shCoefficientCount) : null;
246
+ for (const prop of header.vertexProps) {
247
+ let value;
248
+ switch (prop.type) {
249
+ case "float":
250
+ value = dv.getFloat32(offsetRef.value + prop.offset, true);
251
+ break;
252
+ case "int":
253
+ value = dv.getInt32(offsetRef.value + prop.offset, true);
254
+ break;
255
+ case "uint":
256
+ value = dv.getUint32(offsetRef.value + prop.offset, true);
257
+ break;
258
+ case "uchar":
259
+ value = dv.getUint8(offsetRef.value + prop.offset);
260
+ break;
261
+ case "short":
262
+ value = dv.getInt16(offsetRef.value + prop.offset, true);
263
+ break;
264
+ case "ushort":
265
+ value = dv.getUint16(offsetRef.value + prop.offset, true);
266
+ break;
267
+ case "double":
268
+ value = dv.getFloat64(offsetRef.value + prop.offset, true);
269
+ break;
270
+ default:
271
+ continue;
272
+ }
273
+ switch (prop.name) {
274
+ case "packed_position":
275
+ unpack111011(value, tmpPos);
276
+ position[0] = lerp(chunk.minX, chunk.maxX, tmpPos[0]);
277
+ position[1] = lerp(chunk.minY, chunk.maxY, tmpPos[1]);
278
+ position[2] = lerp(chunk.minZ, chunk.maxZ, tmpPos[2]);
279
+ break;
280
+ case "packed_rotation":
281
+ unpackRot(value, tmpQuat);
282
+ r0 = tmpQuat[3];
283
+ r1 = tmpQuat[0];
284
+ r2 = tmpQuat[1];
285
+ r3 = tmpQuat[2];
286
+ break;
287
+ case "packed_scale":
288
+ unpack111011(value, tmpScl);
289
+ scale[0] = Math.exp(lerp(chunk.minSX, chunk.maxSX, tmpScl[0]));
290
+ scale[1] = Math.exp(lerp(chunk.minSY, chunk.maxSY, tmpScl[1]));
291
+ scale[2] = Math.exp(lerp(chunk.minSZ, chunk.maxSZ, tmpScl[2]));
292
+ break;
293
+ case "packed_color":
294
+ unpack8888(value, tmpRgba);
295
+ rgba[0] = lerp(chunk.minR, chunk.maxR, tmpRgba[0]) * 255;
296
+ rgba[1] = lerp(chunk.minG, chunk.maxG, tmpRgba[1]) * 255;
297
+ rgba[2] = lerp(chunk.minB, chunk.maxB, tmpRgba[2]) * 255;
298
+ rgba[3] = tmpRgba[3] * 255;
299
+ break;
300
+ case "x":
301
+ position[0] = value;
302
+ break;
303
+ case "y":
304
+ position[1] = value;
305
+ break;
306
+ case "z":
307
+ position[2] = value;
308
+ break;
309
+ case "scale_0":
310
+ scale[0] = Math.exp(value);
311
+ break;
312
+ case "scale_1":
313
+ scale[1] = Math.exp(value);
314
+ break;
315
+ case "scale_2":
316
+ scale[2] = Math.exp(value);
317
+ break;
318
+ case "red":
319
+ case "diffuse_red":
320
+ rgba[0] = value;
321
+ break;
322
+ case "green":
323
+ case "diffuse_green":
324
+ rgba[1] = value;
325
+ break;
326
+ case "blue":
327
+ case "diffuse_blue":
328
+ rgba[2] = value;
329
+ break;
330
+ case "f_dc_0":
331
+ rgba[0] = (0.5 + SH_C0 * value) * 255;
332
+ break;
333
+ case "f_dc_1":
334
+ rgba[1] = (0.5 + SH_C0 * value) * 255;
335
+ break;
336
+ case "f_dc_2":
337
+ rgba[2] = (0.5 + SH_C0 * value) * 255;
338
+ break;
339
+ case "f_dc_3":
340
+ rgba[3] = (0.5 + SH_C0 * value) * 255;
341
+ break;
342
+ case "opacity":
343
+ rgba[3] = 1 / (1 + Math.exp(-value)) * 255;
344
+ break;
345
+ case "rot_0":
346
+ r0 = value;
347
+ break;
348
+ case "rot_1":
349
+ r1 = value;
350
+ break;
351
+ case "rot_2":
352
+ r2 = value;
353
+ break;
354
+ case "rot_3":
355
+ r3 = value;
356
+ break;
357
+ default:
358
+ if (plySH && prop.name.startsWith("f_rest_")) {
359
+ const shIdx = parseInt(prop.name.slice(7), 10);
360
+ plySH[shIdx] = clamp255(value * 127.5 + 127.5);
361
+ }
362
+ break;
363
+ }
364
+ }
365
+ if (plySH && header.shProps.length > 0) {
366
+ for (let k = 0; k < header.shCoefficientCount; k++) {
367
+ const b = dv.getUint8(shBlockBase + i * header.shCoefficientCount + k);
368
+ plySH[k] = clamp255((b * (8 / 255) - 4) * 127.5 + 127.5);
369
+ }
370
+ }
371
+ if (plySH && shFlat) {
372
+ for (let j = 0; j < shDim; j++) {
373
+ shFlat[i * header.shCoefficientCount + j * 3 + 0] = plySH[j];
374
+ shFlat[i * header.shCoefficientCount + j * 3 + 1] = plySH[j + shDim];
375
+ shFlat[i * header.shCoefficientCount + j * 3 + 2] = plySH[j + shDim * 2];
376
+ }
377
+ }
378
+ const len = Math.hypot(r0, r1, r2, r3) || 1;
379
+ const inv = 1 / len;
380
+ rot[0] = r0 * inv * 127.5 + 127.5;
381
+ rot[1] = r1 * inv * 127.5 + 127.5;
382
+ rot[2] = r2 * inv * 127.5 + 127.5;
383
+ rot[3] = r3 * inv * 127.5 + 127.5;
384
+ offsetRef.value += header.rowVertexLength;
385
+ }
386
+ if (shFlat && header.shDegree) {
387
+ return { data: out, sh: shFlat, shDegree: header.shDegree };
388
+ }
389
+ return { data: out };
390
+ }
391
+ export {
392
+ convertCompressedPlyToParsedSplat
393
+ };
394
+ //# sourceMappingURL=splat-ply-compressed-BahdBG1r.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splat-ply-compressed-BahdBG1r.js","sources":["../src/loader-splat/splat-ply-compressed.ts"],"sourcesContent":["/** Compressed-PLY + SH parser (separate from `splat-ply-parser.ts` so the\n * standard PLY path stays small enough to fit scene 120's bundle ceiling).\n *\n * Compressed PLY layout (BJS / PlayCanvas convention):\n * • `element chunk K` — K records of 12 floats:\n * min_x..z, max_x..z, min_scale_*, max_scale_*, min_r..b, max_r..b\n * • `element vertex N` — N rows of `packed_position`/`_rotation`/`_scale`/\n * `_color` (uint32 each); chunkIndex = `vertexIndex >> 8`.\n * • `element sh M` — properties define SH bytes laid out in a\n * *trailing* block (absolute offset `chunkBytes + vertexBytes`).\n *\n * Standard PLY with per-vertex `f_rest_*` properties also routes through\n * this parser so SH evaluation stays paired with the rest of the SH\n * pipeline.\n *\n * Returns the same `ParsedSplat` contract as `convertPlyToSplat` (flat SH\n * byte layout — see `splat-data.ts` for the exact convention). */\n\nimport type { ParsedSplat } from \"./splat-data.js\";\n\nconst SH_C0 = 0.28209479177387814;\nconst SQRT2 = Math.SQRT2;\nconst ROW_OUTPUT_LENGTH = 32;\n\nconst TYPE_SIZE: Record<string, number> = { double: 8, int: 4, uint: 4, float: 4, short: 2, ushort: 2, uchar: 1 };\n\nconst enum Section {\n Vertex = 0,\n Chunk = 1,\n SH = 2,\n Unused = 3,\n}\n\ninterface PlyProp {\n name: string;\n type: string;\n offset: number;\n}\n\ninterface PlyHeader {\n vertexCount: number;\n chunkCount: number;\n rowVertexLength: number;\n rowChunkLength: number;\n vertexProps: PlyProp[];\n chunkProps: PlyProp[];\n shProps: PlyProp[];\n shDegree: number;\n shCoefficientCount: number;\n dataStart: number;\n}\n\nfunction shDegreeForIndex(i: number): number {\n if (i >= 71) {\n return 4;\n }\n if (i >= 44) {\n return 3;\n }\n if (i >= 23) {\n return 2;\n }\n if (i >= 8) {\n return 1;\n }\n return 0;\n}\n\nfunction parseHeader(data: ArrayBuffer): PlyHeader | null {\n const headerText = new TextDecoder().decode(new Uint8Array(data, 0, Math.min(data.byteLength, 1024 * 10)));\n const headerEnd = \"end_header\\n\";\n const idx = headerText.indexOf(headerEnd);\n if (idx < 0) {\n return null;\n }\n const vmatch = /element vertex (\\d+)\\n/.exec(headerText);\n if (!vmatch) {\n return null;\n }\n const vertexCount = parseInt(vmatch[1]!, 10);\n const cmatch = /element chunk (\\d+)\\n/.exec(headerText);\n const chunkCount = cmatch ? parseInt(cmatch[1]!, 10) : 0;\n let section: Section = Section.Chunk;\n let rowVertex = 0;\n let rowChunk = 0;\n const vertexProps: PlyProp[] = [];\n const chunkProps: PlyProp[] = [];\n const shProps: PlyProp[] = [];\n let shDegree = 0;\n for (const line of headerText.slice(0, idx).split(\"\\n\")) {\n if (line.startsWith(\"element \")) {\n const [, kind] = line.split(\" \");\n section = kind === \"chunk\" ? Section.Chunk : kind === \"vertex\" ? Section.Vertex : kind === \"sh\" ? Section.SH : Section.Unused;\n continue;\n }\n if (!line.startsWith(\"property \")) {\n continue;\n }\n const [, type, name] = line.split(\" \");\n if (!type || !name || TYPE_SIZE[type] === undefined) {\n return null;\n }\n const sz = TYPE_SIZE[type]!;\n if (section === Section.Chunk) {\n chunkProps.push({ name, type, offset: rowChunk });\n rowChunk += sz;\n } else if (section === Section.Vertex) {\n vertexProps.push({ name, type, offset: rowVertex });\n rowVertex += sz;\n if (name.startsWith(\"f_rest_\")) {\n shDegree = Math.max(shDegree, shDegreeForIndex(parseInt(name.slice(7), 10)));\n }\n } else if (section === Section.SH) {\n shProps.push({ name, type, offset: 0 });\n if (name.startsWith(\"f_rest_\")) {\n shDegree = Math.max(shDegree, shDegreeForIndex(parseInt(name.slice(7), 10)));\n }\n }\n }\n const shCoefficientCount = shDegree ? ((shDegree + 1) * (shDegree + 1) - 1) * 3 : 0;\n return {\n vertexCount,\n chunkCount,\n rowVertexLength: rowVertex,\n rowChunkLength: rowChunk,\n vertexProps,\n chunkProps,\n shProps,\n shDegree,\n shCoefficientCount,\n dataStart: idx + headerEnd.length,\n };\n}\n\ninterface CompressedChunk {\n minX: number;\n minY: number;\n minZ: number;\n maxX: number;\n maxY: number;\n maxZ: number;\n minSX: number;\n minSY: number;\n minSZ: number;\n maxSX: number;\n maxSY: number;\n maxSZ: number;\n minR: number;\n minG: number;\n minB: number;\n maxR: number;\n maxG: number;\n maxB: number;\n}\n\nfunction readChunks(header: PlyHeader, dv: DataView, offsetRef: { value: number }): CompressedChunk[] {\n const out: CompressedChunk[] = [];\n for (let i = 0; i < header.chunkCount; i++) {\n const c: CompressedChunk = {\n minX: 0,\n minY: 0,\n minZ: 0,\n maxX: 0,\n maxY: 0,\n maxZ: 0,\n minSX: 0,\n minSY: 0,\n minSZ: 0,\n maxSX: 0,\n maxSY: 0,\n maxSZ: 0,\n minR: 0,\n minG: 0,\n minB: 0,\n maxR: 1,\n maxG: 1,\n maxB: 1,\n };\n for (const p of header.chunkProps) {\n if (p.type !== \"float\") {\n continue;\n }\n const v = dv.getFloat32(offsetRef.value + p.offset, true);\n switch (p.name) {\n case \"min_x\":\n c.minX = v;\n break;\n case \"min_y\":\n c.minY = v;\n break;\n case \"min_z\":\n c.minZ = v;\n break;\n case \"max_x\":\n c.maxX = v;\n break;\n case \"max_y\":\n c.maxY = v;\n break;\n case \"max_z\":\n c.maxZ = v;\n break;\n case \"min_scale_x\":\n c.minSX = v;\n break;\n case \"min_scale_y\":\n c.minSY = v;\n break;\n case \"min_scale_z\":\n c.minSZ = v;\n break;\n case \"max_scale_x\":\n c.maxSX = v;\n break;\n case \"max_scale_y\":\n c.maxSY = v;\n break;\n case \"max_scale_z\":\n c.maxSZ = v;\n break;\n case \"min_r\":\n c.minR = v;\n break;\n case \"min_g\":\n c.minG = v;\n break;\n case \"min_b\":\n c.minB = v;\n break;\n case \"max_r\":\n c.maxR = v;\n break;\n case \"max_g\":\n c.maxG = v;\n break;\n case \"max_b\":\n c.maxB = v;\n break;\n }\n }\n out.push(c);\n offsetRef.value += header.rowChunkLength;\n }\n return out;\n}\n\nconst lerp = (a: number, b: number, t: number): number => a + (b - a) * t;\nconst clamp255 = (v: number): number => (v < 0 ? 0 : v > 255 ? 255 : v);\n\n/** Unpack a uint32 as 11-10-11 bits → three normalized floats in [0,1]. */\nfunction unpack111011(value: number, out: [number, number, number]): void {\n out[0] = ((value >>> 21) & 0x7ff) / 0x7ff;\n out[1] = ((value >>> 11) & 0x3ff) / 0x3ff;\n out[2] = (value & 0x7ff) / 0x7ff;\n}\n\n/** Unpack a uint32 as 4 bytes (R,G,B,A normalized to [0,1]). */\nfunction unpack8888(value: number, out: [number, number, number, number]): void {\n out[0] = ((value >>> 24) & 0xff) / 0xff;\n out[1] = ((value >>> 16) & 0xff) / 0xff;\n out[2] = ((value >>> 8) & 0xff) / 0xff;\n out[3] = (value & 0xff) / 0xff;\n}\n\n/** Unpack a uint32 as (2-bit largest index, 3×10-bit components). Returns\n * quaternion as [x, y, z, w] matching BJS `Quaternion.set(x, y, z, w)`. */\nfunction unpackRot(value: number, out: [number, number, number, number]): void {\n const norm = 1.0 / (SQRT2 * 0.5);\n const a = (((value >>> 20) & 0x3ff) / 0x3ff - 0.5) * norm;\n const b = (((value >>> 10) & 0x3ff) / 0x3ff - 0.5) * norm;\n const c = ((value & 0x3ff) / 0x3ff - 0.5) * norm;\n const m = Math.sqrt(Math.max(0, 1.0 - (a * a + b * b + c * c)));\n switch (value >>> 30) {\n case 0:\n out[0] = a;\n out[1] = b;\n out[2] = c;\n out[3] = m;\n break;\n case 1:\n out[0] = m;\n out[1] = b;\n out[2] = c;\n out[3] = a;\n break;\n case 2:\n out[0] = b;\n out[1] = m;\n out[2] = c;\n out[3] = a;\n break;\n default:\n out[0] = b;\n out[1] = c;\n out[2] = m;\n out[3] = a;\n break;\n }\n}\n\n/** Decode a compressed PLY (or a standard PLY with `f_rest_*` SH properties)\n * into a `ParsedSplat`. Dynamic-imported from `load-splat.ts` when\n * `isPlyCompressedOrSH(data)` is true, so the standard-PLY path remains\n * bundle-lean. */\nexport function convertCompressedPlyToParsedSplat(data: ArrayBuffer): ParsedSplat {\n const header = parseHeader(data);\n if (!header) {\n return { data };\n }\n\n const isCompressed = header.chunkCount > 0;\n const dv = new DataView(data, header.dataStart);\n const out = new ArrayBuffer(ROW_OUTPUT_LENGTH * header.vertexCount);\n\n const tmpPos: [number, number, number] = [0, 0, 0];\n const tmpScl: [number, number, number] = [0, 0, 0];\n const tmpRgba: [number, number, number, number] = [0, 0, 0, 0];\n const tmpQuat: [number, number, number, number] = [0, 0, 0, 1];\n\n const offsetRef = { value: 0 };\n const chunks = isCompressed ? readChunks(header, dv, offsetRef) : null;\n\n const shFlat = header.shDegree && header.shCoefficientCount ? new Uint8Array(header.shCoefficientCount * header.vertexCount) : null;\n const shBlockBase = header.rowChunkLength * header.chunkCount + header.vertexCount * header.rowVertexLength;\n const shDim = header.shCoefficientCount / 3;\n\n for (let i = 0; i < header.vertexCount; i++) {\n const position = new Float32Array(out, i * ROW_OUTPUT_LENGTH, 3);\n const scale = new Float32Array(out, i * ROW_OUTPUT_LENGTH + 12, 3);\n const rgba = new Uint8ClampedArray(out, i * ROW_OUTPUT_LENGTH + 24, 4);\n const rot = new Uint8ClampedArray(out, i * ROW_OUTPUT_LENGTH + 28, 4);\n const chunk = chunks ? chunks[i >> 8] : null;\n\n let r0 = 255,\n r1 = 0,\n r2 = 0,\n r3 = 0;\n const plySH = shFlat ? new Array<number>(header.shCoefficientCount) : null;\n\n for (const prop of header.vertexProps) {\n let value: number;\n switch (prop.type) {\n case \"float\":\n value = dv.getFloat32(offsetRef.value + prop.offset, true);\n break;\n case \"int\":\n value = dv.getInt32(offsetRef.value + prop.offset, true);\n break;\n case \"uint\":\n value = dv.getUint32(offsetRef.value + prop.offset, true);\n break;\n case \"uchar\":\n value = dv.getUint8(offsetRef.value + prop.offset);\n break;\n case \"short\":\n value = dv.getInt16(offsetRef.value + prop.offset, true);\n break;\n case \"ushort\":\n value = dv.getUint16(offsetRef.value + prop.offset, true);\n break;\n case \"double\":\n value = dv.getFloat64(offsetRef.value + prop.offset, true);\n break;\n default:\n continue;\n }\n switch (prop.name) {\n case \"packed_position\":\n unpack111011(value, tmpPos);\n position[0] = lerp(chunk!.minX, chunk!.maxX, tmpPos[0]);\n position[1] = lerp(chunk!.minY, chunk!.maxY, tmpPos[1]);\n position[2] = lerp(chunk!.minZ, chunk!.maxZ, tmpPos[2]);\n break;\n case \"packed_rotation\":\n unpackRot(value, tmpQuat);\n r0 = tmpQuat[3];\n r1 = tmpQuat[0];\n r2 = tmpQuat[1];\n r3 = tmpQuat[2];\n break;\n case \"packed_scale\":\n unpack111011(value, tmpScl);\n scale[0] = Math.exp(lerp(chunk!.minSX, chunk!.maxSX, tmpScl[0]));\n scale[1] = Math.exp(lerp(chunk!.minSY, chunk!.maxSY, tmpScl[1]));\n scale[2] = Math.exp(lerp(chunk!.minSZ, chunk!.maxSZ, tmpScl[2]));\n break;\n case \"packed_color\":\n unpack8888(value, tmpRgba);\n rgba[0] = lerp(chunk!.minR, chunk!.maxR, tmpRgba[0]) * 255;\n rgba[1] = lerp(chunk!.minG, chunk!.maxG, tmpRgba[1]) * 255;\n rgba[2] = lerp(chunk!.minB, chunk!.maxB, tmpRgba[2]) * 255;\n rgba[3] = tmpRgba[3] * 255;\n break;\n case \"x\":\n position[0] = value;\n break;\n case \"y\":\n position[1] = value;\n break;\n case \"z\":\n position[2] = value;\n break;\n case \"scale_0\":\n scale[0] = Math.exp(value);\n break;\n case \"scale_1\":\n scale[1] = Math.exp(value);\n break;\n case \"scale_2\":\n scale[2] = Math.exp(value);\n break;\n case \"red\":\n case \"diffuse_red\":\n rgba[0] = value;\n break;\n case \"green\":\n case \"diffuse_green\":\n rgba[1] = value;\n break;\n case \"blue\":\n case \"diffuse_blue\":\n rgba[2] = value;\n break;\n case \"f_dc_0\":\n rgba[0] = (0.5 + SH_C0 * value) * 255;\n break;\n case \"f_dc_1\":\n rgba[1] = (0.5 + SH_C0 * value) * 255;\n break;\n case \"f_dc_2\":\n rgba[2] = (0.5 + SH_C0 * value) * 255;\n break;\n case \"f_dc_3\":\n rgba[3] = (0.5 + SH_C0 * value) * 255;\n break;\n case \"opacity\":\n rgba[3] = (1 / (1 + Math.exp(-value))) * 255;\n break;\n case \"rot_0\":\n r0 = value;\n break;\n case \"rot_1\":\n r1 = value;\n break;\n case \"rot_2\":\n r2 = value;\n break;\n case \"rot_3\":\n r3 = value;\n break;\n default:\n if (plySH && prop.name.startsWith(\"f_rest_\")) {\n const shIdx = parseInt(prop.name.slice(7), 10);\n plySH[shIdx] = clamp255(value * 127.5 + 127.5);\n }\n break;\n }\n }\n\n // Compressed PLY: SH bytes live in a trailing block keyed by splat\n // index. Uchar dequant uses BJS's `(v * 8/255 - 4) * 127.5 + 127.5`\n // (different from the standard f_rest float path).\n if (plySH && header.shProps.length > 0) {\n for (let k = 0; k < header.shCoefficientCount; k++) {\n const b = dv.getUint8(shBlockBase + i * header.shCoefficientCount + k);\n plySH[k] = clamp255((b * (8 / 255) - 4) * 127.5 + 127.5);\n }\n }\n\n // PLY stores SH as [R0..R(d-1), G0..G(d-1), B0..B(d-1)]; transpose to\n // the BJS-coefficient layout `[R0,G0,B0, R1,G1,B1, …]`.\n if (plySH && shFlat) {\n for (let j = 0; j < shDim; j++) {\n shFlat[i * header.shCoefficientCount + j * 3 + 0] = plySH[j]!;\n shFlat[i * header.shCoefficientCount + j * 3 + 1] = plySH[j + shDim]!;\n shFlat[i * header.shCoefficientCount + j * 3 + 2] = plySH[j + shDim * 2]!;\n }\n }\n\n const len = Math.hypot(r0, r1, r2, r3) || 1;\n const inv = 1 / len;\n rot[0] = r0 * inv * 127.5 + 127.5;\n rot[1] = r1 * inv * 127.5 + 127.5;\n rot[2] = r2 * inv * 127.5 + 127.5;\n rot[3] = r3 * inv * 127.5 + 127.5;\n\n offsetRef.value += header.rowVertexLength;\n }\n\n if (shFlat && header.shDegree) {\n return { data: out, sh: shFlat, shDegree: header.shDegree };\n }\n return { data: out };\n}\n"],"names":[],"mappings":"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"}