@3driseai/3drise-viewer 0.1.26 → 0.1.27

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 (456) hide show
  1. package/dist/animationsV2/ClipPlayer.d.ts +3 -0
  2. package/dist/animationsV2/ClipPlayer.d.ts.map +1 -1
  3. package/dist/animationsV2/ClipPlayer.js +67 -8
  4. package/dist/animationsV2/ClipsRuntime.d.ts +39 -0
  5. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  6. package/dist/animationsV2/ClipsRuntime.js +245 -14
  7. package/dist/animationsV2/appliers.d.ts +5 -0
  8. package/dist/animationsV2/appliers.d.ts.map +1 -1
  9. package/dist/animationsV2/appliers.js +25 -7
  10. package/dist/animationsV2/index.d.ts +1 -1
  11. package/dist/animationsV2/index.d.ts.map +1 -1
  12. package/dist/animationsV2/normalize.d.ts.map +1 -1
  13. package/dist/animationsV2/normalize.js +18 -7
  14. package/dist/animationsV2/sequenceUtils.d.ts +42 -1
  15. package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
  16. package/dist/animationsV2/sequenceUtils.js +103 -3
  17. package/dist/animationsV2/types.d.ts +20 -0
  18. package/dist/animationsV2/types.d.ts.map +1 -1
  19. package/dist/components/AdvancedGrid.d.ts +8 -2
  20. package/dist/components/AdvancedGrid.d.ts.map +1 -1
  21. package/dist/components/AdvancedGrid.js +31 -14
  22. package/dist/components/AnimatedObject.d.ts.map +1 -1
  23. package/dist/components/AnimatedObject.js +7 -5
  24. package/dist/components/Bubbles.d.ts +7 -1
  25. package/dist/components/Bubbles.d.ts.map +1 -1
  26. package/dist/components/Bubbles.js +42 -22
  27. package/dist/components/ChladniGrid.d.ts +8 -4
  28. package/dist/components/ChladniGrid.d.ts.map +1 -1
  29. package/dist/components/ChladniGrid.js +31 -13
  30. package/dist/components/CircuitGrid.d.ts +8 -11
  31. package/dist/components/CircuitGrid.d.ts.map +1 -1
  32. package/dist/components/CircuitGrid.js +31 -13
  33. package/dist/components/CloudsGenerator.d.ts +1 -1
  34. package/dist/components/CloudsGenerator.js +1 -1
  35. package/dist/components/ContourGrid.d.ts +8 -14
  36. package/dist/components/ContourGrid.d.ts.map +1 -1
  37. package/dist/components/ContourGrid.js +31 -13
  38. package/dist/components/EffectsGenerator.d.ts +7 -1
  39. package/dist/components/EffectsGenerator.d.ts.map +1 -1
  40. package/dist/components/EffectsGenerator.js +39 -38
  41. package/dist/components/EnvironmentManager.d.ts +4 -4
  42. package/dist/components/EnvironmentManager.d.ts.map +1 -1
  43. package/dist/components/FlowNetGrid.d.ts +8 -4
  44. package/dist/components/FlowNetGrid.d.ts.map +1 -1
  45. package/dist/components/FlowNetGrid.js +31 -13
  46. package/dist/components/FractalGrid.d.ts +8 -12
  47. package/dist/components/FractalGrid.d.ts.map +1 -1
  48. package/dist/components/FractalGrid.js +31 -13
  49. package/dist/components/GirihGrid.d.ts +8 -1
  50. package/dist/components/GirihGrid.d.ts.map +1 -1
  51. package/dist/components/GirihGrid.js +31 -13
  52. package/dist/components/Glyphs.d.ts +7 -1
  53. package/dist/components/Glyphs.d.ts.map +1 -1
  54. package/dist/components/Glyphs.js +40 -34
  55. package/dist/components/GravWaveGrid.d.ts +8 -1
  56. package/dist/components/GravWaveGrid.d.ts.map +1 -1
  57. package/dist/components/GravWaveGrid.js +31 -13
  58. package/dist/components/GridsGenerator.d.ts +7 -1
  59. package/dist/components/GridsGenerator.d.ts.map +1 -1
  60. package/dist/components/GridsGenerator.js +20 -18
  61. package/dist/components/HexGrid.d.ts +8 -10
  62. package/dist/components/HexGrid.d.ts.map +1 -1
  63. package/dist/components/HexGrid.js +31 -13
  64. package/dist/components/HyperbolicGrid.d.ts +8 -4
  65. package/dist/components/HyperbolicGrid.d.ts.map +1 -1
  66. package/dist/components/HyperbolicGrid.js +31 -13
  67. package/dist/components/LandscapeBuilder.d.ts +1 -1
  68. package/dist/components/LandscapeBuilder.d.ts.map +1 -1
  69. package/dist/components/LandscapeBuilder.js +1 -1
  70. package/dist/components/LandscapeObject.d.ts +1 -1
  71. package/dist/components/LandscapeObject.d.ts.map +1 -1
  72. package/dist/components/LandscapeObject.js +1 -1
  73. package/dist/components/MoireGrid.d.ts +8 -12
  74. package/dist/components/MoireGrid.d.ts.map +1 -1
  75. package/dist/components/MoireGrid.js +31 -13
  76. package/dist/components/ObjectNode.d.ts.map +1 -1
  77. package/dist/components/ObjectNode.js +2 -2
  78. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  79. package/dist/components/ObjectsRenderer.js +37 -3
  80. package/dist/components/OceanBuilder.d.ts +1 -1
  81. package/dist/components/OceanBuilder.js +1 -1
  82. package/dist/components/ParticlesGenerator.d.ts.map +1 -1
  83. package/dist/components/ParticlesGenerator.js +6 -0
  84. package/dist/components/QuasiGrid.d.ts +8 -11
  85. package/dist/components/QuasiGrid.d.ts.map +1 -1
  86. package/dist/components/QuasiGrid.js +31 -13
  87. package/dist/components/RadarGrid.d.ts +8 -13
  88. package/dist/components/RadarGrid.d.ts.map +1 -1
  89. package/dist/components/RadarGrid.js +31 -13
  90. package/dist/components/ReactionDiffusionGrid.d.ts +8 -1
  91. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
  92. package/dist/components/ReactionDiffusionGrid.js +33 -139
  93. package/dist/components/SceneBuilder.js +1 -1
  94. package/dist/components/SkySystem.d.ts +1 -1
  95. package/dist/components/SparklesBurst.d.ts +7 -1
  96. package/dist/components/SparklesBurst.d.ts.map +1 -1
  97. package/dist/components/SparklesBurst.js +31 -28
  98. package/dist/components/TerrainBuilder.d.ts +1 -1
  99. package/dist/components/TerrainBuilder.d.ts.map +1 -1
  100. package/dist/components/TerrainBuilder.js +1 -1
  101. package/dist/components/VoronoiGrid.d.ts +8 -10
  102. package/dist/components/VoronoiGrid.d.ts.map +1 -1
  103. package/dist/components/VoronoiGrid.js +31 -13
  104. package/dist/components/WallpaperGrid.d.ts +8 -1
  105. package/dist/components/WallpaperGrid.d.ts.map +1 -1
  106. package/dist/components/WallpaperGrid.js +33 -210
  107. package/dist/components/effects/AuraEffect.d.ts +8 -3
  108. package/dist/components/effects/AuraEffect.d.ts.map +1 -1
  109. package/dist/components/effects/AuraEffect.js +49 -24
  110. package/dist/components/effects/AuroraEffect.d.ts +8 -3
  111. package/dist/components/effects/AuroraEffect.d.ts.map +1 -1
  112. package/dist/components/effects/AuroraEffect.js +45 -25
  113. package/dist/components/effects/BlackHoleEffect.d.ts +8 -3
  114. package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -1
  115. package/dist/components/effects/BlackHoleEffect.js +42 -21
  116. package/dist/components/effects/ConstellationEffect.d.ts +8 -3
  117. package/dist/components/effects/ConstellationEffect.d.ts.map +1 -1
  118. package/dist/components/effects/ConstellationEffect.js +49 -23
  119. package/dist/components/effects/DandelionSeedsEffect.d.ts +7 -2
  120. package/dist/components/effects/DandelionSeedsEffect.d.ts.map +1 -1
  121. package/dist/components/effects/DandelionSeedsEffect.js +19 -9
  122. package/dist/components/effects/DataStreamEffect.d.ts +8 -3
  123. package/dist/components/effects/DataStreamEffect.d.ts.map +1 -1
  124. package/dist/components/effects/DataStreamEffect.js +54 -26
  125. package/dist/components/effects/DnaHelixEffect.d.ts +8 -3
  126. package/dist/components/effects/DnaHelixEffect.d.ts.map +1 -1
  127. package/dist/components/effects/DnaHelixEffect.js +62 -30
  128. package/dist/components/effects/FallingLeavesEffect.d.ts +7 -2
  129. package/dist/components/effects/FallingLeavesEffect.d.ts.map +1 -1
  130. package/dist/components/effects/FallingLeavesEffect.js +19 -9
  131. package/dist/components/effects/FieldLinesEffect.d.ts +8 -3
  132. package/dist/components/effects/FieldLinesEffect.d.ts.map +1 -1
  133. package/dist/components/effects/FieldLinesEffect.js +30 -20
  134. package/dist/components/effects/Fire.d.ts +8 -3
  135. package/dist/components/effects/Fire.d.ts.map +1 -1
  136. package/dist/components/effects/Fire.js +47 -10
  137. package/dist/components/effects/FireflySwarmEffect.d.ts +7 -2
  138. package/dist/components/effects/FireflySwarmEffect.d.ts.map +1 -1
  139. package/dist/components/effects/FireflySwarmEffect.js +19 -9
  140. package/dist/components/effects/Flares.d.ts +10 -3
  141. package/dist/components/effects/Flares.d.ts.map +1 -1
  142. package/dist/components/effects/Flares.js +53 -56
  143. package/dist/components/effects/ForcefieldEffect.d.ts +8 -3
  144. package/dist/components/effects/ForcefieldEffect.d.ts.map +1 -1
  145. package/dist/components/effects/ForcefieldEffect.js +52 -33
  146. package/dist/components/effects/GalaxyEffect.d.ts +7 -2
  147. package/dist/components/effects/GalaxyEffect.d.ts.map +1 -1
  148. package/dist/components/effects/GalaxyEffect.js +19 -9
  149. package/dist/components/effects/HarmonicShellEffect.d.ts +8 -3
  150. package/dist/components/effects/HarmonicShellEffect.d.ts.map +1 -1
  151. package/dist/components/effects/HarmonicShellEffect.js +30 -22
  152. package/dist/components/effects/HologramEffect.d.ts +8 -3
  153. package/dist/components/effects/HologramEffect.d.ts.map +1 -1
  154. package/dist/components/effects/HologramEffect.js +52 -23
  155. package/dist/components/effects/IceCrystalsEffect.d.ts +8 -3
  156. package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -1
  157. package/dist/components/effects/IceCrystalsEffect.js +36 -21
  158. package/dist/components/effects/IceHaloEffect.d.ts +7 -2
  159. package/dist/components/effects/IceHaloEffect.d.ts.map +1 -1
  160. package/dist/components/effects/IceHaloEffect.js +19 -9
  161. package/dist/components/effects/LichtenbergEffect.d.ts +7 -2
  162. package/dist/components/effects/LichtenbergEffect.d.ts.map +1 -1
  163. package/dist/components/effects/LichtenbergEffect.js +19 -9
  164. package/dist/components/effects/LightningEffect.d.ts +8 -3
  165. package/dist/components/effects/LightningEffect.d.ts.map +1 -1
  166. package/dist/components/effects/LightningEffect.js +54 -32
  167. package/dist/components/effects/MoleculesEffect.d.ts +8 -3
  168. package/dist/components/effects/MoleculesEffect.d.ts.map +1 -1
  169. package/dist/components/effects/MoleculesEffect.js +31 -21
  170. package/dist/components/effects/MurmurationEffect.d.ts +7 -2
  171. package/dist/components/effects/MurmurationEffect.d.ts.map +1 -1
  172. package/dist/components/effects/MurmurationEffect.js +19 -9
  173. package/dist/components/effects/NeuralNetworkEffect.d.ts +8 -3
  174. package/dist/components/effects/NeuralNetworkEffect.d.ts.map +1 -1
  175. package/dist/components/effects/NeuralNetworkEffect.js +66 -33
  176. package/dist/components/effects/OrbEffect.d.ts +8 -3
  177. package/dist/components/effects/OrbEffect.d.ts.map +1 -1
  178. package/dist/components/effects/OrbEffect.js +89 -42
  179. package/dist/components/effects/PlanetaryRingsEffect.d.ts +7 -2
  180. package/dist/components/effects/PlanetaryRingsEffect.d.ts.map +1 -1
  181. package/dist/components/effects/PlanetaryRingsEffect.js +19 -9
  182. package/dist/components/effects/PortalEffect.d.ts +8 -3
  183. package/dist/components/effects/PortalEffect.d.ts.map +1 -1
  184. package/dist/components/effects/PortalEffect.js +41 -25
  185. package/dist/components/effects/ShockwaveEffect.d.ts +7 -2
  186. package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -1
  187. package/dist/components/effects/ShockwaveEffect.js +19 -9
  188. package/dist/components/effects/SmokePlumeEffect.d.ts +8 -3
  189. package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -1
  190. package/dist/components/effects/SmokePlumeEffect.js +30 -20
  191. package/dist/components/effects/SmokeRibbon.d.ts +8 -2
  192. package/dist/components/effects/SmokeRibbon.d.ts.map +1 -1
  193. package/dist/components/effects/SmokeRibbon.js +34 -24
  194. package/dist/components/effects/SmokeRingEffect.d.ts +8 -3
  195. package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -1
  196. package/dist/components/effects/SmokeRingEffect.js +33 -21
  197. package/dist/components/effects/StrangeAttractorEffect.d.ts +8 -3
  198. package/dist/components/effects/StrangeAttractorEffect.d.ts.map +1 -1
  199. package/dist/components/effects/StrangeAttractorEffect.js +30 -20
  200. package/dist/components/effects/VolumetricFogEffect.d.ts +8 -3
  201. package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -1
  202. package/dist/components/effects/VolumetricFogEffect.js +38 -20
  203. package/dist/components/effects/WaterCausticsEffect.d.ts +7 -2
  204. package/dist/components/effects/WaterCausticsEffect.d.ts.map +1 -1
  205. package/dist/components/effects/WaterCausticsEffect.js +19 -9
  206. package/dist/components/effects/index.d.ts +0 -1
  207. package/dist/components/effects/index.d.ts.map +1 -1
  208. package/dist/components/effects/index.js +0 -1
  209. package/dist/components/index.d.ts +0 -1
  210. package/dist/components/index.d.ts.map +1 -1
  211. package/dist/components/index.js +0 -1
  212. package/dist/components/landscape/LandscapeMesh.js +1 -1
  213. package/dist/components/landscape/types.d.ts +1 -1
  214. package/dist/components/landscape/types.d.ts.map +1 -1
  215. package/dist/components/particles/MagneticBottleParticles.d.ts +17 -0
  216. package/dist/components/particles/MagneticBottleParticles.d.ts.map +1 -0
  217. package/dist/components/particles/MagneticBottleParticles.js +618 -0
  218. package/dist/components/particles/ShapeBurstParticles.d.ts +17 -0
  219. package/dist/components/particles/ShapeBurstParticles.d.ts.map +1 -0
  220. package/dist/components/particles/ShapeBurstParticles.js +588 -0
  221. package/dist/components/particles/ShapeFlowParticles.d.ts +17 -0
  222. package/dist/components/particles/ShapeFlowParticles.d.ts.map +1 -0
  223. package/dist/components/particles/ShapeFlowParticles.js +755 -0
  224. package/dist/components/particles/index.d.ts +6 -0
  225. package/dist/components/particles/index.d.ts.map +1 -1
  226. package/dist/components/particles/index.js +3 -0
  227. package/dist/components/terrain/types.d.ts +1 -1
  228. package/dist/components/terrain/types.d.ts.map +1 -1
  229. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +1 -1
  230. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
  231. package/dist/components/volumetricClouds/types.d.ts +1 -1
  232. package/dist/components/volumetricClouds/types.d.ts.map +1 -1
  233. package/dist/components/water/types.d.ts +1 -1
  234. package/dist/components/water/types.d.ts.map +1 -1
  235. package/dist/constants.d.ts +1 -1
  236. package/dist/constants.d.ts.map +1 -1
  237. package/dist/constants.js +1 -1
  238. package/dist/hooks/index.d.ts +2 -0
  239. package/dist/hooks/index.d.ts.map +1 -1
  240. package/dist/hooks/index.js +1 -0
  241. package/dist/hooks/useConfigDriver.d.ts +22 -0
  242. package/dist/hooks/useConfigDriver.d.ts.map +1 -0
  243. package/dist/hooks/useConfigDriver.js +43 -0
  244. package/dist/hooks/useConfigLive.d.ts +1 -1
  245. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  246. package/dist/hooks/useLandscapeMaps.d.ts +1 -1
  247. package/dist/hooks/useLandscapeMaps.d.ts.map +1 -1
  248. package/dist/hooks/useOceanMaterial.d.ts +1 -1
  249. package/dist/hooks/useThunder.d.ts +1 -1
  250. package/dist/index.d.ts +1 -2
  251. package/dist/index.d.ts.map +1 -1
  252. package/dist/index.js +1 -2
  253. package/dist/interactions/index.d.ts +2 -1
  254. package/dist/interactions/index.d.ts.map +1 -1
  255. package/dist/interactions/index.js +1 -1
  256. package/dist/interactions/runner.d.ts +18 -3
  257. package/dist/interactions/runner.d.ts.map +1 -1
  258. package/dist/interactions/runner.js +25 -2
  259. package/dist/operations/catalogue/curlSmoke.d.ts +3 -0
  260. package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -0
  261. package/dist/operations/catalogue/curlSmoke.js +178 -0
  262. package/dist/operations/catalogue/displayImage.d.ts.map +1 -1
  263. package/dist/operations/catalogue/displayImage.js +1 -0
  264. package/dist/operations/catalogue/dissolve.d.ts +3 -0
  265. package/dist/operations/catalogue/dissolve.d.ts.map +1 -0
  266. package/dist/operations/catalogue/dissolve.js +57 -0
  267. package/dist/operations/catalogue/emberAsh.d.ts +3 -0
  268. package/dist/operations/catalogue/emberAsh.d.ts.map +1 -0
  269. package/dist/operations/catalogue/emberAsh.js +171 -0
  270. package/dist/operations/catalogue/fade.d.ts.map +1 -1
  271. package/dist/operations/catalogue/fade.js +1 -0
  272. package/dist/operations/catalogue/flip.d.ts +3 -0
  273. package/dist/operations/catalogue/flip.d.ts.map +1 -0
  274. package/dist/operations/catalogue/flip.js +69 -0
  275. package/dist/operations/catalogue/flock.d.ts +3 -0
  276. package/dist/operations/catalogue/flock.d.ts.map +1 -0
  277. package/dist/operations/catalogue/flock.js +163 -0
  278. package/dist/operations/catalogue/focus.d.ts.map +1 -1
  279. package/dist/operations/catalogue/focus.js +1 -0
  280. package/dist/operations/catalogue/frame.d.ts +3 -0
  281. package/dist/operations/catalogue/frame.d.ts.map +1 -0
  282. package/dist/operations/catalogue/frame.js +44 -0
  283. package/dist/operations/catalogue/frost.d.ts +3 -0
  284. package/dist/operations/catalogue/frost.d.ts.map +1 -0
  285. package/dist/operations/catalogue/frost.js +111 -0
  286. package/dist/operations/catalogue/fxInstances.d.ts +21 -0
  287. package/dist/operations/catalogue/fxInstances.d.ts.map +1 -0
  288. package/dist/operations/catalogue/fxInstances.js +47 -0
  289. package/dist/operations/catalogue/fxPoints.d.ts +22 -0
  290. package/dist/operations/catalogue/fxPoints.d.ts.map +1 -0
  291. package/dist/operations/catalogue/fxPoints.js +70 -0
  292. package/dist/operations/catalogue/glow.d.ts.map +1 -1
  293. package/dist/operations/catalogue/glow.js +2 -1
  294. package/dist/operations/catalogue/heatCracks.d.ts +3 -0
  295. package/dist/operations/catalogue/heatCracks.d.ts.map +1 -0
  296. package/dist/operations/catalogue/heatCracks.js +134 -0
  297. package/dist/operations/catalogue/hologram.d.ts +3 -0
  298. package/dist/operations/catalogue/hologram.d.ts.map +1 -0
  299. package/dist/operations/catalogue/hologram.js +118 -0
  300. package/dist/operations/catalogue/inkBloom.d.ts +3 -0
  301. package/dist/operations/catalogue/inkBloom.d.ts.map +1 -0
  302. package/dist/operations/catalogue/inkBloom.js +156 -0
  303. package/dist/operations/catalogue/ivy.d.ts +13 -0
  304. package/dist/operations/catalogue/ivy.d.ts.map +1 -0
  305. package/dist/operations/catalogue/ivy.js +469 -0
  306. package/dist/operations/catalogue/jelly.d.ts +3 -0
  307. package/dist/operations/catalogue/jelly.d.ts.map +1 -0
  308. package/dist/operations/catalogue/jelly.js +50 -0
  309. package/dist/operations/catalogue/kintsugi.d.ts +3 -0
  310. package/dist/operations/catalogue/kintsugi.d.ts.map +1 -0
  311. package/dist/operations/catalogue/kintsugi.js +173 -0
  312. package/dist/operations/catalogue/lidarScan.d.ts +3 -0
  313. package/dist/operations/catalogue/lidarScan.d.ts.map +1 -0
  314. package/dist/operations/catalogue/lidarScan.js +240 -0
  315. package/dist/operations/catalogue/liquidMetal.d.ts +3 -0
  316. package/dist/operations/catalogue/liquidMetal.d.ts.map +1 -0
  317. package/dist/operations/catalogue/liquidMetal.js +122 -0
  318. package/dist/operations/catalogue/metalize.d.ts +3 -0
  319. package/dist/operations/catalogue/metalize.d.ts.map +1 -0
  320. package/dist/operations/catalogue/metalize.js +135 -0
  321. package/dist/operations/catalogue/moveToFront.d.ts.map +1 -1
  322. package/dist/operations/catalogue/moveToFront.js +1 -0
  323. package/dist/operations/catalogue/orbit.d.ts +3 -0
  324. package/dist/operations/catalogue/orbit.d.ts.map +1 -0
  325. package/dist/operations/catalogue/orbit.js +29 -0
  326. package/dist/operations/catalogue/particleSwarm.d.ts +3 -0
  327. package/dist/operations/catalogue/particleSwarm.d.ts.map +1 -0
  328. package/dist/operations/catalogue/particleSwarm.js +138 -0
  329. package/dist/operations/catalogue/petalPeel.d.ts +3 -0
  330. package/dist/operations/catalogue/petalPeel.d.ts.map +1 -0
  331. package/dist/operations/catalogue/petalPeel.js +137 -0
  332. package/dist/operations/catalogue/petrify.d.ts +3 -0
  333. package/dist/operations/catalogue/petrify.d.ts.map +1 -0
  334. package/dist/operations/catalogue/petrify.js +94 -0
  335. package/dist/operations/catalogue/portal.d.ts +3 -0
  336. package/dist/operations/catalogue/portal.d.ts.map +1 -0
  337. package/dist/operations/catalogue/portal.js +224 -0
  338. package/dist/operations/catalogue/print3d.d.ts +3 -0
  339. package/dist/operations/catalogue/print3d.d.ts.map +1 -0
  340. package/dist/operations/catalogue/print3d.js +275 -0
  341. package/dist/operations/catalogue/rainBeads.d.ts +3 -0
  342. package/dist/operations/catalogue/rainBeads.d.ts.map +1 -0
  343. package/dist/operations/catalogue/rainBeads.js +223 -0
  344. package/dist/operations/catalogue/restPose.d.ts +21 -0
  345. package/dist/operations/catalogue/restPose.d.ts.map +1 -0
  346. package/dist/operations/catalogue/restPose.js +55 -0
  347. package/dist/operations/catalogue/rimLight.d.ts +3 -0
  348. package/dist/operations/catalogue/rimLight.d.ts.map +1 -0
  349. package/dist/operations/catalogue/rimLight.js +72 -0
  350. package/dist/operations/catalogue/sandErosion.d.ts +3 -0
  351. package/dist/operations/catalogue/sandErosion.d.ts.map +1 -0
  352. package/dist/operations/catalogue/sandErosion.js +167 -0
  353. package/dist/operations/catalogue/shaderLayers.d.ts +74 -0
  354. package/dist/operations/catalogue/shaderLayers.d.ts.map +1 -0
  355. package/dist/operations/catalogue/shaderLayers.js +322 -0
  356. package/dist/operations/catalogue/shatter.d.ts +3 -0
  357. package/dist/operations/catalogue/shatter.d.ts.map +1 -0
  358. package/dist/operations/catalogue/shatter.js +267 -0
  359. package/dist/operations/catalogue/silkDrape.d.ts +3 -0
  360. package/dist/operations/catalogue/silkDrape.d.ts.map +1 -0
  361. package/dist/operations/catalogue/silkDrape.js +340 -0
  362. package/dist/operations/catalogue/spin.d.ts +3 -0
  363. package/dist/operations/catalogue/spin.d.ts.map +1 -0
  364. package/dist/operations/catalogue/spin.js +42 -0
  365. package/dist/operations/catalogue/surfaceSample.d.ts +17 -0
  366. package/dist/operations/catalogue/surfaceSample.d.ts.map +1 -0
  367. package/dist/operations/catalogue/surfaceSample.js +187 -0
  368. package/dist/operations/catalogue/swirl.d.ts +3 -0
  369. package/dist/operations/catalogue/swirl.d.ts.map +1 -0
  370. package/dist/operations/catalogue/swirl.js +69 -0
  371. package/dist/operations/catalogue/teleport.d.ts +3 -0
  372. package/dist/operations/catalogue/teleport.d.ts.map +1 -0
  373. package/dist/operations/catalogue/teleport.js +213 -0
  374. package/dist/operations/catalogue/transitionField.d.ts +124 -0
  375. package/dist/operations/catalogue/transitionField.d.ts.map +1 -0
  376. package/dist/operations/catalogue/transitionField.js +278 -0
  377. package/dist/operations/catalogue/unweave.d.ts +3 -0
  378. package/dist/operations/catalogue/unweave.d.ts.map +1 -0
  379. package/dist/operations/catalogue/unweave.js +233 -0
  380. package/dist/operations/catalogue/visibility.d.ts.map +1 -1
  381. package/dist/operations/catalogue/visibility.js +1 -0
  382. package/dist/operations/catalogue/voxelize.d.ts +3 -0
  383. package/dist/operations/catalogue/voxelize.d.ts.map +1 -0
  384. package/dist/operations/catalogue/voxelize.js +148 -0
  385. package/dist/operations/catalogue/warmup.d.ts +22 -0
  386. package/dist/operations/catalogue/warmup.d.ts.map +1 -0
  387. package/dist/operations/catalogue/warmup.js +106 -0
  388. package/dist/operations/catalogue/zoom.d.ts.map +1 -1
  389. package/dist/operations/catalogue/zoom.js +1 -0
  390. package/dist/operations/index.d.ts +4 -2
  391. package/dist/operations/index.d.ts.map +1 -1
  392. package/dist/operations/index.js +4 -2
  393. package/dist/operations/objectEffects.d.ts +46 -0
  394. package/dist/operations/objectEffects.d.ts.map +1 -0
  395. package/dist/operations/objectEffects.js +136 -0
  396. package/dist/operations/registry.d.ts +7 -2
  397. package/dist/operations/registry.d.ts.map +1 -1
  398. package/dist/operations/registry.js +45 -3
  399. package/dist/operations/runtime.d.ts +40 -2
  400. package/dist/operations/runtime.d.ts.map +1 -1
  401. package/dist/operations/runtime.js +164 -8
  402. package/dist/operations/types.d.ts +29 -3
  403. package/dist/operations/types.d.ts.map +1 -1
  404. package/dist/operations/types.js +6 -0
  405. package/dist/operations/useObjectEffectLayers.d.ts +4 -0
  406. package/dist/operations/useObjectEffectLayers.d.ts.map +1 -0
  407. package/dist/operations/useObjectEffectLayers.js +42 -0
  408. package/dist/operations/useOperationsRuntime.d.ts.map +1 -1
  409. package/dist/operations/useOperationsRuntime.js +42 -4
  410. package/dist/presets/landscapePresets.d.ts +1 -1
  411. package/dist/presets/landscapePresets.d.ts.map +1 -1
  412. package/dist/presets/landscapePresets.js +1 -1
  413. package/dist/presets/landscapeTypes.d.ts +1 -1
  414. package/dist/presets/landscapeTypes.d.ts.map +1 -1
  415. package/dist/presets/landscapeTypes.js +1 -1
  416. package/dist/presets/oceanSurfacePresets.d.ts +1 -1
  417. package/dist/presets/terrainPresets.d.ts +1 -1
  418. package/dist/presets/terrainPresets.d.ts.map +1 -1
  419. package/dist/presets/volumetricCloudPresets.d.ts +1 -1
  420. package/dist/types/cloudConfigs.d.ts +2 -309
  421. package/dist/types/cloudConfigs.d.ts.map +1 -1
  422. package/dist/types/cloudConfigs.js +2 -339
  423. package/dist/types/index.d.ts +8 -8
  424. package/dist/types/index.d.ts.map +1 -1
  425. package/dist/types/index.js +4 -4
  426. package/dist/types/landscapeConfigs.d.ts +2 -217
  427. package/dist/types/landscapeConfigs.d.ts.map +1 -1
  428. package/dist/types/landscapeConfigs.js +2 -256
  429. package/dist/types/oceanConfigs.d.ts +2 -289
  430. package/dist/types/oceanConfigs.d.ts.map +1 -1
  431. package/dist/types/oceanConfigs.js +2 -380
  432. package/dist/types/terrainConfigs.d.ts +2 -250
  433. package/dist/types/terrainConfigs.d.ts.map +1 -1
  434. package/dist/types/terrainConfigs.js +2 -292
  435. package/dist/utils/cloudUniforms.d.ts +1 -1
  436. package/dist/utils/configAnimations.d.ts +6 -0
  437. package/dist/utils/configAnimations.d.ts.map +1 -1
  438. package/dist/utils/configAnimations.js +14 -0
  439. package/dist/utils/gridConfig.d.ts +19 -0
  440. package/dist/utils/gridConfig.d.ts.map +1 -0
  441. package/dist/utils/gridConfig.js +52 -0
  442. package/dist/utils/handleCloudsAnimations.d.ts +1 -1
  443. package/dist/utils/handleCloudsAnimations.js +1 -1
  444. package/dist/utils/hasHoverAnimation.d.ts.map +1 -1
  445. package/dist/utils/hasHoverAnimation.js +0 -2
  446. package/dist/utils/landscapeUniforms.d.ts +1 -1
  447. package/dist/utils/landscapeUniforms.d.ts.map +1 -1
  448. package/dist/utils/oceanUniforms.d.ts +1 -1
  449. package/dist/utils/particleShape.d.ts +33 -0
  450. package/dist/utils/particleShape.d.ts.map +1 -0
  451. package/dist/utils/particleShape.js +207 -0
  452. package/dist/utils/particleTrails.d.ts.map +1 -1
  453. package/dist/utils/particleTrails.js +29 -14
  454. package/dist/utils/terrainUniforms.d.ts +1 -1
  455. package/dist/utils/terrainUniforms.d.ts.map +1 -1
  456. package/package.json +2 -2
@@ -1,292 +1,2 @@
1
- /**
2
- * Config shapes for the procedural terrain system that lives in this package.
3
- *
4
- * Declared locally rather than in `@3driseai/3drise-core`, alongside
5
- * `cloudConfigs.ts` and `gridConfigs.ts`, because the material and the renderer
6
- * are here and nothing outside the viewer needs to construct these by hand.
7
- *
8
- * Core's `TerrainSettings` is the retired flat shape (`visible` +
9
- * `displacementScale`) and is deliberately left alone: a saved project still
10
- * carries it, and `normalizeTerrain` below is what turns one into nothing rather
11
- * than into a mountain range the scene was never authored with.
12
- *
13
- * A terrain is ONE landform model with per-type shaping, not four renderers —
14
- * the same way three of the four cloud types share one marcher. What separates
15
- * mountains from dunes is the operator applied to the fBm and the numbers around
16
- * it, so the type is a config field the shader branches on.
17
- */
18
- // -----------------------------------------------------------------------------
19
- // Defaults
20
- // -----------------------------------------------------------------------------
21
- const surfaceBase = {
22
- elevation: 1200,
23
- seaLevel: 0,
24
- featureSize: 2600,
25
- octaves: 9,
26
- lacunarity: 2.06,
27
- gain: 0.52,
28
- ridgeSharpness: 0.62,
29
- warpStrength: 0.28,
30
- warpSize: 0.6,
31
- erosion: 0.7,
32
- terraces: 0,
33
- terraceSharpness: 0.6,
34
- bearing: 78,
35
- duneWavelength: 320,
36
- duneAsymmetry: 0.6,
37
- plateau: 0,
38
- valleyDepth: 0,
39
- valleyWidth: 0.25,
40
- lowColor: '#4a4636',
41
- midColor: '#6b6248',
42
- rockColor: '#6a6259',
43
- peakColor: '#eef1f6',
44
- slopeRockStart: 0.35,
45
- slopeRockEnd: 0.62,
46
- peakLevel: 0.62,
47
- peakBlend: 0.12,
48
- peakSlopeFalloff: 1.4,
49
- macroVariation: 0.22,
50
- macroSize: 2400,
51
- detailStrength: 0.45,
52
- detailSize: 9,
53
- roughness: 0.82,
54
- specular: 0.06,
55
- ambient: 1,
56
- bounce: 0.35,
57
- sunShadow: 1,
58
- shadowSoftness: 12,
59
- aerialPerspective: 0.00007,
60
- };
61
- export const defaultMountainsConfig = {
62
- ...surfaceBase,
63
- type: 'terrain',
64
- terrainType: 'mountains',
65
- preset: '',
66
- enabled: true,
67
- };
68
- export const defaultHillsConfig = {
69
- ...surfaceBase,
70
- type: 'terrain',
71
- terrainType: 'hills',
72
- preset: '',
73
- enabled: true,
74
- elevation: 300,
75
- featureSize: 2200,
76
- octaves: 8,
77
- gain: 0.46,
78
- ridgeSharpness: 0.05,
79
- warpStrength: 0.35,
80
- erosion: 0.45,
81
- lowColor: '#3f5326',
82
- midColor: '#55663a',
83
- rockColor: '#7a7266',
84
- peakColor: '#8d9a6a',
85
- slopeRockStart: 0.5,
86
- slopeRockEnd: 0.78,
87
- peakLevel: 0.78,
88
- peakBlend: 0.2,
89
- macroVariation: 0.3,
90
- macroSize: 1400,
91
- detailStrength: 0.5,
92
- detailSize: 6,
93
- roughness: 0.9,
94
- specular: 0.03,
95
- aerialPerspective: 0.00009,
96
- };
97
- export const defaultDunesConfig = {
98
- ...surfaceBase,
99
- type: 'terrain',
100
- terrainType: 'dunes',
101
- preset: '',
102
- enabled: true,
103
- elevation: 150,
104
- featureSize: 3000,
105
- octaves: 6,
106
- gain: 0.42,
107
- ridgeSharpness: 0.15,
108
- warpStrength: 0.2,
109
- warpSize: 0.8,
110
- erosion: 0.2,
111
- duneWavelength: 340,
112
- duneAsymmetry: 0.62,
113
- lowColor: '#b08a53',
114
- midColor: '#d6b077',
115
- rockColor: '#9c7a4c',
116
- peakColor: '#f0dcb4',
117
- slopeRockStart: 0.62,
118
- slopeRockEnd: 0.9,
119
- peakLevel: 0.7,
120
- peakBlend: 0.24,
121
- peakSlopeFalloff: 0.6,
122
- macroVariation: 0.14,
123
- macroSize: 3600,
124
- detailStrength: 0.3,
125
- detailSize: 3.5,
126
- roughness: 0.55,
127
- specular: 0.16,
128
- ambient: 1.1,
129
- bounce: 0.55,
130
- shadowSoftness: 22,
131
- aerialPerspective: 0.00008,
132
- };
133
- export const defaultCanyonConfig = {
134
- ...surfaceBase,
135
- type: 'terrain',
136
- terrainType: 'canyon',
137
- preset: '',
138
- enabled: true,
139
- elevation: 700,
140
- featureSize: 2600,
141
- octaves: 8,
142
- gain: 0.48,
143
- ridgeSharpness: 0.3,
144
- warpStrength: 0.18,
145
- erosion: 0.85,
146
- terraces: 14,
147
- terraceSharpness: 0.72,
148
- plateau: 0.55,
149
- valleyDepth: 0.8,
150
- valleyWidth: 0.22,
151
- lowColor: '#7a4a30',
152
- midColor: '#a4643c',
153
- rockColor: '#c07a4a',
154
- peakColor: '#d9a877',
155
- slopeRockStart: 0.28,
156
- slopeRockEnd: 0.5,
157
- peakLevel: 0.72,
158
- peakBlend: 0.08,
159
- peakSlopeFalloff: 0.9,
160
- macroVariation: 0.26,
161
- macroSize: 1800,
162
- detailStrength: 0.4,
163
- detailSize: 7,
164
- roughness: 0.86,
165
- specular: 0.05,
166
- shadowSoftness: 8,
167
- aerialPerspective: 0.000075,
168
- };
169
- export const defaultTerrainQuality = {
170
- levels: 9,
171
- segments: 128,
172
- cellSize: 2,
173
- curvature: 1 / (2 * 6371000),
174
- shadowSteps: 12,
175
- shadowDistance: 5000,
176
- detailFadeDistance: 1200,
177
- receiveShadows: true,
178
- exposure: 1,
179
- wireframe: false,
180
- };
181
- /** Per-type defaults, for the controller's type switcher. */
182
- export const TERRAIN_DEFAULTS = {
183
- mountains: defaultMountainsConfig,
184
- dunes: defaultDunesConfig,
185
- hills: defaultHillsConfig,
186
- canyon: defaultCanyonConfig,
187
- };
188
- export const TERRAIN_SCHEMA = [
189
- { key: 'elevation', label: 'Elevation', group: 'form', min: 5, max: 6000, step: 5, unit: 'm', description: 'Peak height above sea level. Every height-keyed splat threshold is a fraction of this, so raising it does not move the snow line.' },
190
- { key: 'seaLevel', label: 'Sea level', group: 'form', min: -2000, max: 2000, step: 5, unit: 'm', description: 'World Y the terrain is built around — where flat ground sits, and where a placed object meets it.' },
191
- { key: 'featureSize', label: 'Feature size', group: 'form', min: 200, max: 40000, step: 50, unit: 'm', description: 'Horizontal size of the primary landform. The one knob that decides whether this reads as a mountain range or a gravel pile.' },
192
- { key: 'octaves', label: 'Octaves', group: 'form', min: 3, max: 12, step: 1, description: 'fBm detail levels. Past ~10 the extra octaves are finer than the closest clipmap cell and only cost; distant rings drop them automatically.' },
193
- { key: 'lacunarity', label: 'Lacunarity', group: 'form', min: 1.7, max: 2.6, step: 0.01, advanced: true, description: 'Frequency step per octave. Slightly off 2.0 breaks the grid alignment that otherwise shows as a faint square lattice.' },
194
- { key: 'gain', label: 'Gain', group: 'form', min: 0.25, max: 0.72, step: 0.005, description: 'Amplitude step per octave. Below 0.5 smooth and rolling, above it jagged and fractal.' },
195
- { key: 'ridgeSharpness', label: 'Ridge sharpness', group: 'form', min: 0, max: 1, step: 0.005, description: '0 gives rounded billow hills, 1 knife ridges. The strongest single cue between a mountain and a dune field.' },
196
- { key: 'warpStrength', label: 'Domain warp', group: 'form', min: 0, max: 1, step: 0.005, description: 'Bends ridge lines into curved, branching shapes. At 0 the silhouette reads as noise rather than landscape.' },
197
- { key: 'warpSize', label: 'Warp size', group: 'form', min: 0.1, max: 2, step: 0.01, advanced: true, description: 'Scale of the warp field relative to feature size. Above ~1 it drifts the terrain instead of bending it.' },
198
- { key: 'erosion', label: 'Erosion', group: 'form', min: 0, max: 1, step: 0.005, description: 'Damps octaves where slope is already steep — flattens valley floors, sharpens flanks. The cheapest approximation of erosion there is.' },
199
- { key: 'terraces', label: 'Strata', group: 'form', min: 0, max: 40, step: 1, types: ['canyon', 'mountains'], description: 'Sedimentary banding step count. 0 is off. Most of what makes a mesa read as a mesa.' },
200
- { key: 'terraceSharpness', label: 'Strata hardness', group: 'form', min: 0, max: 1, step: 0.01, types: ['canyon', 'mountains'], description: '0 is a smooth ramp between bands, 1 a near-vertical riser.' },
201
- { key: 'plateau', label: 'Plateau', group: 'form', min: 0, max: 1, step: 0.005, types: ['canyon'], description: 'Fraction of the height range flattened into mesa tops.' },
202
- { key: 'valleyDepth', label: 'Incision depth', group: 'form', min: 0, max: 1.5, step: 0.005, types: ['canyon'], description: 'Depth of the carved channel network as a fraction of elevation. At 0 the mesas have nothing between them.' },
203
- { key: 'valleyWidth', label: 'Incision width', group: 'form', min: 0.03, max: 1, step: 0.005, types: ['canyon'], description: 'Narrow cuts slot canyons; wide ones cut broad washes.' },
204
- { key: 'bearing', label: 'Wind bearing', group: 'form', min: 0, max: 360, step: 1, unit: 'deg', types: ['dunes'], description: 'Dunes are transverse to the wind, so this rotates the whole crest train.' },
205
- { key: 'duneWavelength', label: 'Dune wavelength', group: 'form', min: 40, max: 2000, step: 5, unit: 'm', types: ['dunes'], description: 'Crest-to-crest distance of the dune train.' },
206
- { key: 'duneAsymmetry', label: 'Slip face', group: 'form', min: 0, max: 1, step: 0.005, types: ['dunes'], description: 'Lee-slope steepening. At 0 the dunes are sine waves; real ones have a long windward ramp and a short face at the angle of repose.' },
207
- { key: 'slopeRockStart', label: 'Rock from slope', group: 'surface', min: 0, max: 1, step: 0.005, description: 'Slope at which rock starts showing through. Splatting rock by slope rather than height is what makes a cliff read as a cliff at any altitude.' },
208
- { key: 'slopeRockEnd', label: 'Bare rock at slope', group: 'surface', min: 0, max: 1, step: 0.005, description: 'Slope at which the surface is fully bare rock.' },
209
- { key: 'peakLevel', label: 'Peak line', group: 'surface', min: 0, max: 1, step: 0.005, description: 'Height fraction where the peak layer (snow, salt, bleached stone) begins.' },
210
- { key: 'peakBlend', label: 'Peak blend', group: 'surface', min: 0.01, max: 0.5, step: 0.005, description: 'Width of that transition. A hard line is physically right for temperature but reads as a decal.' },
211
- { key: 'peakSlopeFalloff', label: 'Peak slope falloff', group: 'surface', min: 0, max: 3, step: 0.01, description: 'Peak coverage lost per unit slope. Snow does not sit on a vertical face; without this a summit looks dipped in paint.' },
212
- { key: 'macroVariation', label: 'Macro variation', group: 'surface', min: 0, max: 1, step: 0.005, description: 'Large-scale albedo break-up. Without it a splat layer is one flat colour across kilometres and reads as untextured.' },
213
- { key: 'macroSize', label: 'Macro size', group: 'surface', min: 200, max: 12000, step: 50, unit: 'm', description: 'Size of that variation.' },
214
- { key: 'detailStrength', label: 'Detail bump', group: 'surface', min: 0, max: 1.5, step: 0.005, description: 'High-frequency normal detail added per fragment — bumps far below the mesh resolution.' },
215
- { key: 'detailSize', label: 'Detail size', group: 'surface', min: 0.5, max: 60, step: 0.25, unit: 'm', description: 'Size of that detail. Below about a metre it aliases before it fades.' },
216
- { key: 'roughness', label: 'Roughness', group: 'surface', min: 0.05, max: 1, step: 0.005, description: 'Widens the specular lobe. Rock is nearly matte; wet sand and snow are not.' },
217
- { key: 'specular', label: 'Specular', group: 'surface', min: 0, max: 1, step: 0.005, description: 'Specular strength. The grazing sheen on sand at low sun comes from here.' },
218
- { key: 'ambient', label: 'Ambient', group: 'lighting', min: 0, max: 3, step: 0.01, description: 'Sky-dome fill, taken from the same atmosphere the sky and clouds use, so it darkens and warms as the sun sets instead of freezing.' },
219
- { key: 'bounce', label: 'Ground bounce', group: 'lighting', min: 0, max: 2, step: 0.01, description: 'Fill on downward-facing surfaces, tinted by the low colour. Keeps overhangs and north faces off pure black.' },
220
- { key: 'sunShadow', label: 'Self shadow', group: 'lighting', min: 0, max: 1, step: 0.01, description: 'Strength of the analytic shadow marched down the sun vector. This is what puts a mountain shadow in its own valley, with no shadow-map resolution to run out of.' },
221
- { key: 'shadowSoftness', label: 'Shadow softness', group: 'lighting', min: 1, max: 60, step: 0.5, description: 'Penumbra width of that shadow. Larger reads as a hazier day.' },
222
- { key: 'aerialPerspective', label: 'Aerial perspective', group: 'lighting', min: 0, max: 0.0004, step: 0.000002, unit: '1/m', description: 'Rate distant terrain fades into the sky behind it. The main cue for how large the landscape reads, and what makes the horizon a horizon rather than a cut-out.' },
223
- ];
224
- export const TERRAIN_QUALITY_SCHEMA = [
225
- { key: 'levels', label: 'Clipmap levels', group: 'quality', min: 2, max: 12, step: 1, description: 'Each ring doubles its cell size, so visible radius is roughly cellSize x segments x 2^(levels-1). 9 levels of 192 at 2 m reaches ~98 km, which is past where haze has dissolved the ground.' },
226
- { key: 'segments', label: 'Ring resolution', group: 'quality', min: 32, max: 320, step: 8, description: 'Grid resolution per ring side, and the one knob that sets how polygonal the terrain looks: a clipmap triangle subtends about 2/segments radians whatever the distance, so 192 is roughly 12 px at 1080p. Vertex cost is levels x segments^2 x 0.75, since every ring above the first is hollow.' },
227
- { key: 'cellSize', label: 'Cell size', group: 'quality', min: 0.25, max: 32, step: 0.25, unit: 'm', description: 'Finest cell, at the camera. Lower it for a walkable scene, raise it for a flyover.' },
228
- { key: 'shadowSteps', label: 'Shadow steps', group: 'quality', min: 0, max: 48, step: 1, description: 'Steps in the analytic sun-shadow march, nearest the camera. 0 disables terrain self-shadowing entirely, which is the single biggest thing you can turn off; below ~12 long shadows at low sun start to leak.' },
229
- { key: 'shadowDistance', label: 'Shadow distance', group: 'quality', min: 0, max: 40000, step: 100, unit: 'm', description: 'Range over which the self-shadow fades out. The march runs per vertex, so lowering this drops whole clipmap rings out of it — the cheapest quality dial there is after turning shadows off.' },
230
- { key: 'detailFadeDistance', label: 'Detail fade distance', group: 'quality', min: 50, max: 8000, step: 25, unit: 'm', description: 'Distance over which fragment-stage bump fades out. Removes far-field shimmer and buys back most of its own cost.' },
231
- { key: 'curvature', label: 'Planetary curvature', group: 'quality', min: 0, max: 0.0000012, step: 0.00000001, advanced: true, description: '1/(2R). Drops the surface with the square of distance so it meets a real horizon. Zero gives a flat world, which at these extents looks wrong long before it looks flat.' },
232
- { key: 'exposure', label: 'Exposure', group: 'quality', min: 0.2, max: 4, step: 0.01, description: 'Radiance scale, so terrain matches the sky and clouds whether or not the cloud composite is what tonemaps the frame.' },
233
- ];
234
- export const defaultProceduralTerrainSettings = {
235
- id: '3drise-terrain',
236
- type: 'terrain',
237
- config: { ...defaultHillsConfig, enabled: false },
238
- quality: { ...defaultTerrainQuality },
239
- };
240
- // =============================================================================
241
- // Normalisation
242
- // =============================================================================
243
- //
244
- // A published scene loads whatever was in the database the day it was saved, and
245
- // a scene saved before this system existed carries core's flat TerrainSettings
246
- // (`visible` + `displacementScale`) under the same key. Reading that straight
247
- // into the renderer is how an embed dies: the clipmap sizes its rings from
248
- // `quality.segments` on its first frame.
249
- //
250
- // Each block merges over its own defaults SEPARATELY, not through one merge over
251
- // the settings object, so a quality edit does not hand the surface a new config
252
- // object and rebuild the clipmap geometry.
253
- const TERRAIN_TYPES = ['mountains', 'dunes', 'hills', 'canyon'];
254
- const isRecord = (v) => typeof v === 'object' && v !== null;
255
- /**
256
- * Surface block merged over its type's defaults, or null when there is nothing to
257
- * render — including the retired flat shape, which has no `config` and must draw
258
- * nothing rather than a landscape the project was never authored with.
259
- *
260
- * An unknown or missing `terrainType` falls back to hills rather than rendering
261
- * nothing: a scene that says `enabled: true` should show ground.
262
- */
263
- export function normalizeTerrain(raw) {
264
- if (!isRecord(raw))
265
- return null;
266
- const terrainType = TERRAIN_TYPES.includes(raw.terrainType)
267
- ? raw.terrainType
268
- : 'hills';
269
- return {
270
- ...TERRAIN_DEFAULTS[terrainType],
271
- ...raw,
272
- type: 'terrain',
273
- terrainType,
274
- };
275
- }
276
- export function normalizeTerrainQuality(raw) {
277
- return { ...defaultTerrainQuality, ...(isRecord(raw) ? raw : {}) };
278
- }
279
- /**
280
- * A whole settings blob, from a project of any age. The flat legacy shape has no
281
- * `config`, so it normalises to a disabled terrain rather than to a default one.
282
- */
283
- export function normalizeTerrainSettings(raw) {
284
- const source = isRecord(raw) ? raw : {};
285
- const config = normalizeTerrain(source.config);
286
- return {
287
- id: typeof source.id === 'string' ? source.id : defaultProceduralTerrainSettings.id,
288
- type: 'terrain',
289
- config: config ?? { ...defaultHillsConfig, enabled: false },
290
- quality: normalizeTerrainQuality(source.quality),
291
- };
292
- }
1
+ // Moved to @3driseai/3drise-core (src/environment/terrainConfigs.ts). Re-exported for existing viewer imports.
2
+ export { TERRAIN_DEFAULTS, TERRAIN_QUALITY_SCHEMA, TERRAIN_SCHEMA, defaultCanyonConfig, defaultDunesConfig, defaultHillsConfig, defaultMountainsConfig, defaultProceduralTerrainSettings, defaultTerrainQuality, normalizeTerrain, normalizeTerrainQuality, normalizeTerrainSettings, } from '@3driseai/3drise-core';
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import type { CloudDeckConfig, CirrusLayerConfig, CloudsQualityConfig, ThunderConfig } from '../types/cloudConfigs';
2
+ import type { CloudDeckConfig, CirrusLayerConfig, CloudsQualityConfig, ThunderConfig } from '@3driseai/3drise-core';
3
3
  import type { CloudSunState } from '../hooks/useCloudSun';
4
4
  export declare function applyDeckUniforms(material: THREE.ShaderMaterial, deck: CloudDeckConfig, quality: CloudsQualityConfig): void;
5
5
  /**
@@ -40,4 +40,10 @@ export declare function applyConfigMouseMove(properties: MouseMoveProperty[] | u
40
40
  export declare function hasConfigOverrides(override: ConfigOverride): boolean;
41
41
  /** Merge overrides into a config, returning the original when nothing is driving it. */
42
42
  export declare function resolveConfig<T extends object>(config: T, ...overrides: (ConfigOverride | undefined)[]): T;
43
+ /**
44
+ * The committed config laid over the type's defaults, skipping explicit `undefined`
45
+ * (a controller writing a cleared field), so every knob has a value to render and for a
46
+ * keyframe or pointer binding to interpolate from.
47
+ */
48
+ export declare function withConfigDefaults<D extends object, C extends object>(defaults: D, config: C | undefined | null): D & C;
43
49
  //# sourceMappingURL=configAnimations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configAnimations.d.ts","sourceRoot":"","sources":["../../src/utils/configAnimations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7D,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CACzC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAqBN;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAYN;AAED,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAGpE;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAK1G"}
1
+ {"version":3,"file":"configAnimations.d.ts","sourceRoot":"","sources":["../../src/utils/configAnimations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEjF;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7D,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CACzC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAqBN;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,IAAI,CAYN;AAED,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAGpE;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAK1G;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAMvH"}
@@ -71,3 +71,17 @@ export function resolveConfig(config, ...overrides) {
71
71
  return config;
72
72
  return Object.assign({}, config, ...overrides.filter(Boolean));
73
73
  }
74
+ /**
75
+ * The committed config laid over the type's defaults, skipping explicit `undefined`
76
+ * (a controller writing a cleared field), so every knob has a value to render and for a
77
+ * keyframe or pointer binding to interpolate from.
78
+ */
79
+ export function withConfigDefaults(defaults, config) {
80
+ const out = { ...defaults };
81
+ if (config) {
82
+ for (const [k, v] of Object.entries(config))
83
+ if (v !== undefined)
84
+ out[k] = v;
85
+ }
86
+ return out;
87
+ }
@@ -0,0 +1,19 @@
1
+ import type * as THREE from 'three';
2
+ /** Numeric uniforms every grid material has, named u_<key>. */
3
+ export declare const GRID_SURFACE_NUMERIC: readonly ["cellSize", "lineWidth", "sectionSize", "sectionWidth", "lineMode", "cellMode", "animSpeed", "animScale", "animIntensity", "fadeStrength", "displace", "bgOpacity"];
4
+ /** Colour uniforms every grid material has (THREE.Color values). */
5
+ export declare const GRID_SURFACE_COLORS: readonly ["lineColor", "sectionColor", "cellColor", "glowColor", "bgColor"];
6
+ /**
7
+ * Knobs that reshape the plane or pick a mode — never driven per frame. `displace`
8
+ * is here because the plane is only subdivided when it is > 0 at commit time, and
9
+ * `sectionSize` because it is a whole number of cells per accent group.
10
+ */
11
+ export declare const GRID_STRUCTURAL: readonly ["size", "flat", "segments", "displace", "lineMode", "cellMode", "sectionSize"];
12
+ /** A uniform computed from the config (a clamp, a rounding, an enum index, a bool as 0/1). */
13
+ export type GridDerive = Readonly<Record<string, (c: Record<string, any>) => number>>;
14
+ /**
15
+ * @param variant the grid's own numeric knobs, each pushed as-is to u_<key>
16
+ * @param derive the grid's computed uniforms: u_<key> = derive[key](config)
17
+ */
18
+ export declare function applyGridConfig(material: THREE.ShaderMaterial | null | undefined, c: Record<string, any>, variant: readonly string[], derive?: GridDerive): void;
19
+ //# sourceMappingURL=gridConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gridConfig.d.ts","sourceRoot":"","sources":["../../src/utils/gridConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAkBpC,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,+KAGvB,CAAC;AAEX,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,6EAA8E,CAAC;AAE/G;;;;GAIG;AACH,eAAO,MAAM,eAAe,0FAA2F,CAAC;AAIxH,8FAA8F;AAC9F,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAEtF;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,EACjD,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,MAAM,GAAE,UAAe,GACxB,IAAI,CASN"}
@@ -0,0 +1,52 @@
1
+ // =============================================================================
2
+ // applyGridConfig — the one push point for the shader-plane grids
3
+ // =============================================================================
4
+ //
5
+ // Every grid shares the GridSurfaceConfig vocabulary, and every material names its
6
+ // uniforms `u_<configKey>`, so one function pushes any grid's config: the shared
7
+ // surface knobs, the colours, plus the variant's own numeric knobs. Both the
8
+ // committed config (on mount / on commit) and the per-frame merged config
9
+ // (committed + live drag + keyframes + pointer, via useConfigDriver) go through
10
+ // here, so the two can never disagree about how a knob reaches the shader.
11
+ //
12
+ // What is *not* here: time, pointer NDC, focus and reveal — those are the host's,
13
+ // driven by useGridSurface — and `size` / `flat` / `segments`, which shape the
14
+ // plane geometry in JSX.
15
+ //
16
+ /** Numeric uniforms every grid material has, named u_<key>. */
17
+ export const GRID_SURFACE_NUMERIC = [
18
+ 'cellSize', 'lineWidth', 'sectionSize', 'sectionWidth', 'lineMode', 'cellMode',
19
+ 'animSpeed', 'animScale', 'animIntensity', 'fadeStrength', 'displace', 'bgOpacity',
20
+ ];
21
+ /** Colour uniforms every grid material has (THREE.Color values). */
22
+ export const GRID_SURFACE_COLORS = ['lineColor', 'sectionColor', 'cellColor', 'glowColor', 'bgColor'];
23
+ /**
24
+ * Knobs that reshape the plane or pick a mode — never driven per frame. `displace`
25
+ * is here because the plane is only subdivided when it is > 0 at commit time, and
26
+ * `sectionSize` because it is a whole number of cells per accent group.
27
+ */
28
+ export const GRID_STRUCTURAL = ['size', 'flat', 'segments', 'displace', 'lineMode', 'cellMode', 'sectionSize'];
29
+ /**
30
+ * @param variant the grid's own numeric knobs, each pushed as-is to u_<key>
31
+ * @param derive the grid's computed uniforms: u_<key> = derive[key](config)
32
+ */
33
+ export function applyGridConfig(material, c, variant, derive = {}) {
34
+ const u = material?.uniforms;
35
+ if (!u)
36
+ return;
37
+ for (const k of GRID_SURFACE_NUMERIC)
38
+ if (u['u_' + k] && c[k] !== undefined)
39
+ u['u_' + k].value = c[k];
40
+ for (const k of variant)
41
+ if (u['u_' + k] && c[k] !== undefined)
42
+ u['u_' + k].value = c[k];
43
+ for (const k in derive)
44
+ if (u['u_' + k])
45
+ u['u_' + k].value = derive[k](c);
46
+ // a pointer binding hands back a THREE.Color, the config a hex string: set() takes both
47
+ for (const k of GRID_SURFACE_COLORS)
48
+ if (u['u_' + k] && c[k] !== undefined)
49
+ u['u_' + k].value.set(c[k]);
50
+ if (u.u_fadeDistance)
51
+ u.u_fadeDistance.value = c.fadeDistance ?? c.size * 0.5;
52
+ }
@@ -1,5 +1,5 @@
1
1
  import type { AnimationOptions, MouseMoveProperty } from '@3driseai/3drise-core';
2
- import type { CloudDeckConfig } from '../types/cloudConfigs';
2
+ import type { CloudDeckConfig } from '@3driseai/3drise-core';
3
3
  export type CloudPropertyOverride = Partial<Record<string, number>>;
4
4
  /** Cache of the value a property started at, so `from`-less keyframes have an origin. */
5
5
  export type CloudStartValues = Record<string, number>;
@@ -1,5 +1,5 @@
1
1
  import { calculateTimeProgress, applyEasing, gsapEasingMap, interpolateValue, interpolateMouseMoveProperty, } from '@3driseai/3drise-core';
2
- import { CLOUD_ANIMATABLE_PROPERTIES } from '../types/cloudConfigs.js';
2
+ import { CLOUD_ANIMATABLE_PROPERTIES } from '@3driseai/3drise-core';
3
3
  /**
4
4
  * The `clouds` animation and mouse-move domains, applied to a deck config.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"hasHoverAnimation.d.ts","sourceRoot":"","sources":["../../src/utils/hasHoverAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAcnF"}
1
+ {"version":3,"file":"hasHoverAnimation.d.ts","sourceRoot":"","sources":["../../src/utils/hasHoverAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAYnF"}
@@ -9,7 +9,5 @@ export function hasHoverAnimation(animations) {
9
9
  return true;
10
10
  if (animations.edges?.animations?.some(a => a.triggerMode === 'hover'))
11
11
  return true;
12
- if (animations.effects?.animations?.some(a => a.triggerMode === 'hover'))
13
- return true;
14
12
  return false;
15
13
  }
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import type { LandscapeConfig, LandscapeQualityConfig } from '../types/landscapeConfigs';
2
+ import type { LandscapeConfig, LandscapeQualityConfig } from '@3driseai/3drise-core';
3
3
  import type { LandscapeUniforms } from '../shaders/landscape/LandscapeMaterial';
4
4
  export interface LandscapeMapUniforms {
5
5
  height: THREE.Texture | null;
@@ -1 +1 @@
1
- {"version":3,"file":"landscapeUniforms.d.ts","sourceRoot":"","sources":["../../src/utils/landscapeUniforms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAa/E,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,KAAK,CAAC,OAAO,CAAA;IACzB,oDAAoD;IACpD,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAA;IACtC,MAAM,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAA;IACrC,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC5B,EAAE,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;CACzB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAoBhG;AAED,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,sBAAsB,GAChC,IAAI,CAmDN"}
1
+ {"version":3,"file":"landscapeUniforms.d.ts","sourceRoot":"","sources":["../../src/utils/landscapeUniforms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAa/E,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,KAAK,CAAC,OAAO,CAAA;IACzB,oDAAoD;IACpD,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAA;IACtC,MAAM,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAA;IACrC,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IAC5B,EAAE,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;CACzB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAoBhG;AAED,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,sBAAsB,GAChC,IAAI,CAmDN"}
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import type { OceanConfig, OceanQualityConfig } from '../types/oceanConfigs';
2
+ import type { OceanConfig, OceanQualityConfig } from '@3driseai/3drise-core';
3
3
  export interface WaveTable {
4
4
  /** (dirX, dirZ, amplitude, wavenumber) */
5
5
  a: THREE.Vector4[];
@@ -0,0 +1,33 @@
1
+ import * as THREE from 'three';
2
+ import type { ParticleShapeConfig } from '@3driseai/3drise-core';
3
+ /** Mesh-builder units -> particle world units (the builders' defaults come out ~1.6 wide). */
4
+ export declare const SHAPE_SCALE = 1.6;
5
+ /** The shape with every parameter filled in from the builder defaults (unknown types -> cone). */
6
+ export declare function shapeConfig(shape?: Partial<ParticleShapeConfig> | null): ParticleShapeConfig;
7
+ /** Geometry of a shape, built by the core mesh builders, axis along y. The caller disposes it. */
8
+ export declare function shapeGeometry(shape?: Partial<ParticleShapeConfig> | null): THREE.BufferGeometry;
9
+ /** Radial map of a closed shape: R(theta, h) = distance from the y axis to the outermost surface,
10
+ * on an nTh x nH grid (slice the triangles at each height, cast rays in the slice). The axis goes
11
+ * through the vertex centroid (a tetrahedron's footprint is not centred on its bounding box). */
12
+ export declare function radialMap(geometry: THREE.BufferGeometry, nTh?: number, nH?: number): {
13
+ R: Float32Array<ArrayBuffer>;
14
+ ymin: number;
15
+ ymax: number;
16
+ nTh: number;
17
+ nH: number;
18
+ };
19
+ /** The shape as a surface field: R(theta, h) in world units (scale x builder units), centred on the
20
+ * origin. rAt(theta, h), rmAt(h) (mean radius), Y0..Y1, RW (widest mean), rMax (widest radius). */
21
+ export declare function shapeField(shape: Partial<ParticleShapeConfig> | null | undefined, scale?: number, nTh?: number, nH?: number): {
22
+ rAt: (th: number, h: number) => number;
23
+ rmAt: (h: number) => number;
24
+ Y0: number;
25
+ Y1: number;
26
+ RW: number;
27
+ rMax: number;
28
+ scale: number;
29
+ };
30
+ /** n points spread evenly over the shape's surface (area-weighted, stratified, shuffled so any prefix
31
+ * covers the whole shape), in the same world frame as shapeField. Returns Float32Array n*3. */
32
+ export declare function sampleSurface(shape: Partial<ParticleShapeConfig> | null | undefined, n: number, rng: () => number, scale?: number): Float32Array<ArrayBuffer>;
33
+ //# sourceMappingURL=particleShape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleShape.d.ts","sourceRoot":"","sources":["../../src/utils/particleShape.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,8FAA8F;AAC9F,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI,GAAG,mBAAmB,CAG5F;AAED,kGAAkG;AAClG,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,cAAc,CAgB/F;AAED;;kGAEkG;AAClG,wBAAgB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,EAAE,GAAG,SAAK,EAAE,EAAE,SAAK;;;;;;EA4C1E;AAED;oGACoG;AACpG,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,SAAc,EAAE,GAAG,SAAK,EAAE,EAAE,SAAK;cAwBtG,MAAM,KAAK,MAAM;cADjB,MAAM;;;;;;EAWxB;AAED;gGACgG;AAChG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,KAAK,SAAc,6BAyCtI"}