@3driseai/3drise-viewer 0.1.27 → 0.1.29

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 (690) hide show
  1. package/dist/animationsV2/ClipPlayer.d.ts.map +1 -1
  2. package/dist/animationsV2/ClipPlayer.js +13 -9
  3. package/dist/animationsV2/ClipsRuntime.d.ts +44 -3
  4. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  5. package/dist/animationsV2/ClipsRuntime.js +173 -55
  6. package/dist/animationsV2/appliers.d.ts.map +1 -1
  7. package/dist/animationsV2/appliers.js +21 -5
  8. package/dist/animationsV2/index.d.ts +1 -1
  9. package/dist/animationsV2/index.d.ts.map +1 -1
  10. package/dist/animationsV2/normalize.d.ts.map +1 -1
  11. package/dist/animationsV2/normalize.js +7 -3
  12. package/dist/animationsV2/sequenceUtils.d.ts +44 -6
  13. package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
  14. package/dist/animationsV2/sequenceUtils.js +58 -12
  15. package/dist/animationsV2/types.d.ts +22 -12
  16. package/dist/animationsV2/types.d.ts.map +1 -1
  17. package/dist/api/sceneHandle.d.ts +35 -1
  18. package/dist/api/sceneHandle.d.ts.map +1 -1
  19. package/dist/api/sceneHandle.js +88 -17
  20. package/dist/components/AdvancedGrid.d.ts +1 -5
  21. package/dist/components/AdvancedGrid.d.ts.map +1 -1
  22. package/dist/components/AdvancedGrid.js +6 -35
  23. package/dist/components/AnimatedObject.d.ts.map +1 -1
  24. package/dist/components/AnimatedObject.js +9 -4
  25. package/dist/components/ApollonianGrid.d.ts +25 -0
  26. package/dist/components/ApollonianGrid.d.ts.map +1 -0
  27. package/dist/components/ApollonianGrid.js +55 -0
  28. package/dist/components/ChladniGrid.d.ts +1 -1
  29. package/dist/components/ChladniGrid.d.ts.map +1 -1
  30. package/dist/components/ChladniGrid.js +6 -35
  31. package/dist/components/CircuitGrid.d.ts +1 -1
  32. package/dist/components/CircuitGrid.d.ts.map +1 -1
  33. package/dist/components/CircuitGrid.js +6 -34
  34. package/dist/components/ConformalGrid.d.ts +25 -0
  35. package/dist/components/ConformalGrid.d.ts.map +1 -0
  36. package/dist/components/ConformalGrid.js +66 -0
  37. package/dist/components/ContourGrid.d.ts +1 -1
  38. package/dist/components/ContourGrid.d.ts.map +1 -1
  39. package/dist/components/ContourGrid.js +6 -34
  40. package/dist/components/CustomPrimitive.js +1 -1
  41. package/dist/components/EnvironmentObject.d.ts.map +1 -1
  42. package/dist/components/EnvironmentObject.js +9 -7
  43. package/dist/components/FlowNetGrid.d.ts +1 -1
  44. package/dist/components/FlowNetGrid.d.ts.map +1 -1
  45. package/dist/components/FlowNetGrid.js +6 -34
  46. package/dist/components/FractalGrid.d.ts +1 -1
  47. package/dist/components/FractalGrid.d.ts.map +1 -1
  48. package/dist/components/FractalGrid.js +6 -37
  49. package/dist/components/Galaxy.d.ts.map +1 -1
  50. package/dist/components/Galaxy.js +9 -23
  51. package/dist/components/GirihGrid.d.ts +1 -1
  52. package/dist/components/GirihGrid.d.ts.map +1 -1
  53. package/dist/components/GirihGrid.js +6 -35
  54. package/dist/components/GravWaveGrid.d.ts +1 -1
  55. package/dist/components/GravWaveGrid.d.ts.map +1 -1
  56. package/dist/components/GravWaveGrid.js +6 -35
  57. package/dist/components/GridsGenerator.d.ts +2 -2
  58. package/dist/components/GridsGenerator.d.ts.map +1 -1
  59. package/dist/components/GridsGenerator.js +21 -0
  60. package/dist/components/HexGrid.d.ts +1 -5
  61. package/dist/components/HexGrid.d.ts.map +1 -1
  62. package/dist/components/HexGrid.js +6 -36
  63. package/dist/components/HilbertGrid.d.ts +25 -0
  64. package/dist/components/HilbertGrid.d.ts.map +1 -0
  65. package/dist/components/HilbertGrid.js +66 -0
  66. package/dist/components/HyperbolicGrid.d.ts +1 -1
  67. package/dist/components/HyperbolicGrid.d.ts.map +1 -1
  68. package/dist/components/HyperbolicGrid.js +6 -34
  69. package/dist/components/LandObject.d.ts +9 -0
  70. package/dist/components/LandObject.d.ts.map +1 -0
  71. package/dist/components/LandObject.js +15 -0
  72. package/dist/components/LensingGrid.d.ts +25 -0
  73. package/dist/components/LensingGrid.d.ts.map +1 -0
  74. package/dist/components/LensingGrid.js +55 -0
  75. package/dist/components/LightsManager.d.ts.map +1 -1
  76. package/dist/components/LightsManager.js +8 -0
  77. package/dist/components/ModelBoundary.d.ts +2 -0
  78. package/dist/components/ModelBoundary.d.ts.map +1 -1
  79. package/dist/components/ModelBoundary.js +3 -0
  80. package/dist/components/ModelPrimitive.d.ts.map +1 -1
  81. package/dist/components/ModelPrimitive.js +6 -0
  82. package/dist/components/MoireGrid.d.ts +1 -1
  83. package/dist/components/MoireGrid.d.ts.map +1 -1
  84. package/dist/components/MoireGrid.js +6 -35
  85. package/dist/components/MoonDisc.d.ts +11 -0
  86. package/dist/components/MoonDisc.d.ts.map +1 -0
  87. package/dist/components/MoonDisc.js +128 -0
  88. package/dist/components/ObjectNode.d.ts.map +1 -1
  89. package/dist/components/ObjectNode.js +15 -4
  90. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  91. package/dist/components/ObjectsRenderer.js +7 -5
  92. package/dist/components/OceanBuilder.d.ts.map +1 -1
  93. package/dist/components/OceanBuilder.js +2 -0
  94. package/dist/components/ParastichyGrid.d.ts +25 -0
  95. package/dist/components/ParastichyGrid.d.ts.map +1 -0
  96. package/dist/components/ParastichyGrid.js +55 -0
  97. package/dist/components/PhyllotaxisGrid.d.ts +25 -0
  98. package/dist/components/PhyllotaxisGrid.d.ts.map +1 -0
  99. package/dist/components/PhyllotaxisGrid.js +66 -0
  100. package/dist/components/ProjectLoader.d.ts +5 -3
  101. package/dist/components/ProjectLoader.d.ts.map +1 -1
  102. package/dist/components/ProjectLoader.js +6 -3
  103. package/dist/components/QuasiGrid.d.ts +1 -1
  104. package/dist/components/QuasiGrid.d.ts.map +1 -1
  105. package/dist/components/QuasiGrid.js +6 -33
  106. package/dist/components/RadarGrid.d.ts +1 -1
  107. package/dist/components/RadarGrid.d.ts.map +1 -1
  108. package/dist/components/RadarGrid.js +6 -34
  109. package/dist/components/ReactionDiffusionGrid.d.ts +1 -1
  110. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
  111. package/dist/components/ReactionDiffusionGrid.js +6 -35
  112. package/dist/components/SceneBuilder.d.ts +25 -3
  113. package/dist/components/SceneBuilder.d.ts.map +1 -1
  114. package/dist/components/SceneBuilder.js +68 -38
  115. package/dist/components/SkyController.d.ts +25 -1
  116. package/dist/components/SkyController.d.ts.map +1 -1
  117. package/dist/components/SkyController.js +189 -130
  118. package/dist/components/SkyMesh.d.ts.map +1 -1
  119. package/dist/components/SkyMesh.js +26 -1
  120. package/dist/components/SkyStars.d.ts +11 -0
  121. package/dist/components/SkyStars.d.ts.map +1 -0
  122. package/dist/components/SkyStars.js +187 -0
  123. package/dist/components/SkySystem.d.ts +3 -3
  124. package/dist/components/SkySystem.d.ts.map +1 -1
  125. package/dist/components/SkySystem.js +8 -2
  126. package/dist/components/Sun.d.ts +15 -1
  127. package/dist/components/Sun.d.ts.map +1 -1
  128. package/dist/components/Sun.js +64 -3
  129. package/dist/components/SunLight.d.ts +6 -1
  130. package/dist/components/SunLight.d.ts.map +1 -1
  131. package/dist/components/SunLight.js +96 -44
  132. package/dist/components/TerrainBuilder.d.ts.map +1 -1
  133. package/dist/components/TerrainBuilder.js +2 -0
  134. package/dist/components/TextGenerator.d.ts +9 -0
  135. package/dist/components/TextGenerator.d.ts.map +1 -0
  136. package/dist/components/TextGenerator.js +29 -0
  137. package/dist/components/TruchetGrid.d.ts +25 -0
  138. package/dist/components/TruchetGrid.d.ts.map +1 -0
  139. package/dist/components/TruchetGrid.js +55 -0
  140. package/dist/components/VoronoiGrid.d.ts +1 -1
  141. package/dist/components/VoronoiGrid.d.ts.map +1 -1
  142. package/dist/components/VoronoiGrid.js +6 -33
  143. package/dist/components/WallpaperGrid.d.ts +1 -1
  144. package/dist/components/WallpaperGrid.d.ts.map +1 -1
  145. package/dist/components/WallpaperGrid.js +6 -35
  146. package/dist/components/environment/Rain.d.ts +15 -0
  147. package/dist/components/environment/Rain.d.ts.map +1 -0
  148. package/dist/components/environment/Rain.js +110 -0
  149. package/dist/components/environment/Rainbow.d.ts +20 -0
  150. package/dist/components/environment/Rainbow.d.ts.map +1 -0
  151. package/dist/components/environment/Rainbow.js +974 -0
  152. package/dist/components/environment/Sandstorm.d.ts +20 -0
  153. package/dist/components/environment/Sandstorm.d.ts.map +1 -0
  154. package/dist/components/environment/Sandstorm.js +776 -0
  155. package/dist/components/environment/Snow.d.ts +20 -0
  156. package/dist/components/environment/Snow.d.ts.map +1 -0
  157. package/dist/components/environment/Snow.js +609 -0
  158. package/dist/components/environment/Thunderstorm.d.ts +20 -0
  159. package/dist/components/environment/Thunderstorm.d.ts.map +1 -0
  160. package/dist/components/environment/Thunderstorm.js +731 -0
  161. package/dist/components/environment/Tornado.d.ts +20 -0
  162. package/dist/components/environment/Tornado.d.ts.map +1 -0
  163. package/dist/components/environment/Tornado.js +762 -0
  164. package/dist/components/environment/index.d.ts +13 -0
  165. package/dist/components/environment/index.d.ts.map +1 -0
  166. package/dist/components/environment/index.js +7 -0
  167. package/dist/components/index.d.ts +24 -10
  168. package/dist/components/index.d.ts.map +1 -1
  169. package/dist/components/index.js +15 -6
  170. package/dist/components/land/LandPatch.d.ts +15 -0
  171. package/dist/components/land/LandPatch.d.ts.map +1 -0
  172. package/dist/components/land/LandPatch.js +170 -0
  173. package/dist/components/land/index.d.ts +3 -0
  174. package/dist/components/land/index.d.ts.map +1 -0
  175. package/dist/components/land/index.js +1 -0
  176. package/dist/components/space/Earth.d.ts +16 -0
  177. package/dist/components/space/Earth.d.ts.map +1 -0
  178. package/dist/components/space/Earth.js +75 -0
  179. package/dist/components/space/ShootingStar.d.ts +21 -0
  180. package/dist/components/space/ShootingStar.d.ts.map +1 -0
  181. package/dist/components/space/ShootingStar.js +101 -0
  182. package/dist/components/space/ShootingStars.d.ts +16 -0
  183. package/dist/components/space/ShootingStars.d.ts.map +1 -0
  184. package/dist/components/space/ShootingStars.js +71 -0
  185. package/dist/components/space/SolarSystem.d.ts +16 -0
  186. package/dist/components/space/SolarSystem.d.ts.map +1 -0
  187. package/dist/components/space/SolarSystem.js +141 -0
  188. package/dist/components/space/Stars.d.ts +20 -0
  189. package/dist/components/space/Stars.d.ts.map +1 -0
  190. package/dist/components/space/Stars.js +160 -0
  191. package/dist/components/space/index.d.ts +11 -0
  192. package/dist/components/space/index.d.ts.map +1 -0
  193. package/dist/components/space/index.js +8 -0
  194. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
  195. package/dist/components/terrain/TerrainSurface.js +27 -3
  196. package/dist/components/terrain/types.d.ts +5 -1
  197. package/dist/components/terrain/types.d.ts.map +1 -1
  198. package/dist/components/text/BurnAwayText.d.ts +15 -0
  199. package/dist/components/text/BurnAwayText.d.ts.map +1 -0
  200. package/dist/components/text/BurnAwayText.js +4 -0
  201. package/dist/components/text/ChalkboardText.d.ts +15 -0
  202. package/dist/components/text/ChalkboardText.d.ts.map +1 -0
  203. package/dist/components/text/ChalkboardText.js +4 -0
  204. package/dist/components/text/ConstellationText.d.ts +15 -0
  205. package/dist/components/text/ConstellationText.d.ts.map +1 -0
  206. package/dist/components/text/ConstellationText.js +4 -0
  207. package/dist/components/text/EmbroideryText.d.ts +15 -0
  208. package/dist/components/text/EmbroideryText.d.ts.map +1 -0
  209. package/dist/components/text/EmbroideryText.js +4 -0
  210. package/dist/components/text/FourierSketchText.d.ts +15 -0
  211. package/dist/components/text/FourierSketchText.d.ts.map +1 -0
  212. package/dist/components/text/FourierSketchText.js +4 -0
  213. package/dist/components/text/FrostGrowthText.d.ts +15 -0
  214. package/dist/components/text/FrostGrowthText.d.ts.map +1 -0
  215. package/dist/components/text/FrostGrowthText.js +4 -0
  216. package/dist/components/text/HandwritingText.d.ts +15 -0
  217. package/dist/components/text/HandwritingText.d.ts.map +1 -0
  218. package/dist/components/text/HandwritingText.js +4 -0
  219. package/dist/components/text/InkBleedText.d.ts +15 -0
  220. package/dist/components/text/InkBleedText.d.ts.map +1 -0
  221. package/dist/components/text/InkBleedText.js +4 -0
  222. package/dist/components/text/LightPaintingText.d.ts +15 -0
  223. package/dist/components/text/LightPaintingText.d.ts.map +1 -0
  224. package/dist/components/text/LightPaintingText.js +4 -0
  225. package/dist/components/text/LiquidMetalText.d.ts +15 -0
  226. package/dist/components/text/LiquidMetalText.d.ts.map +1 -0
  227. package/dist/components/text/LiquidMetalText.js +4 -0
  228. package/dist/components/text/NeonTubeText.d.ts +15 -0
  229. package/dist/components/text/NeonTubeText.d.ts.map +1 -0
  230. package/dist/components/text/NeonTubeText.js +4 -0
  231. package/dist/components/text/PlasmaDischargeText.d.ts +15 -0
  232. package/dist/components/text/PlasmaDischargeText.d.ts.map +1 -0
  233. package/dist/components/text/PlasmaDischargeText.js +4 -0
  234. package/dist/components/text/TextObjectView.d.ts +12 -0
  235. package/dist/components/text/TextObjectView.d.ts.map +1 -0
  236. package/dist/components/text/TextObjectView.js +11 -0
  237. package/dist/components/text/engine/fieldkit.d.ts +24 -0
  238. package/dist/components/text/engine/fieldkit.d.ts.map +1 -0
  239. package/dist/components/text/engine/fieldkit.js +201 -0
  240. package/dist/components/text/engine/glyphs.d.ts +19 -0
  241. package/dist/components/text/engine/glyphs.d.ts.map +1 -0
  242. package/dist/components/text/engine/glyphs.js +269 -0
  243. package/dist/components/text/engine/looks/burnAway.d.ts +144 -0
  244. package/dist/components/text/engine/looks/burnAway.d.ts.map +1 -0
  245. package/dist/components/text/engine/looks/burnAway.js +593 -0
  246. package/dist/components/text/engine/looks/chalkboard.d.ts +135 -0
  247. package/dist/components/text/engine/looks/chalkboard.d.ts.map +1 -0
  248. package/dist/components/text/engine/looks/chalkboard.js +426 -0
  249. package/dist/components/text/engine/looks/constellation.d.ts +111 -0
  250. package/dist/components/text/engine/looks/constellation.d.ts.map +1 -0
  251. package/dist/components/text/engine/looks/constellation.js +496 -0
  252. package/dist/components/text/engine/looks/embroidery.d.ts +165 -0
  253. package/dist/components/text/engine/looks/embroidery.d.ts.map +1 -0
  254. package/dist/components/text/engine/looks/embroidery.js +645 -0
  255. package/dist/components/text/engine/looks/frostGrowth.d.ts +109 -0
  256. package/dist/components/text/engine/looks/frostGrowth.d.ts.map +1 -0
  257. package/dist/components/text/engine/looks/frostGrowth.js +727 -0
  258. package/dist/components/text/engine/looks/index.d.ts +2 -0
  259. package/dist/components/text/engine/looks/index.d.ts.map +1 -0
  260. package/dist/components/text/engine/looks/index.js +48 -0
  261. package/dist/components/text/engine/looks/inkBleed.d.ts +103 -0
  262. package/dist/components/text/engine/looks/inkBleed.d.ts.map +1 -0
  263. package/dist/components/text/engine/looks/inkBleed.js +590 -0
  264. package/dist/components/text/engine/looks/lightPainting.d.ts +132 -0
  265. package/dist/components/text/engine/looks/lightPainting.d.ts.map +1 -0
  266. package/dist/components/text/engine/looks/lightPainting.js +567 -0
  267. package/dist/components/text/engine/looks/liquidMetal.d.ts +135 -0
  268. package/dist/components/text/engine/looks/liquidMetal.d.ts.map +1 -0
  269. package/dist/components/text/engine/looks/liquidMetal.js +655 -0
  270. package/dist/components/text/engine/looks/plasmaDischarge.d.ts +126 -0
  271. package/dist/components/text/engine/looks/plasmaDischarge.d.ts.map +1 -0
  272. package/dist/components/text/engine/looks/plasmaDischarge.js +763 -0
  273. package/dist/components/text/engine/methods.d.ts +19 -0
  274. package/dist/components/text/engine/methods.d.ts.map +1 -0
  275. package/dist/components/text/engine/methods.js +126 -0
  276. package/dist/components/text/engine/playback.d.ts +40 -0
  277. package/dist/components/text/engine/playback.d.ts.map +1 -0
  278. package/dist/components/text/engine/playback.js +114 -0
  279. package/dist/components/text/engine/ribbon.d.ts +58 -0
  280. package/dist/components/text/engine/ribbon.d.ts.map +1 -0
  281. package/dist/components/text/engine/ribbon.js +250 -0
  282. package/dist/components/text/engine/variants.d.ts +159 -0
  283. package/dist/components/text/engine/variants.d.ts.map +1 -0
  284. package/dist/components/text/engine/variants.js +378 -0
  285. package/dist/components/text/fonts/architects-daughter.outline.d.ts +3 -0
  286. package/dist/components/text/fonts/architects-daughter.outline.d.ts.map +1 -0
  287. package/dist/components/text/fonts/architects-daughter.outline.js +4 -0
  288. package/dist/components/text/fonts/architects-daughter.strokes.d.ts +3 -0
  289. package/dist/components/text/fonts/architects-daughter.strokes.d.ts.map +1 -0
  290. package/dist/components/text/fonts/architects-daughter.strokes.js +4 -0
  291. package/dist/components/text/fonts/caveat.outline.d.ts +3 -0
  292. package/dist/components/text/fonts/caveat.outline.d.ts.map +1 -0
  293. package/dist/components/text/fonts/caveat.outline.js +4 -0
  294. package/dist/components/text/fonts/caveat.strokes.d.ts +3 -0
  295. package/dist/components/text/fonts/caveat.strokes.d.ts.map +1 -0
  296. package/dist/components/text/fonts/caveat.strokes.js +4 -0
  297. package/dist/components/text/fonts/courgette.outline.d.ts +3 -0
  298. package/dist/components/text/fonts/courgette.outline.d.ts.map +1 -0
  299. package/dist/components/text/fonts/courgette.outline.js +4 -0
  300. package/dist/components/text/fonts/courgette.strokes.d.ts +3 -0
  301. package/dist/components/text/fonts/courgette.strokes.d.ts.map +1 -0
  302. package/dist/components/text/fonts/courgette.strokes.js +4 -0
  303. package/dist/components/text/fonts/dancing-script.outline.d.ts +3 -0
  304. package/dist/components/text/fonts/dancing-script.outline.d.ts.map +1 -0
  305. package/dist/components/text/fonts/dancing-script.outline.js +4 -0
  306. package/dist/components/text/fonts/dancing-script.strokes.d.ts +3 -0
  307. package/dist/components/text/fonts/dancing-script.strokes.d.ts.map +1 -0
  308. package/dist/components/text/fonts/dancing-script.strokes.js +4 -0
  309. package/dist/components/text/fonts/gochi-hand.outline.d.ts +3 -0
  310. package/dist/components/text/fonts/gochi-hand.outline.d.ts.map +1 -0
  311. package/dist/components/text/fonts/gochi-hand.outline.js +4 -0
  312. package/dist/components/text/fonts/gochi-hand.strokes.d.ts +3 -0
  313. package/dist/components/text/fonts/gochi-hand.strokes.d.ts.map +1 -0
  314. package/dist/components/text/fonts/gochi-hand.strokes.js +4 -0
  315. package/dist/components/text/fonts/handlee.outline.d.ts +3 -0
  316. package/dist/components/text/fonts/handlee.outline.d.ts.map +1 -0
  317. package/dist/components/text/fonts/handlee.outline.js +4 -0
  318. package/dist/components/text/fonts/handlee.strokes.d.ts +3 -0
  319. package/dist/components/text/fonts/handlee.strokes.d.ts.map +1 -0
  320. package/dist/components/text/fonts/handlee.strokes.js +4 -0
  321. package/dist/components/text/fonts/index.d.ts +5 -0
  322. package/dist/components/text/fonts/index.d.ts.map +1 -0
  323. package/dist/components/text/fonts/index.js +44 -0
  324. package/dist/components/text/fonts/indie-flower.outline.d.ts +3 -0
  325. package/dist/components/text/fonts/indie-flower.outline.d.ts.map +1 -0
  326. package/dist/components/text/fonts/indie-flower.outline.js +4 -0
  327. package/dist/components/text/fonts/indie-flower.strokes.d.ts +3 -0
  328. package/dist/components/text/fonts/indie-flower.strokes.d.ts.map +1 -0
  329. package/dist/components/text/fonts/indie-flower.strokes.js +4 -0
  330. package/dist/components/text/fonts/kalam.outline.d.ts +3 -0
  331. package/dist/components/text/fonts/kalam.outline.d.ts.map +1 -0
  332. package/dist/components/text/fonts/kalam.outline.js +4 -0
  333. package/dist/components/text/fonts/kalam.strokes.d.ts +3 -0
  334. package/dist/components/text/fonts/kalam.strokes.d.ts.map +1 -0
  335. package/dist/components/text/fonts/kalam.strokes.js +4 -0
  336. package/dist/components/text/fonts/kaushan-script.outline.d.ts +3 -0
  337. package/dist/components/text/fonts/kaushan-script.outline.d.ts.map +1 -0
  338. package/dist/components/text/fonts/kaushan-script.outline.js +4 -0
  339. package/dist/components/text/fonts/kaushan-script.strokes.d.ts +3 -0
  340. package/dist/components/text/fonts/kaushan-script.strokes.d.ts.map +1 -0
  341. package/dist/components/text/fonts/kaushan-script.strokes.js +4 -0
  342. package/dist/components/text/fonts/mynerve.outline.d.ts +3 -0
  343. package/dist/components/text/fonts/mynerve.outline.d.ts.map +1 -0
  344. package/dist/components/text/fonts/mynerve.outline.js +4 -0
  345. package/dist/components/text/fonts/mynerve.strokes.d.ts +3 -0
  346. package/dist/components/text/fonts/mynerve.strokes.d.ts.map +1 -0
  347. package/dist/components/text/fonts/mynerve.strokes.js +4 -0
  348. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts +3 -0
  349. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts.map +1 -0
  350. package/dist/components/text/fonts/nanum-pen-script.outline.js +4 -0
  351. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts +3 -0
  352. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts.map +1 -0
  353. package/dist/components/text/fonts/nanum-pen-script.strokes.js +4 -0
  354. package/dist/components/text/fonts/pacifico.outline.d.ts +3 -0
  355. package/dist/components/text/fonts/pacifico.outline.d.ts.map +1 -0
  356. package/dist/components/text/fonts/pacifico.outline.js +4 -0
  357. package/dist/components/text/fonts/pacifico.strokes.d.ts +3 -0
  358. package/dist/components/text/fonts/pacifico.strokes.d.ts.map +1 -0
  359. package/dist/components/text/fonts/pacifico.strokes.js +4 -0
  360. package/dist/components/text/fonts/patrick-hand.outline.d.ts +3 -0
  361. package/dist/components/text/fonts/patrick-hand.outline.d.ts.map +1 -0
  362. package/dist/components/text/fonts/patrick-hand.outline.js +4 -0
  363. package/dist/components/text/fonts/patrick-hand.strokes.d.ts +3 -0
  364. package/dist/components/text/fonts/patrick-hand.strokes.d.ts.map +1 -0
  365. package/dist/components/text/fonts/patrick-hand.strokes.js +4 -0
  366. package/dist/components/text/fonts/poppins.outline.d.ts +3 -0
  367. package/dist/components/text/fonts/poppins.outline.d.ts.map +1 -0
  368. package/dist/components/text/fonts/poppins.outline.js +4 -0
  369. package/dist/components/text/fonts/poppins.strokes.d.ts +3 -0
  370. package/dist/components/text/fonts/poppins.strokes.d.ts.map +1 -0
  371. package/dist/components/text/fonts/poppins.strokes.js +4 -0
  372. package/dist/components/text/fonts/satisfy.outline.d.ts +3 -0
  373. package/dist/components/text/fonts/satisfy.outline.d.ts.map +1 -0
  374. package/dist/components/text/fonts/satisfy.outline.js +4 -0
  375. package/dist/components/text/fonts/satisfy.strokes.d.ts +3 -0
  376. package/dist/components/text/fonts/satisfy.strokes.d.ts.map +1 -0
  377. package/dist/components/text/fonts/satisfy.strokes.js +4 -0
  378. package/dist/components/text/fonts/sriracha.outline.d.ts +3 -0
  379. package/dist/components/text/fonts/sriracha.outline.d.ts.map +1 -0
  380. package/dist/components/text/fonts/sriracha.outline.js +4 -0
  381. package/dist/components/text/fonts/sriracha.strokes.d.ts +3 -0
  382. package/dist/components/text/fonts/sriracha.strokes.d.ts.map +1 -0
  383. package/dist/components/text/fonts/sriracha.strokes.js +4 -0
  384. package/dist/components/text/index.d.ts +27 -0
  385. package/dist/components/text/index.d.ts.map +1 -0
  386. package/dist/components/text/index.js +13 -0
  387. package/dist/components/text/useTextObject.d.ts +21 -0
  388. package/dist/components/text/useTextObject.d.ts.map +1 -0
  389. package/dist/components/text/useTextObject.js +118 -0
  390. package/dist/components/water/OceanSurface.d.ts.map +1 -1
  391. package/dist/components/water/OceanSurface.js +3 -1
  392. package/dist/components/water/WaterBody.d.ts.map +1 -1
  393. package/dist/components/water/WaterBody.js +3 -1
  394. package/dist/components/water/types.d.ts +5 -1
  395. package/dist/components/water/types.d.ts.map +1 -1
  396. package/dist/constants.d.ts +1 -1
  397. package/dist/constants.d.ts.map +1 -1
  398. package/dist/constants.js +5 -1
  399. package/dist/hooks/index.d.ts +2 -0
  400. package/dist/hooks/index.d.ts.map +1 -1
  401. package/dist/hooks/index.js +1 -0
  402. package/dist/hooks/useCloudSun.d.ts +9 -4
  403. package/dist/hooks/useCloudSun.d.ts.map +1 -1
  404. package/dist/hooks/useCloudSun.js +17 -7
  405. package/dist/hooks/useConfigLive.d.ts +3 -2
  406. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  407. package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
  408. package/dist/hooks/useContinuousEffects.js +4 -10
  409. package/dist/hooks/useEnvironmentProbe.d.ts +3 -22
  410. package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -1
  411. package/dist/hooks/useEnvironmentProbe.js +47 -8
  412. package/dist/hooks/useGridSurface.d.ts +3 -10
  413. package/dist/hooks/useGridSurface.d.ts.map +1 -1
  414. package/dist/hooks/useGridSurface.js +5 -31
  415. package/dist/hooks/useInteraction.d.ts.map +1 -1
  416. package/dist/hooks/useInteraction.js +19 -72
  417. package/dist/hooks/useLightConfig.d.ts +2 -1
  418. package/dist/hooks/useLightConfig.d.ts.map +1 -1
  419. package/dist/hooks/useOceanMaterial.d.ts +6 -2
  420. package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
  421. package/dist/hooks/useOceanMaterial.js +37 -2
  422. package/dist/hooks/useSkyLive.d.ts +23 -0
  423. package/dist/hooks/useSkyLive.d.ts.map +1 -0
  424. package/dist/hooks/useSkyLive.js +30 -0
  425. package/dist/hooks/useSkyUniforms.d.ts.map +1 -1
  426. package/dist/hooks/useSkyUniforms.js +2 -10
  427. package/dist/hooks/useTerrainLive.d.ts +3 -1
  428. package/dist/hooks/useTerrainLive.d.ts.map +1 -1
  429. package/dist/hooks/useTerrainTextures.d.ts +38 -0
  430. package/dist/hooks/useTerrainTextures.d.ts.map +1 -0
  431. package/dist/hooks/useTerrainTextures.js +149 -0
  432. package/dist/index.d.ts +11 -2
  433. package/dist/index.d.ts.map +1 -1
  434. package/dist/index.js +8 -1
  435. package/dist/operations/catalogue/blastOff.d.ts +3 -0
  436. package/dist/operations/catalogue/blastOff.d.ts.map +1 -0
  437. package/dist/operations/catalogue/blastOff.js +118 -0
  438. package/dist/operations/catalogue/bounce.d.ts +3 -0
  439. package/dist/operations/catalogue/bounce.d.ts.map +1 -0
  440. package/dist/operations/catalogue/bounce.js +34 -0
  441. package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -1
  442. package/dist/operations/catalogue/curlSmoke.js +3 -1
  443. package/dist/operations/catalogue/dissolve.d.ts.map +1 -1
  444. package/dist/operations/catalogue/dissolve.js +2 -1
  445. package/dist/operations/catalogue/driftUp.d.ts +3 -0
  446. package/dist/operations/catalogue/driftUp.d.ts.map +1 -0
  447. package/dist/operations/catalogue/driftUp.js +57 -0
  448. package/dist/operations/catalogue/emberAsh.d.ts.map +1 -1
  449. package/dist/operations/catalogue/emberAsh.js +2 -1
  450. package/dist/operations/catalogue/flip.d.ts.map +1 -1
  451. package/dist/operations/catalogue/flip.js +19 -9
  452. package/dist/operations/catalogue/float.d.ts +3 -0
  453. package/dist/operations/catalogue/float.d.ts.map +1 -0
  454. package/dist/operations/catalogue/float.js +39 -0
  455. package/dist/operations/catalogue/flyBy.d.ts +3 -0
  456. package/dist/operations/catalogue/flyBy.d.ts.map +1 -0
  457. package/dist/operations/catalogue/flyBy.js +79 -0
  458. package/dist/operations/catalogue/frost.d.ts.map +1 -1
  459. package/dist/operations/catalogue/frost.js +10 -3
  460. package/dist/operations/catalogue/grow.d.ts +3 -0
  461. package/dist/operations/catalogue/grow.d.ts.map +1 -0
  462. package/dist/operations/catalogue/grow.js +19 -0
  463. package/dist/operations/catalogue/hologram.d.ts.map +1 -1
  464. package/dist/operations/catalogue/hologram.js +11 -5
  465. package/dist/operations/catalogue/jelly.d.ts.map +1 -1
  466. package/dist/operations/catalogue/jelly.js +18 -8
  467. package/dist/operations/catalogue/knockAway.d.ts +3 -0
  468. package/dist/operations/catalogue/knockAway.d.ts.map +1 -0
  469. package/dist/operations/catalogue/knockAway.js +74 -0
  470. package/dist/operations/catalogue/leafFall.d.ts +3 -0
  471. package/dist/operations/catalogue/leafFall.d.ts.map +1 -0
  472. package/dist/operations/catalogue/leafFall.js +74 -0
  473. package/dist/operations/catalogue/lidarScan.d.ts.map +1 -1
  474. package/dist/operations/catalogue/lidarScan.js +4 -1
  475. package/dist/operations/catalogue/metalize.d.ts.map +1 -1
  476. package/dist/operations/catalogue/metalize.js +8 -2
  477. package/dist/operations/catalogue/motionTrail.d.ts +6 -0
  478. package/dist/operations/catalogue/motionTrail.d.ts.map +1 -0
  479. package/dist/operations/catalogue/motionTrail.js +221 -0
  480. package/dist/operations/catalogue/petrify.d.ts.map +1 -1
  481. package/dist/operations/catalogue/petrify.js +9 -3
  482. package/dist/operations/catalogue/physicalExit.d.ts +55 -0
  483. package/dist/operations/catalogue/physicalExit.d.ts.map +1 -0
  484. package/dist/operations/catalogue/physicalExit.js +165 -0
  485. package/dist/operations/catalogue/physicalHeld.d.ts +41 -0
  486. package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -0
  487. package/dist/operations/catalogue/physicalHeld.js +78 -0
  488. package/dist/operations/catalogue/physicalMix.d.ts +45 -0
  489. package/dist/operations/catalogue/physicalMix.d.ts.map +1 -0
  490. package/dist/operations/catalogue/physicalMix.js +144 -0
  491. package/dist/operations/catalogue/pop.d.ts +3 -0
  492. package/dist/operations/catalogue/pop.d.ts.map +1 -0
  493. package/dist/operations/catalogue/pop.js +44 -0
  494. package/dist/operations/catalogue/print3d.d.ts.map +1 -1
  495. package/dist/operations/catalogue/print3d.js +5 -1
  496. package/dist/operations/catalogue/pulse.d.ts +3 -0
  497. package/dist/operations/catalogue/pulse.d.ts.map +1 -0
  498. package/dist/operations/catalogue/pulse.js +29 -0
  499. package/dist/operations/catalogue/restPose.d.ts +5 -7
  500. package/dist/operations/catalogue/restPose.d.ts.map +1 -1
  501. package/dist/operations/catalogue/restPose.js +18 -48
  502. package/dist/operations/catalogue/rotate.d.ts +3 -0
  503. package/dist/operations/catalogue/rotate.d.ts.map +1 -0
  504. package/dist/operations/catalogue/rotate.js +49 -0
  505. package/dist/operations/catalogue/shake.d.ts +3 -0
  506. package/dist/operations/catalogue/shake.d.ts.map +1 -0
  507. package/dist/operations/catalogue/shake.js +31 -0
  508. package/dist/operations/catalogue/shatter.d.ts.map +1 -1
  509. package/dist/operations/catalogue/shatter.js +5 -1
  510. package/dist/operations/catalogue/slam.d.ts +3 -0
  511. package/dist/operations/catalogue/slam.d.ts.map +1 -0
  512. package/dist/operations/catalogue/slam.js +89 -0
  513. package/dist/operations/catalogue/slingshot.d.ts +3 -0
  514. package/dist/operations/catalogue/slingshot.d.ts.map +1 -0
  515. package/dist/operations/catalogue/slingshot.js +88 -0
  516. package/dist/operations/catalogue/spin.d.ts.map +1 -1
  517. package/dist/operations/catalogue/spin.js +24 -13
  518. package/dist/operations/catalogue/sway.d.ts +3 -0
  519. package/dist/operations/catalogue/sway.d.ts.map +1 -0
  520. package/dist/operations/catalogue/sway.js +23 -0
  521. package/dist/operations/catalogue/swirl.d.ts.map +1 -1
  522. package/dist/operations/catalogue/swirl.js +6 -5
  523. package/dist/operations/catalogue/trailCore.d.ts +89 -0
  524. package/dist/operations/catalogue/trailCore.d.ts.map +1 -0
  525. package/dist/operations/catalogue/trailCore.js +190 -0
  526. package/dist/operations/catalogue/trailGhosts.d.ts +5 -0
  527. package/dist/operations/catalogue/trailGhosts.d.ts.map +1 -0
  528. package/dist/operations/catalogue/trailGhosts.js +179 -0
  529. package/dist/operations/catalogue/trailStampStyles.d.ts +11 -0
  530. package/dist/operations/catalogue/trailStampStyles.d.ts.map +1 -0
  531. package/dist/operations/catalogue/trailStampStyles.js +479 -0
  532. package/dist/operations/catalogue/trailStamps.d.ts +57 -0
  533. package/dist/operations/catalogue/trailStamps.d.ts.map +1 -0
  534. package/dist/operations/catalogue/trailStamps.js +349 -0
  535. package/dist/operations/catalogue/trailStreaks.d.ts +3 -0
  536. package/dist/operations/catalogue/trailStreaks.d.ts.map +1 -0
  537. package/dist/operations/catalogue/trailStreaks.js +147 -0
  538. package/dist/operations/catalogue/transitionField.d.ts +30 -0
  539. package/dist/operations/catalogue/transitionField.d.ts.map +1 -1
  540. package/dist/operations/catalogue/transitionField.js +21 -0
  541. package/dist/operations/catalogue/turnAway.d.ts +3 -0
  542. package/dist/operations/catalogue/turnAway.d.ts.map +1 -0
  543. package/dist/operations/catalogue/turnAway.js +54 -0
  544. package/dist/operations/catalogue/vortexDrain.d.ts +3 -0
  545. package/dist/operations/catalogue/vortexDrain.d.ts.map +1 -0
  546. package/dist/operations/catalogue/vortexDrain.js +68 -0
  547. package/dist/operations/catalogue/warp.d.ts +3 -0
  548. package/dist/operations/catalogue/warp.d.ts.map +1 -0
  549. package/dist/operations/catalogue/warp.js +73 -0
  550. package/dist/operations/catalogue/whoosh.d.ts +3 -0
  551. package/dist/operations/catalogue/whoosh.d.ts.map +1 -0
  552. package/dist/operations/catalogue/whoosh.js +84 -0
  553. package/dist/operations/catalogue/wobble.d.ts +3 -0
  554. package/dist/operations/catalogue/wobble.d.ts.map +1 -0
  555. package/dist/operations/catalogue/wobble.js +23 -0
  556. package/dist/operations/clipPreview.d.ts +3 -0
  557. package/dist/operations/clipPreview.d.ts.map +1 -0
  558. package/dist/operations/clipPreview.js +20 -0
  559. package/dist/operations/groupFanout.d.ts +96 -0
  560. package/dist/operations/groupFanout.d.ts.map +1 -0
  561. package/dist/operations/groupFanout.js +365 -0
  562. package/dist/operations/groups.d.ts +20 -0
  563. package/dist/operations/groups.d.ts.map +1 -0
  564. package/dist/operations/groups.js +66 -0
  565. package/dist/operations/index.d.ts +5 -2
  566. package/dist/operations/index.d.ts.map +1 -1
  567. package/dist/operations/index.js +5 -2
  568. package/dist/operations/objectEffects.d.ts +161 -6
  569. package/dist/operations/objectEffects.d.ts.map +1 -1
  570. package/dist/operations/objectEffects.js +1091 -17
  571. package/dist/operations/registry.d.ts.map +1 -1
  572. package/dist/operations/registry.js +24 -2
  573. package/dist/operations/runtime.d.ts +57 -2
  574. package/dist/operations/runtime.d.ts.map +1 -1
  575. package/dist/operations/runtime.js +161 -18
  576. package/dist/operations/types.d.ts +60 -3
  577. package/dist/operations/types.d.ts.map +1 -1
  578. package/dist/operations/types.js +5 -1
  579. package/dist/operations/useObjectEffectLayers.d.ts +2 -2
  580. package/dist/operations/useObjectEffectLayers.d.ts.map +1 -1
  581. package/dist/operations/useObjectEffectLayers.js +31 -10
  582. package/dist/operations/usePresentedVisibility.d.ts +10 -0
  583. package/dist/operations/usePresentedVisibility.d.ts.map +1 -0
  584. package/dist/operations/usePresentedVisibility.js +53 -0
  585. package/dist/presets/terrainBiomes.d.ts +67 -0
  586. package/dist/presets/terrainBiomes.d.ts.map +1 -0
  587. package/dist/presets/terrainBiomes.js +294 -0
  588. package/dist/presets/terrainPresets.d.ts +6 -0
  589. package/dist/presets/terrainPresets.d.ts.map +1 -1
  590. package/dist/presets/terrainPresets.js +26 -38
  591. package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
  592. package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
  593. package/dist/shaders/glsl/oceanCore.glsl.js +17 -0
  594. package/dist/shaders/glsl/surfaceCore.glsl.d.ts +21 -0
  595. package/dist/shaders/glsl/surfaceCore.glsl.d.ts.map +1 -0
  596. package/dist/shaders/glsl/surfaceCore.glsl.js +120 -0
  597. package/dist/shaders/glsl/terrainCore.glsl.d.ts +16 -3
  598. package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -1
  599. package/dist/shaders/glsl/terrainCore.glsl.js +266 -20
  600. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +2 -0
  601. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
  602. package/dist/shaders/ocean/OceanSurfaceMaterial.js +3 -0
  603. package/dist/shaders/terrain/TerrainMaterial.d.ts +17 -0
  604. package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
  605. package/dist/shaders/terrain/TerrainMaterial.js +107 -8
  606. package/dist/triggers/engine.d.ts +44 -0
  607. package/dist/triggers/engine.d.ts.map +1 -0
  608. package/dist/triggers/engine.js +165 -0
  609. package/dist/triggers/hosts/actions.d.ts +8 -0
  610. package/dist/triggers/hosts/actions.d.ts.map +1 -0
  611. package/dist/triggers/hosts/actions.js +22 -0
  612. package/dist/triggers/hosts/interactions.d.ts +6 -0
  613. package/dist/triggers/hosts/interactions.d.ts.map +1 -0
  614. package/dist/triggers/hosts/interactions.js +4 -0
  615. package/dist/triggers/hosts/timelineCues.d.ts +2 -0
  616. package/dist/triggers/hosts/timelineCues.d.ts.map +1 -0
  617. package/dist/triggers/hosts/timelineCues.js +22 -0
  618. package/dist/triggers/index.d.ts +13 -0
  619. package/dist/triggers/index.d.ts.map +1 -0
  620. package/dist/triggers/index.js +9 -0
  621. package/dist/triggers/kinds/action.d.ts +2 -0
  622. package/dist/triggers/kinds/action.d.ts.map +1 -0
  623. package/dist/triggers/kinds/action.js +31 -0
  624. package/dist/triggers/kinds/animations.d.ts +2 -0
  625. package/dist/triggers/kinds/animations.d.ts.map +1 -0
  626. package/dist/triggers/kinds/animations.js +75 -0
  627. package/dist/triggers/kinds/effects.d.ts +2 -0
  628. package/dist/triggers/kinds/effects.d.ts.map +1 -0
  629. package/dist/triggers/kinds/effects.js +27 -0
  630. package/dist/triggers/kinds/index.d.ts +4 -0
  631. package/dist/triggers/kinds/index.d.ts.map +1 -0
  632. package/dist/triggers/kinds/index.js +4 -0
  633. package/dist/triggers/log.d.ts +21 -0
  634. package/dist/triggers/log.d.ts.map +1 -0
  635. package/dist/triggers/log.js +43 -0
  636. package/dist/triggers/readiness.d.ts +40 -0
  637. package/dist/triggers/readiness.d.ts.map +1 -0
  638. package/dist/triggers/readiness.js +158 -0
  639. package/dist/triggers/registry.d.ts +41 -0
  640. package/dist/triggers/registry.d.ts.map +1 -0
  641. package/dist/triggers/registry.js +7 -0
  642. package/dist/types/gridConfigs.d.ts +117 -19
  643. package/dist/types/gridConfigs.d.ts.map +1 -1
  644. package/dist/types/index.d.ts +1 -1
  645. package/dist/types/index.d.ts.map +1 -1
  646. package/dist/ui/UiAnchorUpdater.d.ts +10 -0
  647. package/dist/ui/UiAnchorUpdater.d.ts.map +1 -0
  648. package/dist/ui/UiAnchorUpdater.js +111 -0
  649. package/dist/ui/UiLayers.d.ts +20 -0
  650. package/dist/ui/UiLayers.d.ts.map +1 -0
  651. package/dist/ui/UiLayers.js +57 -0
  652. package/dist/ui/index.d.ts +9 -0
  653. package/dist/ui/index.d.ts.map +1 -0
  654. package/dist/ui/index.js +6 -0
  655. package/dist/ui/uiAnchors.d.ts +21 -0
  656. package/dist/ui/uiAnchors.d.ts.map +1 -0
  657. package/dist/ui/uiAnchors.js +22 -0
  658. package/dist/ui/uiBaseStyles.d.ts +2 -0
  659. package/dist/ui/uiBaseStyles.d.ts.map +1 -0
  660. package/dist/ui/uiBaseStyles.js +100 -0
  661. package/dist/ui/uiBinder.d.ts +30 -0
  662. package/dist/ui/uiBinder.d.ts.map +1 -0
  663. package/dist/ui/uiBinder.js +344 -0
  664. package/dist/utils/configAnimations.d.ts.map +1 -1
  665. package/dist/utils/configAnimations.js +5 -1
  666. package/dist/utils/gridConfig.d.ts +1 -1
  667. package/dist/utils/gridConfig.d.ts.map +1 -1
  668. package/dist/utils/gridConfig.js +1 -1
  669. package/dist/utils/landPatch.d.ts +33 -0
  670. package/dist/utils/landPatch.d.ts.map +1 -0
  671. package/dist/utils/landPatch.js +114 -0
  672. package/dist/utils/renderedSky.d.ts +32 -0
  673. package/dist/utils/renderedSky.d.ts.map +1 -0
  674. package/dist/utils/renderedSky.js +57 -0
  675. package/dist/utils/skyMoon.d.ts +35 -0
  676. package/dist/utils/skyMoon.d.ts.map +1 -0
  677. package/dist/utils/skyMoon.js +41 -0
  678. package/dist/utils/terrainHeight.d.ts +4 -0
  679. package/dist/utils/terrainHeight.d.ts.map +1 -0
  680. package/dist/utils/terrainHeight.js +150 -0
  681. package/dist/utils/terrainTextureResolver.d.ts +18 -0
  682. package/dist/utils/terrainTextureResolver.d.ts.map +1 -0
  683. package/dist/utils/terrainTextureResolver.js +17 -0
  684. package/dist/utils/terrainUniforms.d.ts +17 -0
  685. package/dist/utils/terrainUniforms.d.ts.map +1 -1
  686. package/dist/utils/terrainUniforms.js +84 -0
  687. package/dist/utils/textureArrays.d.ts +29 -0
  688. package/dist/utils/textureArrays.d.ts.map +1 -0
  689. package/dist/utils/textureArrays.js +140 -0
  690. package/package.json +2 -2
@@ -12,7 +12,7 @@ export interface HyperbolicGridProps extends ObjectReadyProps {
12
12
  /** Pointer bindings on this grid's config knobs (mouseMove.grid). */
13
13
  mouseMove?: MouseMoveDomain;
14
14
  }
15
- /** HyperbolicGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
15
+ /** HyperbolicGridConfig defaults: the core registry entry (DEFAULT_GRIDS.hyperbolicGrid), never a copy. */
16
16
  export declare const defaultHyperbolicGridConfig: HyperbolicGridConfig;
17
17
  export declare function HyperbolicGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: HyperbolicGridProps): import("react").JSX.Element;
18
18
  export default HyperbolicGrid;
@@ -1 +1 @@
1
- {"version":3,"file":"HyperbolicGrid.d.ts","sourceRoot":"","sources":["../../src/components/HyperbolicGrid.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,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,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,iGAAiG;AACjG,eAAO,MAAM,2BAA2B,EAAE,oBA4BzC,CAAC;AAcF,wBAAgB,cAAc,CAAC,EAAE,MAAoC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,mBAAmB,+BA4CjK;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"HyperbolicGrid.d.ts","sourceRoot":"","sources":["../../src/components/HyperbolicGrid.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,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,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,2GAA2G;AAC3G,eAAO,MAAM,2BAA2B,EAA8C,oBAAoB,CAAC;AAc3G,wBAAgB,cAAc,CAAC,EAAE,MAAoC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,mBAAmB,+BA4CjK;AAED,eAAe,cAAc,CAAC"}
@@ -6,39 +6,11 @@ import { useGridSurface } from '../hooks/useGridSurface.js';
6
6
  import { useConfigDriver } from '../hooks/useConfigDriver.js';
7
7
  import { withConfigDefaults } from '../utils/configAnimations.js';
8
8
  import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
9
- import { HyperbolicGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
9
+ import { HyperbolicGridMaterial, DEFAULT_GRIDS, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
10
10
  // Side-effect import registers <hyperbolicGridMaterial> via extend().
11
11
  void HyperbolicGridMaterial;
12
- /** HyperbolicGridConfig defaults. Must match the catalog entry in grid-defaults.json exactly. */
13
- export const defaultHyperbolicGridConfig = {
14
- cellSize: 22,
15
- size: 50,
16
- flat: true,
17
- segments: undefined,
18
- lineMode: 1,
19
- cellMode: 2,
20
- lineWidth: 1.4,
21
- sectionSize: 3,
22
- sectionWidth: 1,
23
- animSpeed: 1,
24
- animScale: 1.2,
25
- animIntensity: 0.7,
26
- fadeDistance: undefined,
27
- fadeStrength: 0.2,
28
- displace: 0,
29
- sides: 7,
30
- valence: 3,
31
- drift: 0.5,
32
- lineColor: '#c9a4ff',
33
- sectionColor: '#ffd9f2',
34
- cellColor: '#2a1446',
35
- glowColor: '#b07cff',
36
- bgColor: '#07030c',
37
- bgOpacity: 0,
38
- followMouse: false,
39
- reveal: 1,
40
- revealDuration: 0,
41
- };
12
+ /** HyperbolicGridConfig defaults: the core registry entry (DEFAULT_GRIDS.hyperbolicGrid), never a copy. */
13
+ export const defaultHyperbolicGridConfig = DEFAULT_GRIDS.hyperbolicGrid;
42
14
  /**
43
15
  * An Escher-style {p,q} tiling of the Poincare disk. A slow Mobius translation glides the tiling through itself, and the tiles shrink without end toward the rim.
44
16
  */
@@ -58,10 +30,10 @@ export function HyperbolicGrid({ config = defaultHyperbolicGridConfig, groupProp
58
30
  // The committed config over this grid's defaults: every knob has a value to render
59
31
  // and for a keyframe or pointer binding to start from.
60
32
  const base = useMemo(() => withConfigDefaults(defaultHyperbolicGridConfig, config), [config]);
61
- const { cellSize, size, segments, flat, displace, followMouse, reveal, revealDuration } = base;
33
+ const { cellSize, size, segments, displace, reveal, revealDuration } = base;
62
34
  // the ripple is fine-grained relative to the disk
63
35
  const segs = segments ?? (displace > 0 ? Math.min(512, Math.max(96, Math.ceil(size / Math.max(cellSize, 1e-4)) * 64)) : 1);
64
- useGridSurface(matRef, meshRef, { followMouse, reveal, revealDuration });
36
+ useGridSurface(matRef, meshRef, { reveal, revealDuration });
65
37
  // One push point for every uniform the config owns: the committed config when the
66
38
  // material mounts or the config commits, the merged one while anything overrides it.
67
39
  const baseRef = useRef(base);
@@ -74,6 +46,6 @@ export function HyperbolicGrid({ config = defaultHyperbolicGridConfig, groupProp
74
46
  useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
75
47
  const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
76
48
  useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
77
- 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("hyperbolicGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, HyperbolicGridMaterial.key)] }) }));
49
+ return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: [-Math.PI / 2, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("hyperbolicGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, HyperbolicGridMaterial.key)] }) }));
78
50
  }
79
51
  export default HyperbolicGrid;
@@ -0,0 +1,9 @@
1
+ import type { ObjectReadyProps } from '../types/objectReady';
2
+ import React from "react";
3
+ import type { CreatedObjectSettings } from "@3driseai/3drise-core";
4
+ type LandObjectProps = ObjectReadyProps & {
5
+ createdObject: CreatedObjectSettings;
6
+ };
7
+ declare const LandObject: React.FC<LandObjectProps>;
8
+ export default LandObject;
9
+ //# sourceMappingURL=LandObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LandObject.d.ts","sourceRoot":"","sources":["../../src/components/LandObject.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,qBAAqB,EAA2C,MAAM,uBAAuB,CAAC;AAC5G,KAAK,eAAe,GAAG,gBAAgB,GAAG;IACtC,aAAa,EAAE,qBAAqB,CAAC;CACxC,CAAC;AAMF,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAYzC,CAAC;AACF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { LandPatch } from './land/index.js';
3
+ /** The land family's components by config.type. Every landform is the same patch
4
+ * renderer (the landform is a shader branch), so switching shape never remounts. */
5
+ const FAMILY = { mountains: LandPatch, hills: LandPatch, dunes: LandPatch, canyon: LandPatch };
6
+ const LandObject = ({ createdObject, onObjectReady, onObjectDispose }) => {
7
+ const config = createdObject.config;
8
+ if (!config || config.enabled === false)
9
+ return null;
10
+ const Component = FAMILY[config.type];
11
+ if (!Component)
12
+ return null;
13
+ return _jsx(Component, { config: config, id: createdObject.id, keyframes: createdObject.animations?.land?.animations, mouseMove: createdObject.mouseMove?.land, onObjectReady: (_source, ref) => onObjectReady?.(createdObject, ref), onObjectDispose: (_source, ref) => onObjectDispose?.(createdObject, ref) });
14
+ };
15
+ export default LandObject;
@@ -0,0 +1,25 @@
1
+ import type { ThreeElements } from '@react-three/fiber';
2
+ import type { ObjectReadyProps } from '../types/objectReady';
3
+ import type { LensingGridConfig } from '../types/gridConfigs';
4
+ import type { AnimationOptions, MouseMoveDomain } from '@3driseai/3drise-core';
5
+ export interface LensingGridProps extends ObjectReadyProps {
6
+ config?: LensingGridConfig;
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;
14
+ }
15
+ /** LensingGridConfig defaults: the core registry entry (DEFAULT_GRIDS.lensingGrid), never a copy. */
16
+ export declare const defaultLensingGridConfig: LensingGridConfig;
17
+ /**
18
+ * A square lattice seen through a point-mass gravitational lens: the thin-lens equation bends it into an Einstein ring, an inverted inner image and a dark shadow at the core.
19
+ *
20
+ * The grid always lies flat: any other orientation, and any movement of the
21
+ * whole, is the parent object's transform. Only what happens inside it animates.
22
+ */
23
+ export declare function LensingGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: LensingGridProps): import("react").JSX.Element;
24
+ export default LensingGrid;
25
+ //# sourceMappingURL=LensingGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LensingGrid.d.ts","sourceRoot":"","sources":["../../src/components/LensingGrid.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,qGAAqG;AACrG,eAAO,MAAM,wBAAwB,EAA2C,iBAAiB,CAAC;AAWlG;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAiC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,gBAAgB,+BA4CxJ;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';
3
+ import * as THREE from 'three';
4
+ import { useObjectReady } from '../hooks/useObjectReady.js';
5
+ import { useGridSurface } from '../hooks/useGridSurface.js';
6
+ import { useConfigDriver } from '../hooks/useConfigDriver.js';
7
+ import { withConfigDefaults } from '../utils/configAnimations.js';
8
+ import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
9
+ import { LensingGridMaterial, DEFAULT_GRIDS, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
10
+ // Side-effect import registers <lensingGridMaterial> via extend().
11
+ void LensingGridMaterial;
12
+ /** LensingGridConfig defaults: the core registry entry (DEFAULT_GRIDS.lensingGrid), never a copy. */
13
+ export const defaultLensingGridConfig = DEFAULT_GRIDS.lensingGrid;
14
+ /** This grid's own uniforms (u_<key>), pushed by applyGridConfig beside the shared surface knobs. */
15
+ const VARIANT = ['mass', 'orbit', 'ringGlow'];
16
+ /** No computed uniforms: every knob maps straight to its u_<key>. */
17
+ const DERIVE = {};
18
+ /** Knobs that reshape the plane or pick a mode: they change on commit, never through the live path. */
19
+ const STRUCTURAL = [...GRID_STRUCTURAL];
20
+ /** Knobs a keyframe or pointer binding may drive per frame — exactly what applyGridConfig pushes. */
21
+ const ANIMATABLE = new Set((GRIDS_ANIMATABLE.lensingGrid ?? []).map((p) => p.value));
22
+ /**
23
+ * A square lattice seen through a point-mass gravitational lens: the thin-lens equation bends it into an Einstein ring, an inverted inner image and a dark shadow at the core.
24
+ *
25
+ * The grid always lies flat: any other orientation, and any movement of the
26
+ * whole, is the parent object's transform. Only what happens inside it animates.
27
+ */
28
+ export function LensingGrid({ config = defaultLensingGridConfig, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) {
29
+ const matRef = useRef(null);
30
+ const rootRef = useRef(null);
31
+ const meshRef = useRef(null);
32
+ useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
33
+ // The committed config over this grid's defaults: every knob has a value to render
34
+ // and for a keyframe or pointer binding to start from.
35
+ const base = useMemo(() => withConfigDefaults(defaultLensingGridConfig, config), [config]);
36
+ const { cellSize, size, segments, displace, reveal, revealDuration } = base;
37
+ const segs = segments ?? (displace > 0
38
+ ? Math.min(256, Math.max(64, Math.ceil(size / Math.max(cellSize, 1e-4)) * 2))
39
+ : 1);
40
+ useGridSurface(matRef, meshRef, { reveal, revealDuration });
41
+ // One push point for every uniform the config owns: the committed config when the
42
+ // material mounts or the config commits, the merged one while anything overrides it.
43
+ const baseRef = useRef(base);
44
+ baseRef.current = base;
45
+ const setMaterial = useCallback((m) => {
46
+ matRef.current = m;
47
+ if (m)
48
+ applyGridConfig(m, baseRef.current, VARIANT, DERIVE);
49
+ }, []);
50
+ useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
51
+ const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
52
+ useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
53
+ return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: [-Math.PI / 2, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("lensingGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, LensingGridMaterial.key)] }) }));
54
+ }
55
+ export default LensingGrid;
@@ -1 +1 @@
1
- {"version":3,"file":"LightsManager.d.ts","sourceRoot":"","sources":["../../src/components/LightsManager.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,MAAM,EAAE,gBAAgB,CAAC;CAC5B;AAID,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAmG/C,CAAC;AACF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"LightsManager.d.ts","sourceRoot":"","sources":["../../src/components/LightsManager.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,MAAM,EAAE,gBAAgB,CAAC;CAC5B;AAID,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0G/C,CAAC;AACF,eAAe,aAAa,CAAC"}
@@ -5,6 +5,7 @@ import { useFrame, useThree } from '@react-three/fiber';
5
5
  import { createSunPosition } from '@3driseai/3drise-core';
6
6
  import { Color, } from 'three';
7
7
  import { useLightAnimation } from '../hooks/useLightAnimation.js';
8
+ import { skyOwnsSun } from '../utils/renderedSky.js';
8
9
  const SUN_DISTANCE = 100;
9
10
  const LightsManager = ({ config, onObjectReady, onObjectDispose }) => {
10
11
  const { scene } = useThree();
@@ -93,6 +94,13 @@ const LightsManager = ({ config, onObjectReady, onObjectDispose }) => {
93
94
  };
94
95
  }, [scene]);
95
96
  useFrame((state) => {
97
+ // While a sky is active its key light (SunLight) is the scene's sun; this
98
+ // general-purpose sun is for scenes without one. Checked per frame, not
99
+ // via props, because the sky lives in a sibling subtree (EnvironmentManager)
100
+ // and can come and go without this component re-rendering.
101
+ if (sunLightRef.current) {
102
+ sunLightRef.current.visible = !!sunConfig?.enabled && !skyOwnsSun(scene);
103
+ }
96
104
  if (followSun && sunLightRef.current) {
97
105
  const time = state.clock.getElapsedTime();
98
106
  const slowRotation = time * 0.01;
@@ -6,6 +6,8 @@ interface ModelBoundaryProps {
6
6
  fallback?: ReactNode;
7
7
  /** Identifies the offending object in the console when a load fails. */
8
8
  label?: string;
9
+ /** The model's object id: a failed load tells scene readiness not to wait for it. */
10
+ objectId?: string;
9
11
  }
10
12
  interface ModelBoundaryState {
11
13
  failed: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelBoundary.d.ts","sourceRoot":"","sources":["../../src/components/ModelBoundary.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,UAAU,kBAAkB;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,kBAAkB;IACxB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,cAAM,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACzE,KAAK,EAAE,kBAAkB,CAAqB;IAE9C,MAAM,CAAC,wBAAwB,IAAI,kBAAkB;IAIrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAQtD,MAAM,IAAI,SAAS;CAItB;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ModelBoundary.d.ts","sourceRoot":"","sources":["../../src/components/ModelBoundary.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,UAAU,kBAAkB;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IACxB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,cAAM,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACzE,KAAK,EAAE,kBAAkB,CAAqB;IAE9C,MAAM,CAAC,wBAAwB,IAAI,kBAAkB;IAIrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAStD,MAAM,IAAI,SAAS;CAItB;AAED,eAAe,aAAa,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Component, Suspense } from 'react';
3
+ import { sceneReadiness } from '../triggers/readiness.js';
3
4
  /**
4
5
  * Suspense + error boundary around a single model leaf.
5
6
  *
@@ -15,6 +16,8 @@ class ModelBoundary extends Component {
15
16
  }
16
17
  componentDidCatch(error, info) {
17
18
  console.error(`[ModelBoundary] Model failed to load${this.props.label ? `: ${this.props.label}` : ''}`, error, info.componentStack);
19
+ if (this.props.objectId)
20
+ sceneReadiness.fail(this.props.objectId, error);
18
21
  }
19
22
  render() {
20
23
  if (this.state.failed)
@@ -1 +1 @@
1
- {"version":3,"file":"ModelPrimitive.d.ts","sourceRoot":"","sources":["../../src/components/ModelPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAMnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,UAAU,mBAAoB,SAAQ,gBAAgB;IAClD,aAAa,EAAE,qBAAqB,CAAC;IACrC,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA0ChD,CAAC;AAIH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"ModelPrimitive.d.ts","sourceRoot":"","sources":["../../src/components/ModelPrimitive.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAMnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,UAAU,mBAAoB,SAAQ,gBAAgB;IAClD,aAAa,EAAE,qBAAqB,CAAC;IACrC,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8ChD,CAAC;AAIH,eAAe,cAAc,CAAC"}
@@ -5,6 +5,7 @@ import { useNodeOverrides } from '../hooks/useNodeOverrides.js';
5
5
  import { getNodeOverrides, peekModelAsset, resolveShadowFlags } from '@3driseai/3drise-core';
6
6
  import { useObjectReadyReporter } from '../hooks/useObjectReady.js';
7
7
  import { applyShadowFlags } from '../hooks/useShadowApplication.js';
8
+ import { sceneReadiness } from '../triggers/readiness.js';
8
9
  /**
9
10
  * Mounts the Object3D behind a `type: 'model'` scene object, and hands it to the host
10
11
  * application.
@@ -47,11 +48,16 @@ const ModelPrimitive = memo(({ createdObject, slot = 0, onObjectReady, onObjectD
47
48
  const shadowFlags = useRef({ cast: false, receive: false });
48
49
  const resolved = resolveShadowFlags(createdObject.type, createdObject.meshSettings);
49
50
  shadowFlags.current = { cast: resolved.castShadow, receive: resolved.receiveShadow };
51
+ // Scene readiness counts the object itself (slot 0), not its layout clones.
52
+ const readyId = useRef('');
53
+ readyId.current = slot === 0 ? createdObject.id : '';
50
54
  const setObjectRef = useCallback((instance) => {
51
55
  if (instance) {
52
56
  applyShadowFlags(instance, shadowFlags.current.cast, shadowFlags.current.receive);
53
57
  attachedRef.current = instance;
54
58
  report(instance);
59
+ if (readyId.current)
60
+ sceneReadiness.report(readyId.current);
55
61
  return;
56
62
  }
57
63
  if (attachedRef.current) {
@@ -12,7 +12,7 @@ export interface MoireGridProps extends ObjectReadyProps {
12
12
  /** Pointer bindings on this grid's config knobs (mouseMove.grid). */
13
13
  mouseMove?: MouseMoveDomain;
14
14
  }
15
- /** MoireGridConfig — the single source of truth for a moire grid instance. */
15
+ /** MoireGridConfig defaults: the core registry entry (DEFAULT_GRIDS.moireGrid), never a copy. */
16
16
  export declare const defaultMoireGridConfig: MoireGridConfig;
17
17
  export declare function MoireGrid({ config, groupProps, id, keyframes, mouseMove, onObjectReady, onObjectDispose }: MoireGridProps): import("react").JSX.Element;
18
18
  export default MoireGrid;
@@ -1 +1 @@
1
- {"version":3,"file":"MoireGrid.d.ts","sourceRoot":"","sources":["../../src/components/MoireGrid.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,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACpD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,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;AAWD,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,EAAE,eA6BpC,CAAC;AAsBF,wBAAgB,SAAS,CAAC,EAAE,MAA+B,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,cAAc,+BA6ClJ;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"MoireGrid.d.ts","sourceRoot":"","sources":["../../src/components/MoireGrid.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,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACpD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,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;AAWD,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,EAAyC,eAAe,CAAC;AAsB5F,wBAAgB,SAAS,CAAC,EAAE,MAA+B,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,cAAc,+BA6ClJ;AAED,eAAe,SAAS,CAAC"}
@@ -6,7 +6,7 @@ import { useGridSurface } from '../hooks/useGridSurface.js';
6
6
  import { useConfigDriver } from '../hooks/useConfigDriver.js';
7
7
  import { withConfigDefaults } from '../utils/configAnimations.js';
8
8
  import { applyGridConfig, GRID_STRUCTURAL } from '../utils/gridConfig.js';
9
- import { MoireGridMaterial, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
9
+ import { MoireGridMaterial, DEFAULT_GRIDS, GRIDS_ANIMATABLE } from '@3driseai/3drise-core';
10
10
  // Side-effect import registers <moireGridMaterial> via extend().
11
11
  void MoireGridMaterial;
12
12
  const SHAPE_INDEX = {
@@ -14,37 +14,8 @@ const SHAPE_INDEX = {
14
14
  hex: 1,
15
15
  rings: 2,
16
16
  };
17
- /** MoireGridConfig — the single source of truth for a moire grid instance. */
18
- export const defaultMoireGridConfig = {
19
- cellSize: 2.8,
20
- size: 50,
21
- segments: undefined,
22
- flat: true,
23
- lineMode: 0,
24
- cellMode: 2, // steady nodes; the interference carries the motion
25
- lineWidth: 1.4,
26
- sectionSize: 12,
27
- sectionWidth: 0,
28
- animSpeed: 1,
29
- animScale: 1,
30
- animIntensity: 1,
31
- fadeDistance: undefined,
32
- fadeStrength: 0.7,
33
- displace: 0,
34
- shape: 'square',
35
- layerAngle: 0.05,
36
- layerScale: 1.06,
37
- spin: 1,
38
- lineColor: '#226bd9',
39
- sectionColor: '#f2599e',
40
- cellColor: '#0d1a40',
41
- glowColor: '#99d9ff',
42
- bgColor: '#02040d',
43
- bgOpacity: 0,
44
- followMouse: false,
45
- reveal: 1,
46
- revealDuration: 0,
47
- };
17
+ /** MoireGridConfig defaults: the core registry entry (DEFAULT_GRIDS.moireGrid), never a copy. */
18
+ export const defaultMoireGridConfig = DEFAULT_GRIDS.moireGrid;
48
19
  /**
49
20
  * Two overlaid lattices, counter-rotating.
50
21
  *
@@ -72,11 +43,11 @@ export function MoireGrid({ config = defaultMoireGridConfig, groupProps, id, key
72
43
  // The committed config over this grid's defaults: every knob has a value to render
73
44
  // and for a keyframe or pointer binding to start from.
74
45
  const base = useMemo(() => withConfigDefaults(defaultMoireGridConfig, config), [config]);
75
- const { cellSize, size, segments, flat, displace, followMouse, reveal, revealDuration } = base;
46
+ const { cellSize, size, segments, displace, reveal, revealDuration } = base;
76
47
  const segs = segments ?? (displace > 0
77
48
  ? Math.min(256, Math.max(64, Math.ceil(size / Math.max(cellSize, 1e-4)) * 2))
78
49
  : 1);
79
- useGridSurface(matRef, meshRef, { followMouse, reveal, revealDuration });
50
+ useGridSurface(matRef, meshRef, { reveal, revealDuration });
80
51
  // One push point for every uniform the config owns: the committed config when the
81
52
  // material mounts or the config commits, the merged one while anything overrides it.
82
53
  const baseRef = useRef(base);
@@ -89,6 +60,6 @@ export function MoireGrid({ config = defaultMoireGridConfig, groupProps, id, key
89
60
  useLayoutEffect(() => { applyGridConfig(matRef.current, base, VARIANT, DERIVE); }, [base]);
90
61
  const push = useCallback((merged) => applyGridConfig(matRef.current, merged, VARIANT, DERIVE), []);
91
62
  useConfigDriver({ rootRef, id, family: 'grids', base, structural: STRUCTURAL, allowed: ANIMATABLE, keyframes, mouseMove, push });
92
- 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("moireGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, MoireGridMaterial.key)] }) }));
63
+ return (_jsx("group", { ref: rootRef, ...groupProps, children: _jsxs("mesh", { ref: meshRef, rotation: [-Math.PI / 2, 0, 0], children: [_jsx("planeGeometry", { args: [size, size, segs, segs] }), _jsx("moireGridMaterial", { ref: setMaterial, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending, side: THREE.DoubleSide }, MoireGridMaterial.key)] }) }));
93
64
  }
94
65
  export default MoireGrid;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { SkySettings, TimeSettings } from '@3driseai/3drise-core';
3
+ export interface MoonDiscProps {
4
+ timeSettings: TimeSettings;
5
+ skySettings?: SkySettings;
6
+ /** Multiplier on the disc's apparent size. */
7
+ size?: number;
8
+ }
9
+ declare const MoonDisc: React.FC<MoonDiscProps>;
10
+ export default MoonDisc;
11
+ //# sourceMappingURL=MoonDisc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoonDisc.d.ts","sourceRoot":"","sources":["../../src/components/MoonDisc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIvE,MAAM,WAAW,aAAa;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AA+ED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoDrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,128 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef } from 'react';
3
+ import * as THREE from 'three';
4
+ import { useFrame } from '@react-three/fiber';
5
+ import { useCloudSun } from '../hooks/useCloudSun.js';
6
+ import { resolveMoon } from '../utils/skyMoon.js';
7
+ /**
8
+ * The moon in the sky, for either sky renderer.
9
+ *
10
+ * A camera-facing quad placed toward the moon just inside the far plane, so the
11
+ * sky (drawn at the far plane) is behind it and terrain and objects occlude it.
12
+ * The disc is shaded as a sphere lit by the real sun direction, so the phase —
13
+ * crescent, quarter, gibbous, full, and which side is lit — falls out of where
14
+ * the sun is rather than being drawn. Additive over the sky: pale by day, bright
15
+ * with a soft halo at night.
16
+ *
17
+ * Position and phase come from resolveMoon, the same source as the moonlight.
18
+ */
19
+ /** Real angular diameter is 0.52°; a true-size moon reads as a dot on a screen. */
20
+ const MOON_ANGULAR_DIAMETER_DEG = 0.52 * 4;
21
+ /** Quad half-size in disc radii — room for the wide glow. */
22
+ const SPAN = 8.0;
23
+ const vertexShader = /* glsl */ `
24
+ varying vec2 vUv;
25
+ void main() {
26
+ vUv = uv * 2.0 - 1.0;
27
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
28
+ }
29
+ `;
30
+ const fragmentShader = /* glsl */ `
31
+ uniform vec3 uSunLocal;
32
+ uniform float uNight;
33
+ uniform float uIllum;
34
+ varying vec2 vUv;
35
+
36
+ float hash(vec2 p) { return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); }
37
+ float noise(vec2 p) {
38
+ vec2 i = floor(p), f = fract(p);
39
+ vec2 u = f * f * (3.0 - 2.0 * f);
40
+ return mix(mix(hash(i), hash(i + vec2(1, 0)), u.x), mix(hash(i + vec2(0, 1)), hash(i + vec2(1, 1)), u.x), u.y);
41
+ }
42
+ float fbm(vec2 p) {
43
+ float v = 0.0, a = 0.5;
44
+ for (int i = 0; i < 5; i++) { v += a * noise(p); p = p * 2.03 + 17.1; a *= 0.5; }
45
+ return v;
46
+ }
47
+
48
+ void main() {
49
+ vec2 p = vUv * ${SPAN.toFixed(1)};
50
+ float r = length(p);
51
+ float aa = fwidth(r) * 1.5;
52
+ float disc = 1.0 - smoothstep(1.0 - aa, 1.0 + aa, r);
53
+
54
+ // The visible hemisphere as a sphere facing the camera (z toward the viewer).
55
+ vec3 n = vec3(p, sqrt(max(0.0, 1.0 - r * r)));
56
+ float lit = smoothstep(-0.04, 0.10, dot(n, uSunLocal));
57
+
58
+ // Maria: dark low-frequency patches; fine grain on top.
59
+ float maria = smoothstep(0.42, 0.62, fbm(n.xy * 2.2 + 3.1));
60
+ float grain = fbm(n.xy * 14.0) * 0.12;
61
+ vec3 albedo = mix(vec3(0.58, 0.58, 0.57), vec3(0.96, 0.95, 0.91), maria) * (0.94 + grain);
62
+ float limb = 0.72 + 0.28 * n.z;
63
+ vec3 surface = albedo * limb * (lit + 0.03); // + earthshine on the dark side
64
+
65
+ // Glow: a tight corona hugging the limb plus a wide soft bloom — moonlight
66
+ // scattered by the air around the disc. Scales with how much of the moon is
67
+ // lit and with the night; gone by day, when the sky out-shines it.
68
+ float d = max(r - 1.0, 0.0);
69
+ float glow = (exp(-d * 3.2) * 0.55 + exp(-d * 0.75) * 0.16) * (1.0 - disc);
70
+ vec3 col = surface * disc * mix(0.45, 1.15, uNight)
71
+ + vec3(0.72, 0.80, 1.0) * glow * uIllum * uNight;
72
+ gl_FragColor = vec4(col, 1.0);
73
+ }
74
+ `;
75
+ const smooth01 = (edge0, edge1, x) => {
76
+ const t = THREE.MathUtils.clamp((x - edge0) / (edge1 - edge0), 0, 1);
77
+ return t * t * (3 - 2 * t);
78
+ };
79
+ const MoonDisc = ({ timeSettings, skySettings, size = 1 }) => {
80
+ const meshRef = useRef(null);
81
+ const { update } = useCloudSun({ skySettings, timeSettings });
82
+ const moon = useRef({ direction: new THREE.Vector3(), illumination: 1 });
83
+ const scratch = useMemo(() => ({ q: new THREE.Quaternion(), v: new THREE.Vector3() }), []);
84
+ const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);
85
+ const material = useMemo(() => new THREE.ShaderMaterial({
86
+ uniforms: {
87
+ uSunLocal: { value: new THREE.Vector3(0, 0, 1) },
88
+ uNight: { value: 0 },
89
+ uIllum: { value: 1 },
90
+ },
91
+ vertexShader,
92
+ fragmentShader,
93
+ transparent: true,
94
+ depthWrite: false,
95
+ depthTest: true,
96
+ blending: THREE.AdditiveBlending,
97
+ fog: false,
98
+ toneMapped: false,
99
+ }), []);
100
+ useEffect(() => () => { geometry.dispose(); material.dispose(); }, [geometry, material]);
101
+ useFrame(({ camera }) => {
102
+ const mesh = meshRef.current;
103
+ if (!mesh)
104
+ return;
105
+ const sunDir = update().direction;
106
+ const m = resolveMoon(timeSettings, sunDir, moon.current);
107
+ // Below the horizon there is nothing to draw (and nothing to occlude it).
108
+ if (m.direction.y < -0.03) {
109
+ mesh.visible = false;
110
+ return;
111
+ }
112
+ mesh.visible = true;
113
+ const far = camera.far ?? 1000;
114
+ const dist = far * 0.9;
115
+ mesh.position.copy(camera.position).addScaledVector(m.direction, dist);
116
+ mesh.quaternion.copy(camera.quaternion);
117
+ const radius = dist * Math.tan(THREE.MathUtils.degToRad(MOON_ANGULAR_DIAMETER_DEG * size) / 2);
118
+ mesh.scale.setScalar(radius * SPAN);
119
+ // Sun direction in the quad's frame, so the disc is lit from where the sun is.
120
+ scratch.q.copy(camera.quaternion).invert();
121
+ material.uniforms.uSunLocal.value.copy(scratch.v.copy(sunDir).applyQuaternion(scratch.q));
122
+ const sunElevation = THREE.MathUtils.radToDeg(Math.asin(THREE.MathUtils.clamp(sunDir.y, -1, 1)));
123
+ material.uniforms.uNight.value = smooth01(2, -8, sunElevation);
124
+ material.uniforms.uIllum.value = m.illumination;
125
+ });
126
+ return _jsx("mesh", { ref: meshRef, geometry: geometry, material: material, frustumCulled: false, renderOrder: -1 });
127
+ };
128
+ export default MoonDisc;
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectNode.d.ts","sourceRoot":"","sources":["../../src/components/ObjectNode.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAe,qBAAqB,EAA2C,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzI,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiBrD,KAAK,eAAe,GAAG,gBAAgB,GAAG;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CAC7G,CAAC;AAkBF,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+IzC,CAAC;AACF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ObjectNode.d.ts","sourceRoot":"","sources":["../../src/components/ObjectNode.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAe,qBAAqB,EAA2C,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzI,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiBrD,KAAK,eAAe,GAAG,gBAAgB,GAAG;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CAC7G,CAAC;AAoBF,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqJzC,CAAC;AACF,eAAe,UAAU,CAAC"}
@@ -10,14 +10,17 @@ import EffectsGenerator from './EffectsGenerator.js';
10
10
  import ParticlesGenerator from './ParticlesGenerator.js';
11
11
  import LightObject from "./LightObject.js";
12
12
  import EnvironmentObject from "./EnvironmentObject.js";
13
+ import LandObject from "./LandObject.js";
14
+ import TextGenerator from "./TextGenerator.js";
13
15
  import Galaxy from "./Galaxy.js";
14
16
  import GridGenerator from "./GridsGenerator.js";
15
17
  import OceanBuilder from "./OceanBuilder.js";
16
18
  import LandscapeObject from "./LandscapeObject.js";
17
19
  import LayoutInstances from "./LayoutInstances.js";
18
20
  import { useRuntimeSettings } from "../hooks/useRuntimeSettings.js";
21
+ import { usePresentedVisibility } from "../operations/usePresentedVisibility.js";
19
22
  import { SELF_MANAGED_MATERIAL } from "../constants.js";
20
- import { LAYOUT_CAPABLE_TYPES, getObjectLayoutSupport, normalizeObjectLayout, isGenerativeParticlesConfig } from "@3driseai/3drise-core";
23
+ import { LAYOUT_CAPABLE_TYPES, getObjectLayoutSupport, normalizeObjectLayout, isGenerativeParticlesConfig, isTextObjectConfig } from "@3driseai/3drise-core";
21
24
  // Slots after the first render with no ready callbacks: one object reports once.
22
25
  const NO_READY = {};
23
26
  // A point light's shadow is six extra renders; only slot 0 keeps it. Cached per settings
@@ -44,14 +47,18 @@ const GroupWithChildren = ({ createdObject, children, onObjectReady, onObjectDis
44
47
  const isGroup = createdObject.type === 'group';
45
48
  // Generative particle objects own their shaders, like effects do.
46
49
  const selfManagedMaterial = SELF_MANAGED_MATERIAL.has(createdObject.type)
47
- || (createdObject.type === 'particles' && isGenerativeParticlesConfig(createdObject.config));
50
+ || (createdObject.type === 'particles' && isGenerativeParticlesConfig(createdObject.config))
51
+ // The animated text looks own their shaders; the legacy 2d / 3d text (same object type) keeps its material.
52
+ || (createdObject.type === 'text' && isTextObjectConfig(createdObject.config));
48
53
  return (_jsxs(CreatedObject, { createdObject: createdObject, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose, handleObjectClick: handleObjectClick, shouldApply3driseMaterial: !isGroup && !selfManagedMaterial, children: [!isGroup && renderObject(createdObject, handleObjectClick), children.map(childNode => (_jsx(ObjectNode, { node: childNode, handleObjectClick: handleObjectClick, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }, childNode.objectId)))] }, createdObject.id));
49
54
  };
50
55
  const ObjectNode = ({ node, onObjectReady, onObjectDispose, handleObjectClick }) => {
51
56
  const { children } = node;
52
57
  // Authored settings + any applied action patches (runtime only). Every renderer
53
58
  // below sees the patched object, so an action can change anything an edit can.
54
- const createdObject = useRuntimeSettings(node.createdObject?.id, node.createdObject);
59
+ const runtimeObject = useRuntimeSettings(node.createdObject?.id, node.createdObject);
60
+ // An object whose effects follow its visibility stays drawn until they have played out.
61
+ const createdObject = usePresentedVisibility(runtimeObject);
55
62
  // Children describe themselves with their own settings; the scene above
56
63
  // knows them by the node's createdObject, so relabel on the way up.
57
64
  const relabel = useCallback((obj) => ({
@@ -89,6 +96,9 @@ const ObjectNode = ({ node, onObjectReady, onObjectDispose, handleObjectClick })
89
96
  // />
90
97
  // ),
91
98
  text: (obj, onObjectReady) => {
99
+ // The animated looks (config.type) render through TextGenerator; the legacy 2d / 3d text keeps its own path.
100
+ if (isTextObjectConfig(obj.config))
101
+ return (_jsx(TextGenerator, { createdObject: obj, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose }));
92
102
  const renderMode = obj.config?.renderMode ?? 'bitmap';
93
103
  return (_jsx(_Fragment, { children: renderMode === 'text3d'
94
104
  ? _jsx(Text3D, { textSettings: obj, ...relabel(obj) })
@@ -127,6 +137,7 @@ const ObjectNode = ({ node, onObjectReady, onObjectDispose, handleObjectClick })
127
137
  light: (obj, _onObjectReady, slot = 0) => (_jsx(LightObject, { createdObject: slot === 0 ? obj : withoutShadow(obj), ...(slot === 0 ? relabel(obj) : NO_READY) })),
128
138
  environment: (obj, onObjectReady) => (_jsx(EnvironmentObject, { createdObject: obj, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose })),
129
139
  space: (obj, onObjectReady) => (_jsx(Galaxy, { createdObject: obj, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose })),
140
+ land: (obj, onObjectReady) => (_jsx(LandObject, { createdObject: obj, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose })),
130
141
  // rain: (obj: CreatedObjectSettings, cameraSettings: CameraState, onObjectReady?: (object: CreatedObjectSettings, ref: Object3D) => void) => (
131
142
  // <Rain
132
143
  // settings={obj}
@@ -169,7 +180,7 @@ const ObjectNode = ({ node, onObjectReady, onObjectDispose, handleObjectClick })
169
180
  const shouldRenderAsGroup = hasChildren || createdObject.type === 'group' || createdObject.type === 'effect';
170
181
  const renderedObject = shouldRenderAsGroup
171
182
  ? _jsx(GroupWithChildren, { createdObject: createdObject, children: children, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose, handleObjectClick: handleObjectClick, renderObject: renderObject })
172
- : _jsx(CreatedObject, { createdObject: createdObject, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose, handleObjectClick: handleObjectClick, shouldApply3driseMaterial: !SELF_MANAGED_MATERIAL.has(createdObject.type), children: renderObject(createdObject) }, createdObject.id);
183
+ : _jsx(CreatedObject, { createdObject: createdObject, onObjectReady: onObjectReady, onObjectDispose: onObjectDispose, handleObjectClick: handleObjectClick, shouldApply3driseMaterial: !(SELF_MANAGED_MATERIAL.has(createdObject.type) || (createdObject.type === 'text' && isTextObjectConfig(createdObject.config))), children: renderObject(createdObject) }, createdObject.id);
173
184
  // createdObject.effects
174
185
  // ? <>
175
186
  // {renderObject(createdObject)}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectsRenderer.d.ts","sourceRoot":"","sources":["../../src/components/ObjectsRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,UAAU,oBAAqB,SAAQ,gBAAgB;IACnD,cAAc,EAAE,WAAW,CAAC;IAC5B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1G,mEAAmE;IACnE,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACtC;AAGD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuFlD,CAAC;AAEH,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ObjectsRenderer.d.ts","sourceRoot":"","sources":["../../src/components/ObjectsRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQ9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,UAAU,oBAAqB,SAAQ,gBAAgB;IACnD,cAAc,EAAE,WAAW,CAAC;IAC5B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC1G,mEAAmE;IACnE,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACtC;AAGD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAwFlD,CAAC;AAEH,eAAe,eAAe,CAAC"}