@3driseai/3drise-viewer 0.1.25 → 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 (509) hide show
  1. package/dist/animationsV2/ClipPlayer.d.ts +16 -0
  2. package/dist/animationsV2/ClipPlayer.d.ts.map +1 -0
  3. package/dist/animationsV2/ClipPlayer.js +199 -0
  4. package/dist/animationsV2/ClipsRuntime.d.ts +150 -0
  5. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -0
  6. package/dist/animationsV2/ClipsRuntime.js +707 -0
  7. package/dist/animationsV2/appliers.d.ts +21 -0
  8. package/dist/animationsV2/appliers.d.ts.map +1 -0
  9. package/dist/animationsV2/appliers.js +222 -0
  10. package/dist/animationsV2/clipUtils.d.ts +33 -0
  11. package/dist/animationsV2/clipUtils.d.ts.map +1 -0
  12. package/dist/animationsV2/clipUtils.js +164 -0
  13. package/dist/animationsV2/elementSettings.d.ts +15 -0
  14. package/dist/animationsV2/elementSettings.d.ts.map +1 -0
  15. package/dist/animationsV2/elementSettings.js +16 -0
  16. package/dist/animationsV2/index.d.ts +16 -0
  17. package/dist/animationsV2/index.d.ts.map +1 -0
  18. package/dist/animationsV2/index.js +12 -0
  19. package/dist/animationsV2/nodeTracks.d.ts +13 -0
  20. package/dist/animationsV2/nodeTracks.d.ts.map +1 -0
  21. package/dist/animationsV2/nodeTracks.js +165 -0
  22. package/dist/animationsV2/normalize.d.ts +4 -0
  23. package/dist/animationsV2/normalize.d.ts.map +1 -0
  24. package/dist/animationsV2/normalize.js +60 -0
  25. package/dist/animationsV2/sequenceUtils.d.ts +98 -0
  26. package/dist/animationsV2/sequenceUtils.d.ts.map +1 -0
  27. package/dist/animationsV2/sequenceUtils.js +220 -0
  28. package/dist/animationsV2/types.d.ts +115 -0
  29. package/dist/animationsV2/types.d.ts.map +1 -0
  30. package/dist/animationsV2/types.js +8 -0
  31. package/dist/api/sceneHandle.d.ts +56 -17
  32. package/dist/api/sceneHandle.d.ts.map +1 -1
  33. package/dist/api/sceneHandle.js +154 -77
  34. package/dist/components/AdvancedGrid.d.ts +8 -2
  35. package/dist/components/AdvancedGrid.d.ts.map +1 -1
  36. package/dist/components/AdvancedGrid.js +31 -14
  37. package/dist/components/AnimatedObject.d.ts.map +1 -1
  38. package/dist/components/AnimatedObject.js +7 -5
  39. package/dist/components/Bubbles.d.ts +7 -1
  40. package/dist/components/Bubbles.d.ts.map +1 -1
  41. package/dist/components/Bubbles.js +42 -22
  42. package/dist/components/CameraController.d.ts.map +1 -1
  43. package/dist/components/CameraController.js +0 -44
  44. package/dist/components/ChladniGrid.d.ts +8 -4
  45. package/dist/components/ChladniGrid.d.ts.map +1 -1
  46. package/dist/components/ChladniGrid.js +31 -13
  47. package/dist/components/CircuitGrid.d.ts +8 -11
  48. package/dist/components/CircuitGrid.d.ts.map +1 -1
  49. package/dist/components/CircuitGrid.js +31 -13
  50. package/dist/components/Clouds.d.ts.map +1 -1
  51. package/dist/components/Clouds.js +0 -34
  52. package/dist/components/CloudsGenerator.d.ts +1 -1
  53. package/dist/components/CloudsGenerator.js +1 -1
  54. package/dist/components/ContourGrid.d.ts +8 -14
  55. package/dist/components/ContourGrid.d.ts.map +1 -1
  56. package/dist/components/ContourGrid.js +31 -13
  57. package/dist/components/CreatedObject.d.ts.map +1 -1
  58. package/dist/components/CreatedObject.js +19 -1
  59. package/dist/components/EffectsGenerator.d.ts +7 -1
  60. package/dist/components/EffectsGenerator.d.ts.map +1 -1
  61. package/dist/components/EffectsGenerator.js +39 -38
  62. package/dist/components/EnvironmentManager.d.ts +4 -4
  63. package/dist/components/EnvironmentManager.d.ts.map +1 -1
  64. package/dist/components/EnvironmentManager.js +1 -1
  65. package/dist/components/FlowNetGrid.d.ts +8 -4
  66. package/dist/components/FlowNetGrid.d.ts.map +1 -1
  67. package/dist/components/FlowNetGrid.js +31 -13
  68. package/dist/components/FractalGrid.d.ts +8 -12
  69. package/dist/components/FractalGrid.d.ts.map +1 -1
  70. package/dist/components/FractalGrid.js +31 -13
  71. package/dist/components/GirihGrid.d.ts +8 -1
  72. package/dist/components/GirihGrid.d.ts.map +1 -1
  73. package/dist/components/GirihGrid.js +31 -13
  74. package/dist/components/Glyphs.d.ts +7 -1
  75. package/dist/components/Glyphs.d.ts.map +1 -1
  76. package/dist/components/Glyphs.js +40 -34
  77. package/dist/components/GravWaveGrid.d.ts +8 -1
  78. package/dist/components/GravWaveGrid.d.ts.map +1 -1
  79. package/dist/components/GravWaveGrid.js +31 -13
  80. package/dist/components/GridsGenerator.d.ts +7 -1
  81. package/dist/components/GridsGenerator.d.ts.map +1 -1
  82. package/dist/components/GridsGenerator.js +20 -18
  83. package/dist/components/HexGrid.d.ts +8 -10
  84. package/dist/components/HexGrid.d.ts.map +1 -1
  85. package/dist/components/HexGrid.js +31 -13
  86. package/dist/components/HyperbolicGrid.d.ts +8 -4
  87. package/dist/components/HyperbolicGrid.d.ts.map +1 -1
  88. package/dist/components/HyperbolicGrid.js +31 -13
  89. package/dist/components/LandscapeBuilder.d.ts +1 -1
  90. package/dist/components/LandscapeBuilder.d.ts.map +1 -1
  91. package/dist/components/LandscapeBuilder.js +1 -1
  92. package/dist/components/LandscapeObject.d.ts +1 -1
  93. package/dist/components/LandscapeObject.d.ts.map +1 -1
  94. package/dist/components/LandscapeObject.js +1 -1
  95. package/dist/components/MoireGrid.d.ts +8 -12
  96. package/dist/components/MoireGrid.d.ts.map +1 -1
  97. package/dist/components/MoireGrid.js +31 -13
  98. package/dist/components/ObjectNode.d.ts.map +1 -1
  99. package/dist/components/ObjectNode.js +2 -2
  100. package/dist/components/ObjectsRenderer.d.ts +4 -1
  101. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  102. package/dist/components/ObjectsRenderer.js +57 -3
  103. package/dist/components/Ocean.d.ts.map +1 -1
  104. package/dist/components/Ocean.js +0 -63
  105. package/dist/components/OceanBuilder.d.ts +1 -1
  106. package/dist/components/OceanBuilder.js +1 -1
  107. package/dist/components/ParticlesGenerator.d.ts.map +1 -1
  108. package/dist/components/ParticlesGenerator.js +6 -0
  109. package/dist/components/QuasiGrid.d.ts +8 -11
  110. package/dist/components/QuasiGrid.d.ts.map +1 -1
  111. package/dist/components/QuasiGrid.js +31 -13
  112. package/dist/components/RadarGrid.d.ts +8 -13
  113. package/dist/components/RadarGrid.d.ts.map +1 -1
  114. package/dist/components/RadarGrid.js +31 -13
  115. package/dist/components/ReactionDiffusionGrid.d.ts +8 -1
  116. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
  117. package/dist/components/ReactionDiffusionGrid.js +33 -139
  118. package/dist/components/SceneBuilder.d.ts.map +1 -1
  119. package/dist/components/SceneBuilder.js +19 -4
  120. package/dist/components/SkyController.d.ts.map +1 -1
  121. package/dist/components/SkyController.js +0 -39
  122. package/dist/components/SkySystem.d.ts +1 -1
  123. package/dist/components/SparklesBurst.d.ts +7 -1
  124. package/dist/components/SparklesBurst.d.ts.map +1 -1
  125. package/dist/components/SparklesBurst.js +31 -28
  126. package/dist/components/Stars.d.ts.map +1 -1
  127. package/dist/components/Stars.js +3 -47
  128. package/dist/components/TerrainBuilder.d.ts +1 -1
  129. package/dist/components/TerrainBuilder.d.ts.map +1 -1
  130. package/dist/components/TerrainBuilder.js +1 -1
  131. package/dist/components/VoronoiGrid.d.ts +8 -10
  132. package/dist/components/VoronoiGrid.d.ts.map +1 -1
  133. package/dist/components/VoronoiGrid.js +31 -13
  134. package/dist/components/WallpaperGrid.d.ts +8 -1
  135. package/dist/components/WallpaperGrid.d.ts.map +1 -1
  136. package/dist/components/WallpaperGrid.js +33 -210
  137. package/dist/components/effects/AuraEffect.d.ts +8 -3
  138. package/dist/components/effects/AuraEffect.d.ts.map +1 -1
  139. package/dist/components/effects/AuraEffect.js +49 -24
  140. package/dist/components/effects/AuroraEffect.d.ts +8 -3
  141. package/dist/components/effects/AuroraEffect.d.ts.map +1 -1
  142. package/dist/components/effects/AuroraEffect.js +45 -25
  143. package/dist/components/effects/BlackHoleEffect.d.ts +8 -3
  144. package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -1
  145. package/dist/components/effects/BlackHoleEffect.js +42 -21
  146. package/dist/components/effects/ConstellationEffect.d.ts +8 -3
  147. package/dist/components/effects/ConstellationEffect.d.ts.map +1 -1
  148. package/dist/components/effects/ConstellationEffect.js +49 -23
  149. package/dist/components/effects/DandelionSeedsEffect.d.ts +7 -2
  150. package/dist/components/effects/DandelionSeedsEffect.d.ts.map +1 -1
  151. package/dist/components/effects/DandelionSeedsEffect.js +19 -9
  152. package/dist/components/effects/DataStreamEffect.d.ts +8 -3
  153. package/dist/components/effects/DataStreamEffect.d.ts.map +1 -1
  154. package/dist/components/effects/DataStreamEffect.js +54 -26
  155. package/dist/components/effects/DnaHelixEffect.d.ts +8 -3
  156. package/dist/components/effects/DnaHelixEffect.d.ts.map +1 -1
  157. package/dist/components/effects/DnaHelixEffect.js +62 -30
  158. package/dist/components/effects/FallingLeavesEffect.d.ts +7 -2
  159. package/dist/components/effects/FallingLeavesEffect.d.ts.map +1 -1
  160. package/dist/components/effects/FallingLeavesEffect.js +19 -9
  161. package/dist/components/effects/FieldLinesEffect.d.ts +8 -3
  162. package/dist/components/effects/FieldLinesEffect.d.ts.map +1 -1
  163. package/dist/components/effects/FieldLinesEffect.js +30 -20
  164. package/dist/components/effects/Fire.d.ts +8 -3
  165. package/dist/components/effects/Fire.d.ts.map +1 -1
  166. package/dist/components/effects/Fire.js +47 -10
  167. package/dist/components/effects/FireflySwarmEffect.d.ts +7 -2
  168. package/dist/components/effects/FireflySwarmEffect.d.ts.map +1 -1
  169. package/dist/components/effects/FireflySwarmEffect.js +19 -9
  170. package/dist/components/effects/Flares.d.ts +10 -3
  171. package/dist/components/effects/Flares.d.ts.map +1 -1
  172. package/dist/components/effects/Flares.js +53 -56
  173. package/dist/components/effects/ForcefieldEffect.d.ts +8 -3
  174. package/dist/components/effects/ForcefieldEffect.d.ts.map +1 -1
  175. package/dist/components/effects/ForcefieldEffect.js +52 -33
  176. package/dist/components/effects/GalaxyEffect.d.ts +7 -2
  177. package/dist/components/effects/GalaxyEffect.d.ts.map +1 -1
  178. package/dist/components/effects/GalaxyEffect.js +19 -9
  179. package/dist/components/effects/HarmonicShellEffect.d.ts +8 -3
  180. package/dist/components/effects/HarmonicShellEffect.d.ts.map +1 -1
  181. package/dist/components/effects/HarmonicShellEffect.js +30 -22
  182. package/dist/components/effects/HologramEffect.d.ts +8 -3
  183. package/dist/components/effects/HologramEffect.d.ts.map +1 -1
  184. package/dist/components/effects/HologramEffect.js +52 -23
  185. package/dist/components/effects/IceCrystalsEffect.d.ts +8 -3
  186. package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -1
  187. package/dist/components/effects/IceCrystalsEffect.js +36 -21
  188. package/dist/components/effects/IceHaloEffect.d.ts +7 -2
  189. package/dist/components/effects/IceHaloEffect.d.ts.map +1 -1
  190. package/dist/components/effects/IceHaloEffect.js +19 -9
  191. package/dist/components/effects/LichtenbergEffect.d.ts +7 -2
  192. package/dist/components/effects/LichtenbergEffect.d.ts.map +1 -1
  193. package/dist/components/effects/LichtenbergEffect.js +19 -9
  194. package/dist/components/effects/LightningEffect.d.ts +8 -3
  195. package/dist/components/effects/LightningEffect.d.ts.map +1 -1
  196. package/dist/components/effects/LightningEffect.js +54 -32
  197. package/dist/components/effects/MoleculesEffect.d.ts +8 -3
  198. package/dist/components/effects/MoleculesEffect.d.ts.map +1 -1
  199. package/dist/components/effects/MoleculesEffect.js +31 -21
  200. package/dist/components/effects/MurmurationEffect.d.ts +7 -2
  201. package/dist/components/effects/MurmurationEffect.d.ts.map +1 -1
  202. package/dist/components/effects/MurmurationEffect.js +19 -9
  203. package/dist/components/effects/NeuralNetworkEffect.d.ts +8 -3
  204. package/dist/components/effects/NeuralNetworkEffect.d.ts.map +1 -1
  205. package/dist/components/effects/NeuralNetworkEffect.js +66 -33
  206. package/dist/components/effects/OrbEffect.d.ts +8 -3
  207. package/dist/components/effects/OrbEffect.d.ts.map +1 -1
  208. package/dist/components/effects/OrbEffect.js +89 -42
  209. package/dist/components/effects/PlanetaryRingsEffect.d.ts +7 -2
  210. package/dist/components/effects/PlanetaryRingsEffect.d.ts.map +1 -1
  211. package/dist/components/effects/PlanetaryRingsEffect.js +19 -9
  212. package/dist/components/effects/PortalEffect.d.ts +8 -3
  213. package/dist/components/effects/PortalEffect.d.ts.map +1 -1
  214. package/dist/components/effects/PortalEffect.js +41 -25
  215. package/dist/components/effects/ShockwaveEffect.d.ts +7 -2
  216. package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -1
  217. package/dist/components/effects/ShockwaveEffect.js +19 -9
  218. package/dist/components/effects/SmokePlumeEffect.d.ts +8 -3
  219. package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -1
  220. package/dist/components/effects/SmokePlumeEffect.js +30 -20
  221. package/dist/components/effects/SmokeRibbon.d.ts +8 -2
  222. package/dist/components/effects/SmokeRibbon.d.ts.map +1 -1
  223. package/dist/components/effects/SmokeRibbon.js +34 -24
  224. package/dist/components/effects/SmokeRingEffect.d.ts +8 -3
  225. package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -1
  226. package/dist/components/effects/SmokeRingEffect.js +33 -21
  227. package/dist/components/effects/StrangeAttractorEffect.d.ts +8 -3
  228. package/dist/components/effects/StrangeAttractorEffect.d.ts.map +1 -1
  229. package/dist/components/effects/StrangeAttractorEffect.js +30 -20
  230. package/dist/components/effects/VolumetricFogEffect.d.ts +8 -3
  231. package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -1
  232. package/dist/components/effects/VolumetricFogEffect.js +38 -20
  233. package/dist/components/effects/WaterCausticsEffect.d.ts +7 -2
  234. package/dist/components/effects/WaterCausticsEffect.d.ts.map +1 -1
  235. package/dist/components/effects/WaterCausticsEffect.js +19 -9
  236. package/dist/components/effects/index.d.ts +0 -1
  237. package/dist/components/effects/index.d.ts.map +1 -1
  238. package/dist/components/effects/index.js +0 -1
  239. package/dist/components/index.d.ts +0 -1
  240. package/dist/components/index.d.ts.map +1 -1
  241. package/dist/components/index.js +0 -1
  242. package/dist/components/landscape/LandscapeMesh.js +1 -1
  243. package/dist/components/landscape/types.d.ts +1 -1
  244. package/dist/components/landscape/types.d.ts.map +1 -1
  245. package/dist/components/particles/MagneticBottleParticles.d.ts +17 -0
  246. package/dist/components/particles/MagneticBottleParticles.d.ts.map +1 -0
  247. package/dist/components/particles/MagneticBottleParticles.js +618 -0
  248. package/dist/components/particles/ShapeBurstParticles.d.ts +17 -0
  249. package/dist/components/particles/ShapeBurstParticles.d.ts.map +1 -0
  250. package/dist/components/particles/ShapeBurstParticles.js +588 -0
  251. package/dist/components/particles/ShapeFlowParticles.d.ts +17 -0
  252. package/dist/components/particles/ShapeFlowParticles.d.ts.map +1 -0
  253. package/dist/components/particles/ShapeFlowParticles.js +755 -0
  254. package/dist/components/particles/index.d.ts +6 -0
  255. package/dist/components/particles/index.d.ts.map +1 -1
  256. package/dist/components/particles/index.js +3 -0
  257. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
  258. package/dist/components/terrain/TerrainSurface.js +0 -5
  259. package/dist/components/terrain/types.d.ts +1 -1
  260. package/dist/components/terrain/types.d.ts.map +1 -1
  261. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +1 -1
  262. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
  263. package/dist/components/volumetricClouds/VolumetricCloudsPass.js +0 -6
  264. package/dist/components/volumetricClouds/types.d.ts +1 -1
  265. package/dist/components/volumetricClouds/types.d.ts.map +1 -1
  266. package/dist/components/water/types.d.ts +1 -1
  267. package/dist/components/water/types.d.ts.map +1 -1
  268. package/dist/constants.d.ts +1 -1
  269. package/dist/constants.d.ts.map +1 -1
  270. package/dist/constants.js +1 -1
  271. package/dist/hooks/index.d.ts +2 -2
  272. package/dist/hooks/index.d.ts.map +1 -1
  273. package/dist/hooks/index.js +1 -2
  274. package/dist/hooks/useConfigDriver.d.ts +22 -0
  275. package/dist/hooks/useConfigDriver.d.ts.map +1 -0
  276. package/dist/hooks/useConfigDriver.js +43 -0
  277. package/dist/hooks/useConfigLive.d.ts +1 -1
  278. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  279. package/dist/hooks/useInteraction.d.ts +6 -7
  280. package/dist/hooks/useInteraction.d.ts.map +1 -1
  281. package/dist/hooks/useInteraction.js +87 -268
  282. package/dist/hooks/useLandscapeMaps.d.ts +1 -1
  283. package/dist/hooks/useLandscapeMaps.d.ts.map +1 -1
  284. package/dist/hooks/useObjectAnimation.d.ts.map +1 -1
  285. package/dist/hooks/useObjectAnimation.js +0 -2
  286. package/dist/hooks/useOceanMaterial.d.ts +1 -1
  287. package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
  288. package/dist/hooks/useOceanMaterial.js +0 -5
  289. package/dist/hooks/useRuntimeSettings.d.ts +1 -1
  290. package/dist/hooks/useRuntimeSettings.js +1 -1
  291. package/dist/hooks/useThunder.d.ts +1 -1
  292. package/dist/index.d.ts +6 -4
  293. package/dist/index.d.ts.map +1 -1
  294. package/dist/index.js +4 -2
  295. package/dist/interactions/index.d.ts +4 -0
  296. package/dist/interactions/index.d.ts.map +1 -0
  297. package/dist/interactions/index.js +1 -0
  298. package/dist/interactions/runner.d.ts +24 -0
  299. package/dist/interactions/runner.d.ts.map +1 -0
  300. package/dist/interactions/runner.js +46 -0
  301. package/dist/operations/catalogue/curlSmoke.d.ts +3 -0
  302. package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -0
  303. package/dist/operations/catalogue/curlSmoke.js +178 -0
  304. package/dist/operations/catalogue/displayImage.d.ts +3 -0
  305. package/dist/operations/catalogue/displayImage.d.ts.map +1 -0
  306. package/dist/operations/catalogue/displayImage.js +40 -0
  307. package/dist/operations/catalogue/dissolve.d.ts +3 -0
  308. package/dist/operations/catalogue/dissolve.d.ts.map +1 -0
  309. package/dist/operations/catalogue/dissolve.js +57 -0
  310. package/dist/operations/catalogue/emberAsh.d.ts +3 -0
  311. package/dist/operations/catalogue/emberAsh.d.ts.map +1 -0
  312. package/dist/operations/catalogue/emberAsh.js +171 -0
  313. package/dist/operations/catalogue/fade.d.ts +3 -0
  314. package/dist/operations/catalogue/fade.d.ts.map +1 -0
  315. package/dist/operations/catalogue/fade.js +45 -0
  316. package/dist/operations/catalogue/flip.d.ts +3 -0
  317. package/dist/operations/catalogue/flip.d.ts.map +1 -0
  318. package/dist/operations/catalogue/flip.js +69 -0
  319. package/dist/operations/catalogue/flock.d.ts +3 -0
  320. package/dist/operations/catalogue/flock.d.ts.map +1 -0
  321. package/dist/operations/catalogue/flock.js +163 -0
  322. package/dist/operations/catalogue/focus.d.ts +3 -0
  323. package/dist/operations/catalogue/focus.d.ts.map +1 -0
  324. package/dist/operations/catalogue/focus.js +23 -0
  325. package/dist/operations/catalogue/frame.d.ts +3 -0
  326. package/dist/operations/catalogue/frame.d.ts.map +1 -0
  327. package/dist/operations/catalogue/frame.js +44 -0
  328. package/dist/operations/catalogue/frost.d.ts +3 -0
  329. package/dist/operations/catalogue/frost.d.ts.map +1 -0
  330. package/dist/operations/catalogue/frost.js +111 -0
  331. package/dist/operations/catalogue/fxInstances.d.ts +21 -0
  332. package/dist/operations/catalogue/fxInstances.d.ts.map +1 -0
  333. package/dist/operations/catalogue/fxInstances.js +47 -0
  334. package/dist/operations/catalogue/fxPoints.d.ts +22 -0
  335. package/dist/operations/catalogue/fxPoints.d.ts.map +1 -0
  336. package/dist/operations/catalogue/fxPoints.js +70 -0
  337. package/dist/operations/catalogue/glow.d.ts +3 -0
  338. package/dist/operations/catalogue/glow.d.ts.map +1 -0
  339. package/dist/operations/catalogue/glow.js +50 -0
  340. package/dist/operations/catalogue/heatCracks.d.ts +3 -0
  341. package/dist/operations/catalogue/heatCracks.d.ts.map +1 -0
  342. package/dist/operations/catalogue/heatCracks.js +134 -0
  343. package/dist/operations/catalogue/hologram.d.ts +3 -0
  344. package/dist/operations/catalogue/hologram.d.ts.map +1 -0
  345. package/dist/operations/catalogue/hologram.js +118 -0
  346. package/dist/operations/catalogue/inkBloom.d.ts +3 -0
  347. package/dist/operations/catalogue/inkBloom.d.ts.map +1 -0
  348. package/dist/operations/catalogue/inkBloom.js +156 -0
  349. package/dist/operations/catalogue/ivy.d.ts +13 -0
  350. package/dist/operations/catalogue/ivy.d.ts.map +1 -0
  351. package/dist/operations/catalogue/ivy.js +469 -0
  352. package/dist/operations/catalogue/jelly.d.ts +3 -0
  353. package/dist/operations/catalogue/jelly.d.ts.map +1 -0
  354. package/dist/operations/catalogue/jelly.js +50 -0
  355. package/dist/operations/catalogue/kintsugi.d.ts +3 -0
  356. package/dist/operations/catalogue/kintsugi.d.ts.map +1 -0
  357. package/dist/operations/catalogue/kintsugi.js +173 -0
  358. package/dist/operations/catalogue/lidarScan.d.ts +3 -0
  359. package/dist/operations/catalogue/lidarScan.d.ts.map +1 -0
  360. package/dist/operations/catalogue/lidarScan.js +240 -0
  361. package/dist/operations/catalogue/liquidMetal.d.ts +3 -0
  362. package/dist/operations/catalogue/liquidMetal.d.ts.map +1 -0
  363. package/dist/operations/catalogue/liquidMetal.js +122 -0
  364. package/dist/operations/catalogue/materialFx.d.ts +6 -0
  365. package/dist/operations/catalogue/materialFx.d.ts.map +1 -0
  366. package/dist/operations/catalogue/materialFx.js +13 -0
  367. package/dist/operations/catalogue/metalize.d.ts +3 -0
  368. package/dist/operations/catalogue/metalize.d.ts.map +1 -0
  369. package/dist/operations/catalogue/metalize.js +135 -0
  370. package/dist/operations/catalogue/moveToFront.d.ts +3 -0
  371. package/dist/operations/catalogue/moveToFront.d.ts.map +1 -0
  372. package/dist/operations/catalogue/moveToFront.js +26 -0
  373. package/dist/operations/catalogue/orbit.d.ts +3 -0
  374. package/dist/operations/catalogue/orbit.d.ts.map +1 -0
  375. package/dist/operations/catalogue/orbit.js +29 -0
  376. package/dist/operations/catalogue/particleSwarm.d.ts +3 -0
  377. package/dist/operations/catalogue/particleSwarm.d.ts.map +1 -0
  378. package/dist/operations/catalogue/particleSwarm.js +138 -0
  379. package/dist/operations/catalogue/petalPeel.d.ts +3 -0
  380. package/dist/operations/catalogue/petalPeel.d.ts.map +1 -0
  381. package/dist/operations/catalogue/petalPeel.js +137 -0
  382. package/dist/operations/catalogue/petrify.d.ts +3 -0
  383. package/dist/operations/catalogue/petrify.d.ts.map +1 -0
  384. package/dist/operations/catalogue/petrify.js +94 -0
  385. package/dist/operations/catalogue/portal.d.ts +3 -0
  386. package/dist/operations/catalogue/portal.d.ts.map +1 -0
  387. package/dist/operations/catalogue/portal.js +224 -0
  388. package/dist/operations/catalogue/print3d.d.ts +3 -0
  389. package/dist/operations/catalogue/print3d.d.ts.map +1 -0
  390. package/dist/operations/catalogue/print3d.js +275 -0
  391. package/dist/operations/catalogue/rainBeads.d.ts +3 -0
  392. package/dist/operations/catalogue/rainBeads.d.ts.map +1 -0
  393. package/dist/operations/catalogue/rainBeads.js +223 -0
  394. package/dist/operations/catalogue/restPose.d.ts +21 -0
  395. package/dist/operations/catalogue/restPose.d.ts.map +1 -0
  396. package/dist/operations/catalogue/restPose.js +55 -0
  397. package/dist/operations/catalogue/rimLight.d.ts +3 -0
  398. package/dist/operations/catalogue/rimLight.d.ts.map +1 -0
  399. package/dist/operations/catalogue/rimLight.js +72 -0
  400. package/dist/operations/catalogue/sandErosion.d.ts +3 -0
  401. package/dist/operations/catalogue/sandErosion.d.ts.map +1 -0
  402. package/dist/operations/catalogue/sandErosion.js +167 -0
  403. package/dist/operations/catalogue/shaderLayers.d.ts +74 -0
  404. package/dist/operations/catalogue/shaderLayers.d.ts.map +1 -0
  405. package/dist/operations/catalogue/shaderLayers.js +322 -0
  406. package/dist/operations/catalogue/shatter.d.ts +3 -0
  407. package/dist/operations/catalogue/shatter.d.ts.map +1 -0
  408. package/dist/operations/catalogue/shatter.js +267 -0
  409. package/dist/operations/catalogue/silkDrape.d.ts +3 -0
  410. package/dist/operations/catalogue/silkDrape.d.ts.map +1 -0
  411. package/dist/operations/catalogue/silkDrape.js +340 -0
  412. package/dist/operations/catalogue/spin.d.ts +3 -0
  413. package/dist/operations/catalogue/spin.d.ts.map +1 -0
  414. package/dist/operations/catalogue/spin.js +42 -0
  415. package/dist/operations/catalogue/surfaceSample.d.ts +17 -0
  416. package/dist/operations/catalogue/surfaceSample.d.ts.map +1 -0
  417. package/dist/operations/catalogue/surfaceSample.js +187 -0
  418. package/dist/operations/catalogue/swirl.d.ts +3 -0
  419. package/dist/operations/catalogue/swirl.d.ts.map +1 -0
  420. package/dist/operations/catalogue/swirl.js +69 -0
  421. package/dist/operations/catalogue/teleport.d.ts +3 -0
  422. package/dist/operations/catalogue/teleport.d.ts.map +1 -0
  423. package/dist/operations/catalogue/teleport.js +213 -0
  424. package/dist/operations/catalogue/transitionField.d.ts +124 -0
  425. package/dist/operations/catalogue/transitionField.d.ts.map +1 -0
  426. package/dist/operations/catalogue/transitionField.js +278 -0
  427. package/dist/operations/catalogue/unweave.d.ts +3 -0
  428. package/dist/operations/catalogue/unweave.d.ts.map +1 -0
  429. package/dist/operations/catalogue/unweave.js +233 -0
  430. package/dist/operations/catalogue/visibility.d.ts +3 -0
  431. package/dist/operations/catalogue/visibility.d.ts.map +1 -0
  432. package/dist/operations/catalogue/visibility.js +25 -0
  433. package/dist/operations/catalogue/voxelize.d.ts +3 -0
  434. package/dist/operations/catalogue/voxelize.d.ts.map +1 -0
  435. package/dist/operations/catalogue/voxelize.js +148 -0
  436. package/dist/operations/catalogue/warmup.d.ts +22 -0
  437. package/dist/operations/catalogue/warmup.d.ts.map +1 -0
  438. package/dist/operations/catalogue/warmup.js +106 -0
  439. package/dist/operations/catalogue/zoom.d.ts +3 -0
  440. package/dist/operations/catalogue/zoom.d.ts.map +1 -0
  441. package/dist/operations/catalogue/zoom.js +33 -0
  442. package/dist/operations/index.d.ts +7 -0
  443. package/dist/operations/index.d.ts.map +1 -0
  444. package/dist/operations/index.js +6 -0
  445. package/dist/operations/objectEffects.d.ts +46 -0
  446. package/dist/operations/objectEffects.d.ts.map +1 -0
  447. package/dist/operations/objectEffects.js +136 -0
  448. package/dist/operations/registry.d.ts +16 -0
  449. package/dist/operations/registry.d.ts.map +1 -0
  450. package/dist/operations/registry.js +63 -0
  451. package/dist/operations/runtime.d.ts +60 -0
  452. package/dist/operations/runtime.d.ts.map +1 -0
  453. package/dist/operations/runtime.js +317 -0
  454. package/dist/operations/types.d.ts +122 -0
  455. package/dist/operations/types.d.ts.map +1 -0
  456. package/dist/operations/types.js +9 -0
  457. package/dist/operations/useObjectEffectLayers.d.ts +4 -0
  458. package/dist/operations/useObjectEffectLayers.d.ts.map +1 -0
  459. package/dist/operations/useObjectEffectLayers.js +42 -0
  460. package/dist/operations/useOperationsRuntime.d.ts +3 -0
  461. package/dist/operations/useOperationsRuntime.d.ts.map +1 -0
  462. package/dist/operations/useOperationsRuntime.js +69 -0
  463. package/dist/presets/landscapePresets.d.ts +1 -1
  464. package/dist/presets/landscapePresets.d.ts.map +1 -1
  465. package/dist/presets/landscapePresets.js +1 -1
  466. package/dist/presets/landscapeTypes.d.ts +1 -1
  467. package/dist/presets/landscapeTypes.d.ts.map +1 -1
  468. package/dist/presets/landscapeTypes.js +1 -1
  469. package/dist/presets/oceanSurfacePresets.d.ts +1 -1
  470. package/dist/presets/terrainPresets.d.ts +1 -1
  471. package/dist/presets/terrainPresets.d.ts.map +1 -1
  472. package/dist/presets/volumetricCloudPresets.d.ts +1 -1
  473. package/dist/types/cloudConfigs.d.ts +2 -309
  474. package/dist/types/cloudConfigs.d.ts.map +1 -1
  475. package/dist/types/cloudConfigs.js +2 -339
  476. package/dist/types/index.d.ts +8 -8
  477. package/dist/types/index.d.ts.map +1 -1
  478. package/dist/types/index.js +4 -4
  479. package/dist/types/landscapeConfigs.d.ts +2 -217
  480. package/dist/types/landscapeConfigs.d.ts.map +1 -1
  481. package/dist/types/landscapeConfigs.js +2 -256
  482. package/dist/types/oceanConfigs.d.ts +2 -289
  483. package/dist/types/oceanConfigs.d.ts.map +1 -1
  484. package/dist/types/oceanConfigs.js +2 -380
  485. package/dist/types/terrainConfigs.d.ts +2 -250
  486. package/dist/types/terrainConfigs.d.ts.map +1 -1
  487. package/dist/types/terrainConfigs.js +2 -292
  488. package/dist/utils/cloudUniforms.d.ts +1 -1
  489. package/dist/utils/configAnimations.d.ts +6 -0
  490. package/dist/utils/configAnimations.d.ts.map +1 -1
  491. package/dist/utils/configAnimations.js +14 -0
  492. package/dist/utils/gridConfig.d.ts +19 -0
  493. package/dist/utils/gridConfig.d.ts.map +1 -0
  494. package/dist/utils/gridConfig.js +52 -0
  495. package/dist/utils/handleCloudsAnimations.d.ts +1 -1
  496. package/dist/utils/handleCloudsAnimations.js +1 -1
  497. package/dist/utils/hasHoverAnimation.d.ts.map +1 -1
  498. package/dist/utils/hasHoverAnimation.js +0 -2
  499. package/dist/utils/landscapeUniforms.d.ts +1 -1
  500. package/dist/utils/landscapeUniforms.d.ts.map +1 -1
  501. package/dist/utils/oceanUniforms.d.ts +1 -1
  502. package/dist/utils/particleShape.d.ts +33 -0
  503. package/dist/utils/particleShape.d.ts.map +1 -0
  504. package/dist/utils/particleShape.js +207 -0
  505. package/dist/utils/particleTrails.d.ts.map +1 -1
  506. package/dist/utils/particleTrails.js +29 -14
  507. package/dist/utils/terrainUniforms.d.ts +1 -1
  508. package/dist/utils/terrainUniforms.d.ts.map +1 -1
  509. package/package.json +2 -2
@@ -1,10 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useRef } from 'react';
2
+ import { useEffect, useMemo, useRef, useCallback, useLayoutEffect } from 'react';
3
3
  import * as THREE from 'three';
4
4
  import { useFrame } from '@react-three/fiber';
5
5
  import { useObjectReady } from '../hooks/useObjectReady.js';
6
6
  import { useGridSurface } from '../hooks/useGridSurface.js';
7
- import { ReactionDiffusionGridMaterial } from '@3driseai/3drise-core';
7
+ import { useConfigDriver } from '../hooks/useConfigDriver.js';
8
+ import { withConfigDefaults } from '../utils/configAnimations.js';
9
+ import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
10
+ import { ReactionDiffusionGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
8
11
  // Side-effect import registers <reactionDiffusionGridMaterial> via extend().
9
12
  void ReactionDiffusionGridMaterial;
10
13
  /** ReactionDiffusionGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
@@ -38,124 +41,6 @@ export const defaultReactionDiffusionGridConfig = {
38
41
  reveal: 1,
39
42
  revealDuration: 0,
40
43
  };
41
- const gridFragHeader = /* glsl */ `
42
- precision highp float;
43
-
44
- uniform float u_time;
45
- uniform float u_cellSize;
46
- uniform float u_lineWidth;
47
- uniform float u_sectionSize;
48
- uniform float u_sectionWidth;
49
- uniform vec3 u_lineColor;
50
- uniform vec3 u_sectionColor;
51
- uniform vec3 u_cellColor;
52
- uniform vec3 u_glowColor;
53
- uniform vec3 u_bgColor;
54
- uniform float u_bgOpacity;
55
- uniform float u_lineMode;
56
- uniform float u_cellMode;
57
- uniform float u_animSpeed;
58
- uniform float u_animScale;
59
- uniform float u_animIntensity;
60
- uniform float u_fadeDistance;
61
- uniform float u_fadeStrength;
62
- uniform vec2 u_focus;
63
- uniform float u_reveal;
64
-
65
- varying vec2 vGridPos;
66
-
67
- float lineAt(float c, float width, float fp){
68
- float d = abs(fract(c - 0.5) - 0.5);
69
- return 1.0 - clamp(d / max(fp * max(width, 0.05), 1e-6), 0.0, 1.0);
70
- }
71
- `;
72
- const gridCommon = /* glsl */ `
73
- const float PI = 3.14159265359;
74
- const float TAU = 6.28318530718;
75
-
76
- float hash21(vec2 p){
77
- p = fract(p * vec2(123.34, 456.21));
78
- p += dot(p, p + 45.32);
79
- return fract(p.x * p.y);
80
- }
81
- `;
82
- const gridTail = /* glsl */ `
83
- // ---- line animation --------------------------------------------------
84
- float lineAnim = 1.0;
85
- if (u_lineMode > 0.5){
86
- if (u_lineMode < 1.5){
87
- lineAnim = 0.5 + 0.5 * sin(cellDist * u_animScale - t);
88
- } else if (u_lineMode < 2.5){
89
- lineAnim = 0.5 + 0.5 * sin(flowCoord * u_animScale - t);
90
- } else if (u_lineMode < 3.5){
91
- float s = fract(scanCoord * 0.05 * u_animScale - t * 0.15);
92
- lineAnim = 0.25 + smoothstep(0.0, 0.15, s) * (1.0 - smoothstep(0.15, 0.35, s));
93
- } else {
94
- lineAnim = 0.5 + 0.5 * sin(t);
95
- }
96
- }
97
- lineAnim = mix(1.0, lineAnim, u_animIntensity);
98
-
99
- // ---- cell fill -------------------------------------------------------
100
- float cell = 0.0;
101
- if (u_cellMode > 0.5){
102
- if (u_cellMode < 1.5){
103
- cell = 0.5 + 0.5 * sin(flowCoord * 0.5 * u_animScale - t);
104
- } else if (u_cellMode < 2.5){
105
- cell = 0.5 + 0.5 * sin(t * (0.6 + cellH) + cellH * TAU);
106
- } else if (u_cellMode < 3.5){
107
- cell = smoothstep(0.6, 1.0, sin(cellDist * u_animScale - t));
108
- } else {
109
- cell = step(0.5, cellH) * (0.5 + 0.5 * sin(t));
110
- }
111
- }
112
- cell *= u_animIntensity * edgeKeep;
113
-
114
- float tone = step(0.55, cellH);
115
-
116
- vec3 col = u_bgColor * u_bgOpacity;
117
- float a = u_bgOpacity;
118
-
119
- col += mix(u_cellColor, u_cellColor * 2.2, tone) * cell;
120
- a = max(a, cell * 0.9);
121
- float linesI = lines * lineAnim;
122
- col += u_lineColor * linesI; a = max(a, linesI);
123
- float accentI = accent * lineAnim;
124
- col += u_sectionColor * accentI; a = max(a, accentI);
125
- col += u_glowColor * (linesI * 0.2 + cell * 0.35) * u_animIntensity;
126
-
127
- col = col * regionMask + extraCol;
128
- a = max(a * regionMask, extraA);
129
-
130
- float fade = 1.0 - smoothstep(1.0 - u_fadeStrength, 1.0, fadeR);
131
- col *= fade;
132
- a *= fade;
133
-
134
- // ---- reveal ----------------------------------------------------------
135
- // The build boundary sweeps outward from the focus point with a bright
136
- // leading edge, so the grid reads as assembling itself.
137
- if (u_reveal < 0.999){
138
- float rd = length(vGridPos - u_focus) / max(u_fadeDistance, 1e-4);
139
- float edge = u_reveal * 1.1;
140
- float mask = 1.0 - smoothstep(edge - 0.05, edge, rd);
141
- float front = mask * smoothstep(edge - 0.22, edge - 0.05, rd);
142
- col = col * mask + u_glowColor * front * (a * 1.8 + 0.08);
143
- a = max(a * mask, front * 0.10);
144
- }
145
-
146
- if (a < 0.002) discard;
147
- gl_FragColor = vec4(col, a);
148
- }
149
- `;
150
- const gridVertexHead = /* glsl */ `
151
- uniform float u_time;
152
- uniform float u_cellSize;
153
- uniform float u_displace;
154
- uniform float u_animSpeed;
155
- uniform float u_animScale;
156
-
157
- varying vec2 vGridPos;
158
- `;
159
44
  // ---------------------------------------------------------------------------
160
45
  // Gray-Scott reaction-diffusion. Two chemicals diffuse at different rates and
161
46
  // react as u + 2v -> 3v: the autocatalyst v eats u, u is fed in at rate F and
@@ -237,12 +122,6 @@ const seedFrag = /* glsl */ `
237
122
  gl_FragColor = vec4(1.0 - 0.5 * blob, 0.25 * blob, 0.0, 1.0);
238
123
  }
239
124
  `;
240
- function createExtraUniforms() {
241
- return {
242
- u_field: { value: null },
243
- u_tileCells: { value: 7 },
244
- };
245
- }
246
125
  /** The simulation: two half-float targets ping-ponged through the Gray-Scott step. */
247
126
  function createRuntime(u, renderer, c) {
248
127
  const targetOptions = {
@@ -335,26 +214,41 @@ function disposeRuntime(rt) {
335
214
  rt.simMaterial.dispose();
336
215
  rt.seedMaterial.dispose();
337
216
  }
217
+ /** This grid's own uniforms (u_<key>), pushed by applyGridConfig beside the shared surface knobs. */
218
+ const VARIANT = ['feed', 'kill', 'variation', 'tileCells'];
219
+ /** No computed uniforms: every knob maps straight to its u_<key>. */
220
+ const DERIVE = {};
221
+ /** Knobs that rebuild the plane or pick a mode: they change on commit, never through the live path. */
222
+ const STRUCTURAL = [...GRID_STRUCTURAL, 'tileCells'];
223
+ /** Knobs a keyframe or pointer binding may drive per frame — exactly what applyGridConfig pushes. */
224
+ const ANIMATABLE = new Set((GRIDS_ANIMATABLE.reactionDiffusionGrid ?? []).map((p) => p.value));
338
225
  /**
339
226
  * A Gray-Scott reaction-diffusion field simulated on the GPU and sampled by the plane: coral, labyrinths and dividing spots grow, merge and keep evolving, wrapped seamlessly as a torus.
340
227
  */
341
- export function ReactionDiffusionGrid({ config = defaultReactionDiffusionGridConfig, groupProps, onObjectReady, onObjectDispose }) {
228
+ export function ReactionDiffusionGrid({ config = defaultReactionDiffusionGridConfig, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) {
342
229
  const matRef = useRef(null);
343
230
  const rootRef = useRef(null);
344
231
  const meshRef = useRef(null);
345
232
  useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
346
- const { cellSize, size, segments, flat, lineMode, cellMode, lineWidth, sectionSize, sectionWidth, animSpeed, animScale, animIntensity, fadeDistance, fadeStrength, displace, feed, kill, variation, tileCells, lineColor, sectionColor, cellColor, glowColor, bgColor, bgOpacity, followMouse, reveal, revealDuration, } = config;
233
+ // The committed config over this grid's defaults: every knob has a value to render
234
+ // and for a keyframe or pointer binding to start from.
235
+ const base = useMemo(() => withConfigDefaults(defaultReactionDiffusionGridConfig, config), [config]);
236
+ const { cellSize, size, segments, flat, displace, followMouse, reveal, revealDuration } = base;
347
237
  // the relief follows the pattern itself, which is a few texels wide
348
238
  const segs = segments ?? (displace > 0 ? Math.min(512, Math.max(128, Math.ceil(size / Math.max(cellSize, 1e-4)) * 12)) : 1);
349
- const fade = fadeDistance ?? size * 0.5;
350
- const colors = useMemo(() => ({
351
- line: new THREE.Color(lineColor),
352
- section: new THREE.Color(sectionColor),
353
- cell: new THREE.Color(cellColor),
354
- glow: new THREE.Color(glowColor),
355
- bg: new THREE.Color(bgColor),
356
- }), [lineColor, sectionColor, cellColor, glowColor, bgColor]);
357
239
  useGridSurface(matRef, meshRef, { followMouse, reveal, revealDuration });
240
+ // One push point for every uniform the config owns: the committed config when the
241
+ // material mounts or the config commits, the merged one while anything overrides it.
242
+ const baseRef = useRef(base);
243
+ baseRef.current = base;
244
+ const setMaterial = useCallback((m) => {
245
+ matRef.current = m;
246
+ if (m)
247
+ applyGridConfig(m, baseRef.current, VARIANT, DERIVE);
248
+ }, []);
249
+ useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
250
+ const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
251
+ useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
358
252
  // the simulation behind this grid: created on mount, stepped every frame
359
253
  const runtimeRef = useRef(null);
360
254
  useFrame((state, delta) => {
@@ -362,8 +256,8 @@ export function ReactionDiffusionGrid({ config = defaultReactionDiffusionGridCon
362
256
  if (!mat)
363
257
  return;
364
258
  if (!runtimeRef.current)
365
- runtimeRef.current = createRuntime(mat.uniforms, state.gl, config);
366
- updateRuntime(runtimeRef.current, mat.uniforms, config, Math.min(delta, 0.1), state.gl);
259
+ runtimeRef.current = createRuntime(mat.uniforms, state.gl, base);
260
+ updateRuntime(runtimeRef.current, mat.uniforms, base, Math.min(delta, 0.1), state.gl);
367
261
  });
368
262
  useEffect(() => () => {
369
263
  if (runtimeRef.current) {
@@ -371,6 +265,6 @@ export function ReactionDiffusionGrid({ config = defaultReactionDiffusionGridCon
371
265
  runtimeRef.current = null;
372
266
  }
373
267
  }, []);
374
- return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: flat ? [-Math.PI / 2, 0, 0] : [0, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("reactionDiffusionGridMaterial", { ref: matRef, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide, u_cellSize: cellSize, u_lineWidth: lineWidth, u_sectionSize: sectionSize, u_sectionWidth: sectionWidth, u_lineMode: lineMode, u_cellMode: cellMode, u_animSpeed: animSpeed, u_animScale: animScale, u_animIntensity: animIntensity, u_fadeDistance: fade, u_fadeStrength: fadeStrength, u_displace: displace, u_feed: feed, u_kill: kill, u_variation: variation, u_tileCells: tileCells, u_lineColor: colors.line, u_sectionColor: colors.section, u_cellColor: colors.cell, u_glowColor: colors.glow, u_bgColor: colors.bg, u_bgOpacity: bgOpacity }, ReactionDiffusionGridMaterial.key)] }) }));
268
+ return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: flat ? [-Math.PI / 2, 0, 0] : [0, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("reactionDiffusionGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, ReactionDiffusionGridMaterial.key)] }) }));
375
269
  }
376
270
  export default ReactionDiffusionGrid;
@@ -1 +1 @@
1
- {"version":3,"file":"SceneBuilder.d.ts","sourceRoot":"","sources":["../../src/components/SceneBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,WAAW,EAA0B,MAAM,oBAAoB,CAAC;AAGjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQ/D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG;IACzE,wGAAwG;IACxG,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,QAAA,MAAM,YAAY;IAJd,wGAAwG;mBACzF,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;qCAkJ7C,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SceneBuilder.d.ts","sourceRoot":"","sources":["../../src/components/SceneBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,WAAW,EAA0B,MAAM,oBAAoB,CAAC;AAGjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAW/D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG;IACzE,wGAAwG;IACxG,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,QAAA,MAAM,YAAY;IAJd,wGAAwG;mBACzF,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;qCAgK7C,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -9,6 +9,9 @@ import EnvironmentManager from "./EnvironmentManager.js";
9
9
  import CameraController from "./CameraController.js";
10
10
  import ObjectsRenderer from "./ObjectsRenderer.js";
11
11
  import CursorController from "./cursor/CursorController.js";
12
+ import ClipPlayer from "../animationsV2/ClipPlayer.js";
13
+ import { normalizeClip, normalizeSequence } from "../animationsV2/normalize.js";
14
+ import { resolveElementSettings } from "../animationsV2/elementSettings.js";
12
15
  import { Physics } from "@react-three/rapier";
13
16
  const SceneBuilder = forwardRef(({ project, width = "100%", height = "100vh", style = {}, className = "", onSceneInitialized, onSceneReady, onUiElementClick, onObjectClick, onObjectReady, onObjectDispose, }, ref) => {
14
17
  const sceneSettings = (project.sceneSettingsData || {});
@@ -41,12 +44,17 @@ const SceneBuilder = forwardRef(({ project, width = "100%", height = "100vh", st
41
44
  maxAzimuthAngle: Infinity,
42
45
  }
43
46
  });
44
- const animationSequences = project.animationSequences || [];
47
+ // Animations V2: rows from data-center, normalised to the runtime shapes.
48
+ const rawClips = project.animationClips;
49
+ const rawSequences = project.animationSequences;
50
+ const animationClips = useMemo(() => (rawClips || []).map(normalizeClip), [rawClips]);
51
+ const animationSequences = useMemo(() => (rawSequences || []).map(normalizeSequence), [rawSequences]);
45
52
  const actionSequences = project.actionSequences || [];
53
+ const clipAutoplay = useMemo(() => ({ sequences: animationSequences, clips: animationClips }), [animationSequences, animationClips]);
46
54
  // The external control handle (see api/sceneHandle). Built once; reads the
47
55
  // current project lists through a ref, so it never goes stale.
48
- const handleSource = useRef({ actions: actionSequences, animations: animationSequences });
49
- handleSource.current = { actions: actionSequences, animations: animationSequences };
56
+ const handleSource = useRef({ actions: actionSequences, clips: animationClips, sequences: animationSequences });
57
+ handleSource.current = { actions: actionSequences, clips: animationClips, sequences: animationSequences };
50
58
  const sceneHandle = useMemo(() => createSceneHandle(() => handleSource.current), []);
51
59
  useImperativeHandle(ref, () => sceneHandle, [sceneHandle]);
52
60
  const sceneObjects = project.sceneObjects || sceneSettings.scene?.objectSettings || [];
@@ -140,7 +148,14 @@ const SceneBuilder = forwardRef(({ project, width = "100%", height = "100vh", st
140
148
  onSceneInitialized();
141
149
  }
142
150
  onSceneReady?.(sceneHandle);
143
- }, children: _jsxs(Physics, { gravity: physicsSettings.gravity, paused: !physicsSettings.enabled, debug: physicsSettings.debug, children: [_jsx(LightsManager, { config: lighting[0], onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }), environment && _jsx(EnvironmentManager, { environment: environment, timeSettings: timeSettings, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }), _jsx(CameraController, { settings: camera, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }), _jsx(ObjectsRenderer, { cameraSettings: camera, generalObjectSettings: generalObjectSettings, createdObjects: sceneObjects, onObjectsReady: undefined, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose, sequences: animationSequences, actionSequences: actionSequences, handleObjectClick: onObjectClick ? (object, ref, event) => onObjectClick(object, ref, event) : undefined }), _jsx(CursorController, { effects: project.cursor?.effects, clickActions: project.cursor?.clickActions, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose })] }) }) }));
151
+ }, children: _jsxs(Physics, { gravity: physicsSettings.gravity, paused: !physicsSettings.enabled, debug: physicsSettings.debug, children: [_jsx(LightsManager, { config: lighting[0], onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }), environment && _jsx(EnvironmentManager, { environment: environment, timeSettings: timeSettings, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }), _jsx(CameraController, { settings: camera, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }), _jsx(ObjectsRenderer, { cameraSettings: camera, generalObjectSettings: generalObjectSettings, createdObjects: sceneObjects, onObjectsReady: undefined, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose, sequences: animationSequences, clips: animationClips, actionSequences: actionSequences, handleObjectClick: onObjectClick ? (object, ref, event) => onObjectClick(object, ref, event) : undefined }), _jsx(ClipPlayer, { autoplay: clipAutoplay, getAction: (id) => actionSequences?.find((a) => a.id === id), getSettings: (state) => resolveElementSettings(state, {
152
+ objects: sceneObjects,
153
+ camera,
154
+ sky: environment?.sky,
155
+ clouds: environment?.clouds,
156
+ ocean: environment?.ocean,
157
+ terrain: environment?.terrain,
158
+ }) }), _jsx(CursorController, { effects: project.cursor?.effects, clickActions: project.cursor?.clickActions, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose })] }) }) }));
144
159
  });
145
160
  SceneBuilder.displayName = 'SceneBuilder';
146
161
  export default SceneBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"SkyController.d.ts","sourceRoot":"","sources":["../../src/components/SkyController.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAS7D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;CACtD;AAED,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,GAAG,EAAE,kBAAkB,GAqL8H,GAAG,CACtQ;AA6BD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"SkyController.d.ts","sourceRoot":"","sources":["../../src/components/SkyController.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAQ7D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;CACtD;AAED,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,GAAG,EAAE,kBAAkB,GA+I8H,GAAG,CACtQ;AA6BD,eAAe,aAAa,CAAC"}
@@ -2,7 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useObjectReady } from '../hooks/useObjectReady.js';
3
3
  import { useRef, useEffect, useCallback } from 'react';
4
4
  import { useFrame } from '@react-three/fiber';
5
- import { useAnimationEvents } from '../hooks/useAnimationEvents.js';
6
5
  import { useSkyUniforms } from '../hooks/useSkyUniforms.js';
7
6
  import { useSkyAnimation } from '../hooks/useSkyAnimation.js';
8
7
  import { useSkySystem } from '../hooks/useSkySystem.js';
@@ -27,44 +26,6 @@ function SkyController({ settings, timeSettings, scale = 1000, onSettingsChange,
27
26
  useEffect(() => {
28
27
  handleSettings(settings);
29
28
  }, [settings]);
30
- useAnimationEvents({
31
- onStepStart: (event) => {
32
- if (!event.step?.transitions)
33
- return;
34
- event.step.transitions.forEach((transition) => {
35
- if (transition.state === 'sky' && skyRef.current) {
36
- const toProps = transition.properties.to || {};
37
- const fromProps = transition.properties.from || {};
38
- // Handle `visible` as an immediate boolean switch — not animated
39
- if (toProps.visible !== undefined) {
40
- toggleSky(toProps.visible);
41
- }
42
- else if (fromProps.visible !== undefined) {
43
- toggleSky(fromProps.visible);
44
- }
45
- if (!skyRef.current.visible)
46
- return;
47
- // Only animate numeric sky uniform properties
48
- const SKY_KEYS = ['turbidity', 'rayleigh', 'mieCoefficient', 'mieDirectionalG', 'elevation', 'azimuth'];
49
- const hasNumericTarget = SKY_KEYS.some((k) => toProps[k] !== undefined);
50
- if (!hasNumericTarget)
51
- return;
52
- // Build `from`: current live values as baseline, overridden by explicit fromProps
53
- const liveValues = getCurrentValues() || {};
54
- const from = {};
55
- const to = {};
56
- for (const key of SKY_KEYS) {
57
- if (toProps[key] === undefined)
58
- continue;
59
- to[key] = toProps[key];
60
- from[key] = fromProps[key] ?? liveValues[key] ?? toProps[key];
61
- }
62
- isAnimatingRef.current = true;
63
- animateSkyTransition(from, to, updateUniforms, handleCompletedUniforms, event.step?.duration);
64
- }
65
- });
66
- },
67
- });
68
29
  const handleTimeUpdate = useCallback((state) => {
69
30
  const { sunAzimuth, sunElevation, timeInHours } = state;
70
31
  const atmosphericParams = calculateSkyParamsForTime(timeInHours);
@@ -1,7 +1,7 @@
1
1
  import type { ObjectReadyProps } from '../types/objectReady';
2
2
  import * as THREE from 'three';
3
3
  import type { TimeSettings, SkySettings, FogSettings } from '@3driseai/3drise-core';
4
- import type { VolumetricCloudsSettings } from '../types/cloudConfigs';
4
+ import type { VolumetricCloudsSettings } from '@3driseai/3drise-core';
5
5
  import React from 'react';
6
6
  /**
7
7
  * Sky, sun and everything lit by them.
@@ -1,9 +1,15 @@
1
1
  import type { ObjectReadyProps } from '../types/objectReady';
2
- import type { SparklesBurstConfig } from '@3driseai/3drise-core';
2
+ import type { AnimationOptions, MouseMoveDomain, SparklesBurstConfig } from '@3driseai/3drise-core';
3
3
  import React from "react";
4
4
  export interface SparklesBurstProps extends ObjectReadyProps {
5
5
  config: SparklesBurstConfig;
6
6
  boundingRadius?: number;
7
+ /** Scene object id of a standalone effect: the live-edit handle is found by it. */
8
+ id?: string;
9
+ /** Keyframes on this effect's config knobs (animations.effect.animations). */
10
+ keyframes?: AnimationOptions[];
11
+ /** Pointer bindings on this effect's config knobs (mouseMove.effect). */
12
+ mouseMove?: MouseMoveDomain;
7
13
  }
8
14
  declare const SparklesBurst: React.FC<SparklesBurstProps>;
9
15
  export default SparklesBurst;
@@ -1 +1 @@
1
- {"version":3,"file":"SparklesBurst.d.ts","sourceRoot":"","sources":["../../src/components/SparklesBurst.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwD/C,CAAC;AACF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"SparklesBurst.d.ts","sourceRoot":"","sources":["../../src/components/SparklesBurst.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,yEAAyE;IACzE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAsBD,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2C/C,CAAC;AACF,eAAe,aAAa,CAAC"}
@@ -1,11 +1,30 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useObjectReady } from '../hooks/useObjectReady.js';
3
- import { useEffect, useMemo, useRef } from 'react';
3
+ import { useConfigDriver } from '../hooks/useConfigDriver.js';
4
+ import { withConfigDefaults } from '../utils/configAnimations.js';
5
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';
4
6
  import { useFrame } from '@react-three/fiber';
5
7
  import * as THREE from 'three';
6
- import { SparklesBurstMaterial } from '@3driseai/3drise-core';
7
- const SparklesBurst = ({ config, boundingRadius, onObjectReady, onObjectDispose }) => {
8
- const planeSize = useMemo(() => Math.max(0.05, config.scale ?? 2.5), [config.scale]);
8
+ import { SparklesBurstMaterial, DEFAULT_GENERATIVE_EFFECTS, EFFECTS_ANIMATABLE } from '@3driseai/3drise-core';
9
+ /** Knobs that rebuild the plane or retime the burst cycle: commit only, never live. */
10
+ const STRUCTURAL = ['scale', 'loop', 'durationMs'];
11
+ /** Knobs a keyframe or pointer binding may drive per frame — exactly what applyConfig pushes. */
12
+ const ANIMATABLE = new Set(EFFECTS_ANIMATABLE.sparklesBurst.map((p) => p.value));
13
+ /** The single push point: every config knob reaches its uniform here. */
14
+ function applyConfig(material, c) {
15
+ const u = material.uniforms;
16
+ u.uCoreColor.value.set(c.coreColor);
17
+ u.uBurstColor.value.set(c.burstColor);
18
+ u.uRayCount.value = Math.max(3, c.rayCount);
19
+ u.uIntensity.value = c.intensity;
20
+ u.uOpacity.value = c.opacity;
21
+ u.uHoverColor.value.set(c.hoverColor);
22
+ u.uHoverRadius.value = c.hoverRadius;
23
+ u.uHoverIntensity.value = c.hoverIntensity;
24
+ }
25
+ const SparklesBurst = ({ config, boundingRadius, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) => {
26
+ const cfg = useMemo(() => withConfigDefaults(DEFAULT_GENERATIVE_EFFECTS.sparklesBurst, config), [config]);
27
+ const planeSize = useMemo(() => Math.max(0.05, cfg.scale), [cfg.scale]);
9
28
  const geometry = useMemo(() => new THREE.PlaneGeometry(planeSize, planeSize, 1, 1), [planeSize]);
10
29
  const material = useMemo(() => {
11
30
  const m = new SparklesBurstMaterial();
@@ -15,42 +34,26 @@ const SparklesBurst = ({ config, boundingRadius, onObjectReady, onObjectDispose
15
34
  m.blending = THREE.AdditiveBlending;
16
35
  return m;
17
36
  }, []);
18
- useEffect(() => {
19
- const u = material.uniforms;
20
- u.uCoreColor.value.set(config.coreColor ?? '#ffffff');
21
- u.uBurstColor.value.set(config.burstColor ?? '#ffaa00');
22
- u.uRayCount.value = Math.max(3, config.rayCount ?? 8);
23
- u.uIntensity.value = config.intensity ?? 1.0;
24
- u.uOpacity.value = config.opacity ?? 1.0;
25
- u.uHoverColor.value.set(config.hoverColor ?? '#ffffff');
26
- u.uHoverRadius.value = config.hoverRadius ?? 0.3;
27
- u.uHoverIntensity.value = config.hoverIntensity ?? 0.0;
28
- }, [
29
- config.coreColor,
30
- config.burstColor,
31
- config.rayCount,
32
- config.intensity,
33
- config.opacity,
34
- config.hoverColor,
35
- config.hoverRadius,
36
- config.hoverIntensity,
37
- material,
38
- ]);
39
37
  useEffect(() => () => { geometry.dispose(); material.dispose(); }, [geometry, material]);
40
38
  // Track elapsed time JS-side so loop on/off toggles cleanly without
41
39
  // depending on the global clock for the progress phase.
42
40
  const startRef = useRef(null);
43
41
  const rootRef = useRef(null);
44
42
  useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
43
+ const push = useCallback((merged) => {
44
+ applyConfig(material, merged);
45
+ }, [material]);
46
+ useLayoutEffect(() => { push(cfg); }, [push, cfg]);
47
+ useConfigDriver({ rootRef, id, family: 'effects', base: cfg, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
45
48
  // Reset start when loop toggles so behaviour is predictable.
46
- useEffect(() => { startRef.current = null; }, [config.loop, config.durationMs]);
49
+ useEffect(() => { startRef.current = null; }, [cfg.loop, cfg.durationMs]);
47
50
  useFrame((state) => {
48
51
  const now = state.clock.getElapsedTime();
49
52
  if (startRef.current === null)
50
53
  startRef.current = now;
51
54
  const elapsedMs = (now - startRef.current) * 1000;
52
- const duration = Math.max(1, config.durationMs ?? 1500);
53
- const loop = config.loop ?? true;
55
+ const duration = Math.max(1, cfg.durationMs);
56
+ const loop = cfg.loop;
54
57
  const progress = loop
55
58
  ? (elapsedMs % duration) / duration
56
59
  : Math.min(elapsedMs / duration, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"Stars.d.ts","sourceRoot":"","sources":["../../src/components/Stars.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAA4C,MAAM,OAAO,CAAC;AAQjF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAChD,QAAQ,EAAE,qBAAqB,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAOD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAuDnE;AAYD,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA4K/B,CAAC;AACF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Stars.d.ts","sourceRoot":"","sources":["../../src/components/Stars.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAA4C,MAAM,OAAO,CAAC;AAOjF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAChD,QAAQ,EAAE,qBAAqB,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAOD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAuDnE;AAYD,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAiI/B,CAAC;AACF,eAAe,KAAK,CAAC"}
@@ -5,7 +5,6 @@ import { BufferGeometry, BufferAttribute, AdditiveBlending, Color } from 'three'
5
5
  import { useFrame } from '@react-three/fiber';
6
6
  import { useSkySystem } from '../hooks/useSkySystem.js';
7
7
  import { useParticlesColors } from '../hooks/useParticlesColors.js';
8
- import { useAnimationEvents } from '../hooks/useAnimationEvents.js';
9
8
  import { useNumericAnimation } from '../hooks/useNumericAnimation.js';
10
9
  import { useMouseHandlers } from '../hooks/useMouseHandlers.js';
11
10
  const STARS_SHADER_UNIFORM_MAP = {
@@ -120,51 +119,6 @@ const Stars = ({ settings, timeSettings, sunSystemEnabled = false, onObjectReady
120
119
  }
121
120
  }, [sunSystemEnabled]);
122
121
  const { animateNumeric } = useNumericAnimation();
123
- useAnimationEvents({
124
- onStepStart: (event) => {
125
- if (!event.step?.transitions)
126
- return;
127
- for (const transition of event.step.transitions) {
128
- if (transition.state !== 'stars' && !pointsRef.current)
129
- continue;
130
- const toProps = transition.properties.to || {};
131
- const fromProps = transition.properties.from || {};
132
- // visible — immediate boolean switch
133
- if (toProps.visible !== undefined && pointsRef.current) {
134
- // setVisibleOverride(toProps.visible);
135
- pointsRef.current.visible = toProps.visible;
136
- }
137
- // color — existing path
138
- // speed = 1 / duration below; keep an instant (0) step finite.
139
- setDuration(Math.max(event.step.duration ?? 1, 0.001));
140
- if (toProps.color !== undefined) {
141
- setColors({
142
- baseColor: fromProps.color,
143
- targetColor: toProps.color,
144
- });
145
- }
146
- // numeric: rotateSpeed, size
147
- const STARS_NUMERIC_KEYS = ['rotateSpeed', 'size'];
148
- const from = {};
149
- const to = {};
150
- for (const key of STARS_NUMERIC_KEYS) {
151
- const toVal = toProps[key];
152
- if (toVal === undefined)
153
- continue;
154
- to[key] = toVal;
155
- from[key] = fromProps[key] ?? settings[key] ?? toVal;
156
- }
157
- if (Object.keys(to).length > 0) {
158
- animateNumeric(from, to, (updated) => {
159
- numericOverrideRef.current = { ...numericOverrideRef.current, ...updated };
160
- }, () => {
161
- numericOverrideRef.current = null;
162
- // setVisibleOverride(null);
163
- }, event.step?.duration);
164
- }
165
- }
166
- },
167
- });
168
122
  const handleTimeUpdate = useCallback((state) => {
169
123
  // Not gated on autoAnimate any more: scrubbing the time slider to
170
124
  // midnight has to bring the stars up the same way playing into midnight
@@ -250,6 +204,8 @@ const Stars = ({ settings, timeSettings, sunSystemEnabled = false, onObjectReady
250
204
  handleMouseMove(state.pointer);
251
205
  });
252
206
  // if (!(visibleOverride ?? visible) || !isVisible) return null;
253
- return (_jsx("points", { ref: pointsRef, geometry: geometry, scale: typeof scale === 'number' ? scale : scale[0], renderOrder: -1, frustumCulled: false, userData: { id: '3drise-stars' }, visible: visible, children: _jsx("starsMaterial", { ref: materialRef, transparent: true, depthWrite: false, depthTest: true, blending: AdditiveBlending, uColor: new Color(color), uOpacity: opacity, targetColor: new Color(colors.targetColor), colorMix: 0 }) }));
207
+ // No scale on <points>: the CreatedObject wrapper applies meshSettings.scale. Applying it
208
+ // here too squared the size, and animations (which drive the wrapper) moved only one factor.
209
+ return (_jsx("points", { ref: pointsRef, geometry: geometry, renderOrder: -1, frustumCulled: false, userData: { id: '3drise-stars' }, visible: visible, children: _jsx("starsMaterial", { ref: materialRef, transparent: true, depthWrite: false, depthTest: true, blending: AdditiveBlending, uColor: new Color(color), uOpacity: opacity, targetColor: new Color(colors.targetColor), colorMix: 0 }) }));
254
210
  };
255
211
  export default Stars;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { SkySettings, TimeSettings } from '@3driseai/3drise-core';
3
3
  import type { ObjectReadyProps } from '../types/objectReady';
4
- import type { ProceduralTerrainSettings } from '../types/terrainConfigs';
4
+ import type { ProceduralTerrainSettings } from '@3driseai/3drise-core';
5
5
  export interface TerrainBuilderProps extends ObjectReadyProps {
6
6
  /** Accepts a partial or older-shaped blob — including core's retired flat
7
7
  * `TerrainSettings`, which has no `config` and normalises to nothing rather
@@ -1 +1 @@
1
- {"version":3,"file":"TerrainBuilder.d.ts","sourceRoot":"","sources":["../../src/components/TerrainBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAOzE,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD;;mEAE+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+BjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"TerrainBuilder.d.ts","sourceRoot":"","sources":["../../src/components/TerrainBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAOvE,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD;;mEAE+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+BjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
- import { normalizeTerrain, normalizeTerrainQuality } from '../types/terrainConfigs.js';
3
+ import { normalizeTerrain, normalizeTerrainQuality } from '@3driseai/3drise-core';
4
4
  import Mountains from './terrain/Mountains.js';
5
5
  import Dunes from './terrain/Dunes.js';
6
6
  import Hills from './terrain/Hills.js';
@@ -1,21 +1,19 @@
1
1
  import type { ThreeElements } from '@react-three/fiber';
2
2
  import type { ObjectReadyProps } from '../types/objectReady';
3
3
  import type { VoronoiGridConfig } from '../types/gridConfigs';
4
+ import type { AnimationOptions, MouseMoveDomain } from '@3driseai/3drise-core';
4
5
  export interface VoronoiGridProps extends ObjectReadyProps {
5
6
  config?: VoronoiGridConfig;
6
7
  groupProps?: ThreeElements['group'];
8
+ /** Scene object id: the live-edit handle is found by it. */
9
+ id?: string;
10
+ /** Keyframes on this grid's config knobs (animations.grid.animations). */
11
+ keyframes?: AnimationOptions[];
12
+ /** Pointer bindings on this grid's config knobs (mouseMove.grid). */
13
+ mouseMove?: MouseMoveDomain;
7
14
  }
8
15
  /** VoronoiGridConfig — the single source of truth for a Voronoi grid instance. */
9
16
  export declare const defaultVoronoiGridConfig: VoronoiGridConfig;
10
- /**
11
- * An irregular cellular lattice on a shader plane.
12
- *
13
- * Seeds drift over time, so the whole lattice slowly morphs rather than
14
- * animating in place. `jitter` runs from a regular square lattice (0) to fully
15
- * scattered (1); `drift` sets how far the seeds wander. `sectionWidth` draws
16
- * the cell nuclei, `sectionSize` groups cells into clusters that share an
17
- * accent colour. With `displace > 0` the surface breaks into irregular plates.
18
- */
19
- export declare function VoronoiGrid({ config, groupProps, onObjectReady, onObjectDispose }: VoronoiGridProps): import("react").JSX.Element;
17
+ export declare function VoronoiGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: VoronoiGridProps): import("react").JSX.Element;
20
18
  export default VoronoiGrid;
21
19
  //# sourceMappingURL=VoronoiGrid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoronoiGrid.d.ts","sourceRoot":"","sources":["../../src/components/VoronoiGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACvC;AAKD,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,EAAE,iBA2BtC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAiC,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,gBAAgB,+BAgE9H;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"VoronoiGrid.d.ts","sourceRoot":"","sources":["../../src/components/VoronoiGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,4DAA4D;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAKD,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,EAAE,iBA2BtC,CAAC;AAoBF,wBAAgB,WAAW,CAAC,EAAE,MAAiC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,gBAAgB,+BA6CxJ;AAED,eAAe,WAAW,CAAC"}