@3driseai/3drise-viewer 0.1.28 → 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 (684) 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 +1 -1
  26. package/dist/components/ApollonianGrid.d.ts.map +1 -1
  27. package/dist/components/ApollonianGrid.js +3 -28
  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 +1 -1
  35. package/dist/components/ConformalGrid.d.ts.map +1 -1
  36. package/dist/components/ConformalGrid.js +3 -34
  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/HexGrid.d.ts +1 -5
  58. package/dist/components/HexGrid.d.ts.map +1 -1
  59. package/dist/components/HexGrid.js +6 -36
  60. package/dist/components/HilbertGrid.d.ts +1 -1
  61. package/dist/components/HilbertGrid.d.ts.map +1 -1
  62. package/dist/components/HilbertGrid.js +3 -30
  63. package/dist/components/HyperbolicGrid.d.ts +1 -1
  64. package/dist/components/HyperbolicGrid.d.ts.map +1 -1
  65. package/dist/components/HyperbolicGrid.js +6 -34
  66. package/dist/components/LandObject.d.ts +9 -0
  67. package/dist/components/LandObject.d.ts.map +1 -0
  68. package/dist/components/LandObject.js +15 -0
  69. package/dist/components/LensingGrid.d.ts +1 -1
  70. package/dist/components/LensingGrid.d.ts.map +1 -1
  71. package/dist/components/LensingGrid.js +3 -29
  72. package/dist/components/LightsManager.d.ts.map +1 -1
  73. package/dist/components/LightsManager.js +8 -0
  74. package/dist/components/ModelBoundary.d.ts +2 -0
  75. package/dist/components/ModelBoundary.d.ts.map +1 -1
  76. package/dist/components/ModelBoundary.js +3 -0
  77. package/dist/components/ModelPrimitive.d.ts.map +1 -1
  78. package/dist/components/ModelPrimitive.js +6 -0
  79. package/dist/components/MoireGrid.d.ts +1 -1
  80. package/dist/components/MoireGrid.d.ts.map +1 -1
  81. package/dist/components/MoireGrid.js +6 -35
  82. package/dist/components/MoonDisc.d.ts +11 -0
  83. package/dist/components/MoonDisc.d.ts.map +1 -0
  84. package/dist/components/MoonDisc.js +128 -0
  85. package/dist/components/ObjectNode.d.ts.map +1 -1
  86. package/dist/components/ObjectNode.js +15 -4
  87. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  88. package/dist/components/ObjectsRenderer.js +7 -5
  89. package/dist/components/OceanBuilder.d.ts.map +1 -1
  90. package/dist/components/OceanBuilder.js +2 -0
  91. package/dist/components/ParastichyGrid.d.ts +1 -1
  92. package/dist/components/ParastichyGrid.d.ts.map +1 -1
  93. package/dist/components/ParastichyGrid.js +3 -30
  94. package/dist/components/PhyllotaxisGrid.d.ts +1 -1
  95. package/dist/components/PhyllotaxisGrid.d.ts.map +1 -1
  96. package/dist/components/PhyllotaxisGrid.js +3 -32
  97. package/dist/components/ProjectLoader.d.ts +5 -3
  98. package/dist/components/ProjectLoader.d.ts.map +1 -1
  99. package/dist/components/ProjectLoader.js +6 -3
  100. package/dist/components/QuasiGrid.d.ts +1 -1
  101. package/dist/components/QuasiGrid.d.ts.map +1 -1
  102. package/dist/components/QuasiGrid.js +6 -33
  103. package/dist/components/RadarGrid.d.ts +1 -1
  104. package/dist/components/RadarGrid.d.ts.map +1 -1
  105. package/dist/components/RadarGrid.js +6 -34
  106. package/dist/components/ReactionDiffusionGrid.d.ts +1 -1
  107. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
  108. package/dist/components/ReactionDiffusionGrid.js +6 -35
  109. package/dist/components/SceneBuilder.d.ts +25 -3
  110. package/dist/components/SceneBuilder.d.ts.map +1 -1
  111. package/dist/components/SceneBuilder.js +68 -38
  112. package/dist/components/SkyController.d.ts +25 -1
  113. package/dist/components/SkyController.d.ts.map +1 -1
  114. package/dist/components/SkyController.js +189 -130
  115. package/dist/components/SkyMesh.d.ts.map +1 -1
  116. package/dist/components/SkyMesh.js +26 -1
  117. package/dist/components/SkyStars.d.ts +11 -0
  118. package/dist/components/SkyStars.d.ts.map +1 -0
  119. package/dist/components/SkyStars.js +187 -0
  120. package/dist/components/SkySystem.d.ts +3 -3
  121. package/dist/components/SkySystem.d.ts.map +1 -1
  122. package/dist/components/SkySystem.js +8 -2
  123. package/dist/components/Sun.d.ts +15 -1
  124. package/dist/components/Sun.d.ts.map +1 -1
  125. package/dist/components/Sun.js +64 -3
  126. package/dist/components/SunLight.d.ts +6 -1
  127. package/dist/components/SunLight.d.ts.map +1 -1
  128. package/dist/components/SunLight.js +96 -44
  129. package/dist/components/TerrainBuilder.d.ts.map +1 -1
  130. package/dist/components/TerrainBuilder.js +2 -0
  131. package/dist/components/TextGenerator.d.ts +9 -0
  132. package/dist/components/TextGenerator.d.ts.map +1 -0
  133. package/dist/components/TextGenerator.js +29 -0
  134. package/dist/components/TruchetGrid.d.ts +1 -1
  135. package/dist/components/TruchetGrid.d.ts.map +1 -1
  136. package/dist/components/TruchetGrid.js +3 -30
  137. package/dist/components/VoronoiGrid.d.ts +1 -1
  138. package/dist/components/VoronoiGrid.d.ts.map +1 -1
  139. package/dist/components/VoronoiGrid.js +6 -33
  140. package/dist/components/WallpaperGrid.d.ts +1 -1
  141. package/dist/components/WallpaperGrid.d.ts.map +1 -1
  142. package/dist/components/WallpaperGrid.js +6 -35
  143. package/dist/components/environment/Rain.d.ts +15 -0
  144. package/dist/components/environment/Rain.d.ts.map +1 -0
  145. package/dist/components/environment/Rain.js +110 -0
  146. package/dist/components/environment/Rainbow.d.ts +20 -0
  147. package/dist/components/environment/Rainbow.d.ts.map +1 -0
  148. package/dist/components/environment/Rainbow.js +974 -0
  149. package/dist/components/environment/Sandstorm.d.ts +20 -0
  150. package/dist/components/environment/Sandstorm.d.ts.map +1 -0
  151. package/dist/components/environment/Sandstorm.js +776 -0
  152. package/dist/components/environment/Snow.d.ts +20 -0
  153. package/dist/components/environment/Snow.d.ts.map +1 -0
  154. package/dist/components/environment/Snow.js +609 -0
  155. package/dist/components/environment/Thunderstorm.d.ts +20 -0
  156. package/dist/components/environment/Thunderstorm.d.ts.map +1 -0
  157. package/dist/components/environment/Thunderstorm.js +731 -0
  158. package/dist/components/environment/Tornado.d.ts +20 -0
  159. package/dist/components/environment/Tornado.d.ts.map +1 -0
  160. package/dist/components/environment/Tornado.js +762 -0
  161. package/dist/components/environment/index.d.ts +13 -0
  162. package/dist/components/environment/index.d.ts.map +1 -0
  163. package/dist/components/environment/index.js +7 -0
  164. package/dist/components/index.d.ts +10 -10
  165. package/dist/components/index.d.ts.map +1 -1
  166. package/dist/components/index.js +8 -6
  167. package/dist/components/land/LandPatch.d.ts +15 -0
  168. package/dist/components/land/LandPatch.d.ts.map +1 -0
  169. package/dist/components/land/LandPatch.js +170 -0
  170. package/dist/components/land/index.d.ts +3 -0
  171. package/dist/components/land/index.d.ts.map +1 -0
  172. package/dist/components/land/index.js +1 -0
  173. package/dist/components/space/Earth.d.ts +16 -0
  174. package/dist/components/space/Earth.d.ts.map +1 -0
  175. package/dist/components/space/Earth.js +75 -0
  176. package/dist/components/space/ShootingStar.d.ts +21 -0
  177. package/dist/components/space/ShootingStar.d.ts.map +1 -0
  178. package/dist/components/space/ShootingStar.js +101 -0
  179. package/dist/components/space/ShootingStars.d.ts +16 -0
  180. package/dist/components/space/ShootingStars.d.ts.map +1 -0
  181. package/dist/components/space/ShootingStars.js +71 -0
  182. package/dist/components/space/SolarSystem.d.ts +16 -0
  183. package/dist/components/space/SolarSystem.d.ts.map +1 -0
  184. package/dist/components/space/SolarSystem.js +141 -0
  185. package/dist/components/space/Stars.d.ts +20 -0
  186. package/dist/components/space/Stars.d.ts.map +1 -0
  187. package/dist/components/space/Stars.js +160 -0
  188. package/dist/components/space/index.d.ts +11 -0
  189. package/dist/components/space/index.d.ts.map +1 -0
  190. package/dist/components/space/index.js +8 -0
  191. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
  192. package/dist/components/terrain/TerrainSurface.js +27 -3
  193. package/dist/components/terrain/types.d.ts +5 -1
  194. package/dist/components/terrain/types.d.ts.map +1 -1
  195. package/dist/components/text/BurnAwayText.d.ts +15 -0
  196. package/dist/components/text/BurnAwayText.d.ts.map +1 -0
  197. package/dist/components/text/BurnAwayText.js +4 -0
  198. package/dist/components/text/ChalkboardText.d.ts +15 -0
  199. package/dist/components/text/ChalkboardText.d.ts.map +1 -0
  200. package/dist/components/text/ChalkboardText.js +4 -0
  201. package/dist/components/text/ConstellationText.d.ts +15 -0
  202. package/dist/components/text/ConstellationText.d.ts.map +1 -0
  203. package/dist/components/text/ConstellationText.js +4 -0
  204. package/dist/components/text/EmbroideryText.d.ts +15 -0
  205. package/dist/components/text/EmbroideryText.d.ts.map +1 -0
  206. package/dist/components/text/EmbroideryText.js +4 -0
  207. package/dist/components/text/FourierSketchText.d.ts +15 -0
  208. package/dist/components/text/FourierSketchText.d.ts.map +1 -0
  209. package/dist/components/text/FourierSketchText.js +4 -0
  210. package/dist/components/text/FrostGrowthText.d.ts +15 -0
  211. package/dist/components/text/FrostGrowthText.d.ts.map +1 -0
  212. package/dist/components/text/FrostGrowthText.js +4 -0
  213. package/dist/components/text/HandwritingText.d.ts +15 -0
  214. package/dist/components/text/HandwritingText.d.ts.map +1 -0
  215. package/dist/components/text/HandwritingText.js +4 -0
  216. package/dist/components/text/InkBleedText.d.ts +15 -0
  217. package/dist/components/text/InkBleedText.d.ts.map +1 -0
  218. package/dist/components/text/InkBleedText.js +4 -0
  219. package/dist/components/text/LightPaintingText.d.ts +15 -0
  220. package/dist/components/text/LightPaintingText.d.ts.map +1 -0
  221. package/dist/components/text/LightPaintingText.js +4 -0
  222. package/dist/components/text/LiquidMetalText.d.ts +15 -0
  223. package/dist/components/text/LiquidMetalText.d.ts.map +1 -0
  224. package/dist/components/text/LiquidMetalText.js +4 -0
  225. package/dist/components/text/NeonTubeText.d.ts +15 -0
  226. package/dist/components/text/NeonTubeText.d.ts.map +1 -0
  227. package/dist/components/text/NeonTubeText.js +4 -0
  228. package/dist/components/text/PlasmaDischargeText.d.ts +15 -0
  229. package/dist/components/text/PlasmaDischargeText.d.ts.map +1 -0
  230. package/dist/components/text/PlasmaDischargeText.js +4 -0
  231. package/dist/components/text/TextObjectView.d.ts +12 -0
  232. package/dist/components/text/TextObjectView.d.ts.map +1 -0
  233. package/dist/components/text/TextObjectView.js +11 -0
  234. package/dist/components/text/engine/fieldkit.d.ts +24 -0
  235. package/dist/components/text/engine/fieldkit.d.ts.map +1 -0
  236. package/dist/components/text/engine/fieldkit.js +201 -0
  237. package/dist/components/text/engine/glyphs.d.ts +19 -0
  238. package/dist/components/text/engine/glyphs.d.ts.map +1 -0
  239. package/dist/components/text/engine/glyphs.js +269 -0
  240. package/dist/components/text/engine/looks/burnAway.d.ts +144 -0
  241. package/dist/components/text/engine/looks/burnAway.d.ts.map +1 -0
  242. package/dist/components/text/engine/looks/burnAway.js +593 -0
  243. package/dist/components/text/engine/looks/chalkboard.d.ts +135 -0
  244. package/dist/components/text/engine/looks/chalkboard.d.ts.map +1 -0
  245. package/dist/components/text/engine/looks/chalkboard.js +426 -0
  246. package/dist/components/text/engine/looks/constellation.d.ts +111 -0
  247. package/dist/components/text/engine/looks/constellation.d.ts.map +1 -0
  248. package/dist/components/text/engine/looks/constellation.js +496 -0
  249. package/dist/components/text/engine/looks/embroidery.d.ts +165 -0
  250. package/dist/components/text/engine/looks/embroidery.d.ts.map +1 -0
  251. package/dist/components/text/engine/looks/embroidery.js +645 -0
  252. package/dist/components/text/engine/looks/frostGrowth.d.ts +109 -0
  253. package/dist/components/text/engine/looks/frostGrowth.d.ts.map +1 -0
  254. package/dist/components/text/engine/looks/frostGrowth.js +727 -0
  255. package/dist/components/text/engine/looks/index.d.ts +2 -0
  256. package/dist/components/text/engine/looks/index.d.ts.map +1 -0
  257. package/dist/components/text/engine/looks/index.js +48 -0
  258. package/dist/components/text/engine/looks/inkBleed.d.ts +103 -0
  259. package/dist/components/text/engine/looks/inkBleed.d.ts.map +1 -0
  260. package/dist/components/text/engine/looks/inkBleed.js +590 -0
  261. package/dist/components/text/engine/looks/lightPainting.d.ts +132 -0
  262. package/dist/components/text/engine/looks/lightPainting.d.ts.map +1 -0
  263. package/dist/components/text/engine/looks/lightPainting.js +567 -0
  264. package/dist/components/text/engine/looks/liquidMetal.d.ts +135 -0
  265. package/dist/components/text/engine/looks/liquidMetal.d.ts.map +1 -0
  266. package/dist/components/text/engine/looks/liquidMetal.js +655 -0
  267. package/dist/components/text/engine/looks/plasmaDischarge.d.ts +126 -0
  268. package/dist/components/text/engine/looks/plasmaDischarge.d.ts.map +1 -0
  269. package/dist/components/text/engine/looks/plasmaDischarge.js +763 -0
  270. package/dist/components/text/engine/methods.d.ts +19 -0
  271. package/dist/components/text/engine/methods.d.ts.map +1 -0
  272. package/dist/components/text/engine/methods.js +126 -0
  273. package/dist/components/text/engine/playback.d.ts +40 -0
  274. package/dist/components/text/engine/playback.d.ts.map +1 -0
  275. package/dist/components/text/engine/playback.js +114 -0
  276. package/dist/components/text/engine/ribbon.d.ts +58 -0
  277. package/dist/components/text/engine/ribbon.d.ts.map +1 -0
  278. package/dist/components/text/engine/ribbon.js +250 -0
  279. package/dist/components/text/engine/variants.d.ts +159 -0
  280. package/dist/components/text/engine/variants.d.ts.map +1 -0
  281. package/dist/components/text/engine/variants.js +378 -0
  282. package/dist/components/text/fonts/architects-daughter.outline.d.ts +3 -0
  283. package/dist/components/text/fonts/architects-daughter.outline.d.ts.map +1 -0
  284. package/dist/components/text/fonts/architects-daughter.outline.js +4 -0
  285. package/dist/components/text/fonts/architects-daughter.strokes.d.ts +3 -0
  286. package/dist/components/text/fonts/architects-daughter.strokes.d.ts.map +1 -0
  287. package/dist/components/text/fonts/architects-daughter.strokes.js +4 -0
  288. package/dist/components/text/fonts/caveat.outline.d.ts +3 -0
  289. package/dist/components/text/fonts/caveat.outline.d.ts.map +1 -0
  290. package/dist/components/text/fonts/caveat.outline.js +4 -0
  291. package/dist/components/text/fonts/caveat.strokes.d.ts +3 -0
  292. package/dist/components/text/fonts/caveat.strokes.d.ts.map +1 -0
  293. package/dist/components/text/fonts/caveat.strokes.js +4 -0
  294. package/dist/components/text/fonts/courgette.outline.d.ts +3 -0
  295. package/dist/components/text/fonts/courgette.outline.d.ts.map +1 -0
  296. package/dist/components/text/fonts/courgette.outline.js +4 -0
  297. package/dist/components/text/fonts/courgette.strokes.d.ts +3 -0
  298. package/dist/components/text/fonts/courgette.strokes.d.ts.map +1 -0
  299. package/dist/components/text/fonts/courgette.strokes.js +4 -0
  300. package/dist/components/text/fonts/dancing-script.outline.d.ts +3 -0
  301. package/dist/components/text/fonts/dancing-script.outline.d.ts.map +1 -0
  302. package/dist/components/text/fonts/dancing-script.outline.js +4 -0
  303. package/dist/components/text/fonts/dancing-script.strokes.d.ts +3 -0
  304. package/dist/components/text/fonts/dancing-script.strokes.d.ts.map +1 -0
  305. package/dist/components/text/fonts/dancing-script.strokes.js +4 -0
  306. package/dist/components/text/fonts/gochi-hand.outline.d.ts +3 -0
  307. package/dist/components/text/fonts/gochi-hand.outline.d.ts.map +1 -0
  308. package/dist/components/text/fonts/gochi-hand.outline.js +4 -0
  309. package/dist/components/text/fonts/gochi-hand.strokes.d.ts +3 -0
  310. package/dist/components/text/fonts/gochi-hand.strokes.d.ts.map +1 -0
  311. package/dist/components/text/fonts/gochi-hand.strokes.js +4 -0
  312. package/dist/components/text/fonts/handlee.outline.d.ts +3 -0
  313. package/dist/components/text/fonts/handlee.outline.d.ts.map +1 -0
  314. package/dist/components/text/fonts/handlee.outline.js +4 -0
  315. package/dist/components/text/fonts/handlee.strokes.d.ts +3 -0
  316. package/dist/components/text/fonts/handlee.strokes.d.ts.map +1 -0
  317. package/dist/components/text/fonts/handlee.strokes.js +4 -0
  318. package/dist/components/text/fonts/index.d.ts +5 -0
  319. package/dist/components/text/fonts/index.d.ts.map +1 -0
  320. package/dist/components/text/fonts/index.js +44 -0
  321. package/dist/components/text/fonts/indie-flower.outline.d.ts +3 -0
  322. package/dist/components/text/fonts/indie-flower.outline.d.ts.map +1 -0
  323. package/dist/components/text/fonts/indie-flower.outline.js +4 -0
  324. package/dist/components/text/fonts/indie-flower.strokes.d.ts +3 -0
  325. package/dist/components/text/fonts/indie-flower.strokes.d.ts.map +1 -0
  326. package/dist/components/text/fonts/indie-flower.strokes.js +4 -0
  327. package/dist/components/text/fonts/kalam.outline.d.ts +3 -0
  328. package/dist/components/text/fonts/kalam.outline.d.ts.map +1 -0
  329. package/dist/components/text/fonts/kalam.outline.js +4 -0
  330. package/dist/components/text/fonts/kalam.strokes.d.ts +3 -0
  331. package/dist/components/text/fonts/kalam.strokes.d.ts.map +1 -0
  332. package/dist/components/text/fonts/kalam.strokes.js +4 -0
  333. package/dist/components/text/fonts/kaushan-script.outline.d.ts +3 -0
  334. package/dist/components/text/fonts/kaushan-script.outline.d.ts.map +1 -0
  335. package/dist/components/text/fonts/kaushan-script.outline.js +4 -0
  336. package/dist/components/text/fonts/kaushan-script.strokes.d.ts +3 -0
  337. package/dist/components/text/fonts/kaushan-script.strokes.d.ts.map +1 -0
  338. package/dist/components/text/fonts/kaushan-script.strokes.js +4 -0
  339. package/dist/components/text/fonts/mynerve.outline.d.ts +3 -0
  340. package/dist/components/text/fonts/mynerve.outline.d.ts.map +1 -0
  341. package/dist/components/text/fonts/mynerve.outline.js +4 -0
  342. package/dist/components/text/fonts/mynerve.strokes.d.ts +3 -0
  343. package/dist/components/text/fonts/mynerve.strokes.d.ts.map +1 -0
  344. package/dist/components/text/fonts/mynerve.strokes.js +4 -0
  345. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts +3 -0
  346. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts.map +1 -0
  347. package/dist/components/text/fonts/nanum-pen-script.outline.js +4 -0
  348. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts +3 -0
  349. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts.map +1 -0
  350. package/dist/components/text/fonts/nanum-pen-script.strokes.js +4 -0
  351. package/dist/components/text/fonts/pacifico.outline.d.ts +3 -0
  352. package/dist/components/text/fonts/pacifico.outline.d.ts.map +1 -0
  353. package/dist/components/text/fonts/pacifico.outline.js +4 -0
  354. package/dist/components/text/fonts/pacifico.strokes.d.ts +3 -0
  355. package/dist/components/text/fonts/pacifico.strokes.d.ts.map +1 -0
  356. package/dist/components/text/fonts/pacifico.strokes.js +4 -0
  357. package/dist/components/text/fonts/patrick-hand.outline.d.ts +3 -0
  358. package/dist/components/text/fonts/patrick-hand.outline.d.ts.map +1 -0
  359. package/dist/components/text/fonts/patrick-hand.outline.js +4 -0
  360. package/dist/components/text/fonts/patrick-hand.strokes.d.ts +3 -0
  361. package/dist/components/text/fonts/patrick-hand.strokes.d.ts.map +1 -0
  362. package/dist/components/text/fonts/patrick-hand.strokes.js +4 -0
  363. package/dist/components/text/fonts/poppins.outline.d.ts +3 -0
  364. package/dist/components/text/fonts/poppins.outline.d.ts.map +1 -0
  365. package/dist/components/text/fonts/poppins.outline.js +4 -0
  366. package/dist/components/text/fonts/poppins.strokes.d.ts +3 -0
  367. package/dist/components/text/fonts/poppins.strokes.d.ts.map +1 -0
  368. package/dist/components/text/fonts/poppins.strokes.js +4 -0
  369. package/dist/components/text/fonts/satisfy.outline.d.ts +3 -0
  370. package/dist/components/text/fonts/satisfy.outline.d.ts.map +1 -0
  371. package/dist/components/text/fonts/satisfy.outline.js +4 -0
  372. package/dist/components/text/fonts/satisfy.strokes.d.ts +3 -0
  373. package/dist/components/text/fonts/satisfy.strokes.d.ts.map +1 -0
  374. package/dist/components/text/fonts/satisfy.strokes.js +4 -0
  375. package/dist/components/text/fonts/sriracha.outline.d.ts +3 -0
  376. package/dist/components/text/fonts/sriracha.outline.d.ts.map +1 -0
  377. package/dist/components/text/fonts/sriracha.outline.js +4 -0
  378. package/dist/components/text/fonts/sriracha.strokes.d.ts +3 -0
  379. package/dist/components/text/fonts/sriracha.strokes.d.ts.map +1 -0
  380. package/dist/components/text/fonts/sriracha.strokes.js +4 -0
  381. package/dist/components/text/index.d.ts +27 -0
  382. package/dist/components/text/index.d.ts.map +1 -0
  383. package/dist/components/text/index.js +13 -0
  384. package/dist/components/text/useTextObject.d.ts +21 -0
  385. package/dist/components/text/useTextObject.d.ts.map +1 -0
  386. package/dist/components/text/useTextObject.js +118 -0
  387. package/dist/components/water/OceanSurface.d.ts.map +1 -1
  388. package/dist/components/water/OceanSurface.js +3 -1
  389. package/dist/components/water/WaterBody.d.ts.map +1 -1
  390. package/dist/components/water/WaterBody.js +3 -1
  391. package/dist/components/water/types.d.ts +5 -1
  392. package/dist/components/water/types.d.ts.map +1 -1
  393. package/dist/constants.d.ts.map +1 -1
  394. package/dist/constants.js +4 -0
  395. package/dist/hooks/index.d.ts +2 -0
  396. package/dist/hooks/index.d.ts.map +1 -1
  397. package/dist/hooks/index.js +1 -0
  398. package/dist/hooks/useCloudSun.d.ts +9 -4
  399. package/dist/hooks/useCloudSun.d.ts.map +1 -1
  400. package/dist/hooks/useCloudSun.js +17 -7
  401. package/dist/hooks/useConfigLive.d.ts +3 -2
  402. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  403. package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
  404. package/dist/hooks/useContinuousEffects.js +4 -10
  405. package/dist/hooks/useEnvironmentProbe.d.ts +3 -22
  406. package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -1
  407. package/dist/hooks/useEnvironmentProbe.js +47 -8
  408. package/dist/hooks/useGridSurface.d.ts +3 -10
  409. package/dist/hooks/useGridSurface.d.ts.map +1 -1
  410. package/dist/hooks/useGridSurface.js +5 -31
  411. package/dist/hooks/useInteraction.d.ts.map +1 -1
  412. package/dist/hooks/useInteraction.js +19 -72
  413. package/dist/hooks/useLightConfig.d.ts +2 -1
  414. package/dist/hooks/useLightConfig.d.ts.map +1 -1
  415. package/dist/hooks/useOceanMaterial.d.ts +6 -2
  416. package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
  417. package/dist/hooks/useOceanMaterial.js +37 -2
  418. package/dist/hooks/useSkyLive.d.ts +23 -0
  419. package/dist/hooks/useSkyLive.d.ts.map +1 -0
  420. package/dist/hooks/useSkyLive.js +30 -0
  421. package/dist/hooks/useSkyUniforms.d.ts.map +1 -1
  422. package/dist/hooks/useSkyUniforms.js +2 -10
  423. package/dist/hooks/useTerrainLive.d.ts +3 -1
  424. package/dist/hooks/useTerrainLive.d.ts.map +1 -1
  425. package/dist/hooks/useTerrainTextures.d.ts +38 -0
  426. package/dist/hooks/useTerrainTextures.d.ts.map +1 -0
  427. package/dist/hooks/useTerrainTextures.js +149 -0
  428. package/dist/index.d.ts +11 -2
  429. package/dist/index.d.ts.map +1 -1
  430. package/dist/index.js +8 -1
  431. package/dist/operations/catalogue/blastOff.d.ts +3 -0
  432. package/dist/operations/catalogue/blastOff.d.ts.map +1 -0
  433. package/dist/operations/catalogue/blastOff.js +118 -0
  434. package/dist/operations/catalogue/bounce.d.ts +3 -0
  435. package/dist/operations/catalogue/bounce.d.ts.map +1 -0
  436. package/dist/operations/catalogue/bounce.js +34 -0
  437. package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -1
  438. package/dist/operations/catalogue/curlSmoke.js +3 -1
  439. package/dist/operations/catalogue/dissolve.d.ts.map +1 -1
  440. package/dist/operations/catalogue/dissolve.js +2 -1
  441. package/dist/operations/catalogue/driftUp.d.ts +3 -0
  442. package/dist/operations/catalogue/driftUp.d.ts.map +1 -0
  443. package/dist/operations/catalogue/driftUp.js +57 -0
  444. package/dist/operations/catalogue/emberAsh.d.ts.map +1 -1
  445. package/dist/operations/catalogue/emberAsh.js +2 -1
  446. package/dist/operations/catalogue/flip.d.ts.map +1 -1
  447. package/dist/operations/catalogue/flip.js +19 -9
  448. package/dist/operations/catalogue/float.d.ts +3 -0
  449. package/dist/operations/catalogue/float.d.ts.map +1 -0
  450. package/dist/operations/catalogue/float.js +39 -0
  451. package/dist/operations/catalogue/flyBy.d.ts +3 -0
  452. package/dist/operations/catalogue/flyBy.d.ts.map +1 -0
  453. package/dist/operations/catalogue/flyBy.js +79 -0
  454. package/dist/operations/catalogue/frost.d.ts.map +1 -1
  455. package/dist/operations/catalogue/frost.js +10 -3
  456. package/dist/operations/catalogue/grow.d.ts +3 -0
  457. package/dist/operations/catalogue/grow.d.ts.map +1 -0
  458. package/dist/operations/catalogue/grow.js +19 -0
  459. package/dist/operations/catalogue/hologram.d.ts.map +1 -1
  460. package/dist/operations/catalogue/hologram.js +11 -5
  461. package/dist/operations/catalogue/jelly.d.ts.map +1 -1
  462. package/dist/operations/catalogue/jelly.js +18 -8
  463. package/dist/operations/catalogue/knockAway.d.ts +3 -0
  464. package/dist/operations/catalogue/knockAway.d.ts.map +1 -0
  465. package/dist/operations/catalogue/knockAway.js +74 -0
  466. package/dist/operations/catalogue/leafFall.d.ts +3 -0
  467. package/dist/operations/catalogue/leafFall.d.ts.map +1 -0
  468. package/dist/operations/catalogue/leafFall.js +74 -0
  469. package/dist/operations/catalogue/lidarScan.d.ts.map +1 -1
  470. package/dist/operations/catalogue/lidarScan.js +4 -1
  471. package/dist/operations/catalogue/metalize.d.ts.map +1 -1
  472. package/dist/operations/catalogue/metalize.js +8 -2
  473. package/dist/operations/catalogue/motionTrail.d.ts +6 -0
  474. package/dist/operations/catalogue/motionTrail.d.ts.map +1 -0
  475. package/dist/operations/catalogue/motionTrail.js +221 -0
  476. package/dist/operations/catalogue/petrify.d.ts.map +1 -1
  477. package/dist/operations/catalogue/petrify.js +9 -3
  478. package/dist/operations/catalogue/physicalExit.d.ts +55 -0
  479. package/dist/operations/catalogue/physicalExit.d.ts.map +1 -0
  480. package/dist/operations/catalogue/physicalExit.js +165 -0
  481. package/dist/operations/catalogue/physicalHeld.d.ts +41 -0
  482. package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -0
  483. package/dist/operations/catalogue/physicalHeld.js +78 -0
  484. package/dist/operations/catalogue/physicalMix.d.ts +45 -0
  485. package/dist/operations/catalogue/physicalMix.d.ts.map +1 -0
  486. package/dist/operations/catalogue/physicalMix.js +144 -0
  487. package/dist/operations/catalogue/pop.d.ts +3 -0
  488. package/dist/operations/catalogue/pop.d.ts.map +1 -0
  489. package/dist/operations/catalogue/pop.js +44 -0
  490. package/dist/operations/catalogue/print3d.d.ts.map +1 -1
  491. package/dist/operations/catalogue/print3d.js +5 -1
  492. package/dist/operations/catalogue/pulse.d.ts +3 -0
  493. package/dist/operations/catalogue/pulse.d.ts.map +1 -0
  494. package/dist/operations/catalogue/pulse.js +29 -0
  495. package/dist/operations/catalogue/restPose.d.ts +5 -7
  496. package/dist/operations/catalogue/restPose.d.ts.map +1 -1
  497. package/dist/operations/catalogue/restPose.js +18 -48
  498. package/dist/operations/catalogue/rotate.d.ts +3 -0
  499. package/dist/operations/catalogue/rotate.d.ts.map +1 -0
  500. package/dist/operations/catalogue/rotate.js +49 -0
  501. package/dist/operations/catalogue/shake.d.ts +3 -0
  502. package/dist/operations/catalogue/shake.d.ts.map +1 -0
  503. package/dist/operations/catalogue/shake.js +31 -0
  504. package/dist/operations/catalogue/shatter.d.ts.map +1 -1
  505. package/dist/operations/catalogue/shatter.js +5 -1
  506. package/dist/operations/catalogue/slam.d.ts +3 -0
  507. package/dist/operations/catalogue/slam.d.ts.map +1 -0
  508. package/dist/operations/catalogue/slam.js +89 -0
  509. package/dist/operations/catalogue/slingshot.d.ts +3 -0
  510. package/dist/operations/catalogue/slingshot.d.ts.map +1 -0
  511. package/dist/operations/catalogue/slingshot.js +88 -0
  512. package/dist/operations/catalogue/spin.d.ts.map +1 -1
  513. package/dist/operations/catalogue/spin.js +24 -13
  514. package/dist/operations/catalogue/sway.d.ts +3 -0
  515. package/dist/operations/catalogue/sway.d.ts.map +1 -0
  516. package/dist/operations/catalogue/sway.js +23 -0
  517. package/dist/operations/catalogue/swirl.d.ts.map +1 -1
  518. package/dist/operations/catalogue/swirl.js +6 -5
  519. package/dist/operations/catalogue/trailCore.d.ts +89 -0
  520. package/dist/operations/catalogue/trailCore.d.ts.map +1 -0
  521. package/dist/operations/catalogue/trailCore.js +190 -0
  522. package/dist/operations/catalogue/trailGhosts.d.ts +5 -0
  523. package/dist/operations/catalogue/trailGhosts.d.ts.map +1 -0
  524. package/dist/operations/catalogue/trailGhosts.js +179 -0
  525. package/dist/operations/catalogue/trailStampStyles.d.ts +11 -0
  526. package/dist/operations/catalogue/trailStampStyles.d.ts.map +1 -0
  527. package/dist/operations/catalogue/trailStampStyles.js +479 -0
  528. package/dist/operations/catalogue/trailStamps.d.ts +57 -0
  529. package/dist/operations/catalogue/trailStamps.d.ts.map +1 -0
  530. package/dist/operations/catalogue/trailStamps.js +349 -0
  531. package/dist/operations/catalogue/trailStreaks.d.ts +3 -0
  532. package/dist/operations/catalogue/trailStreaks.d.ts.map +1 -0
  533. package/dist/operations/catalogue/trailStreaks.js +147 -0
  534. package/dist/operations/catalogue/transitionField.d.ts +30 -0
  535. package/dist/operations/catalogue/transitionField.d.ts.map +1 -1
  536. package/dist/operations/catalogue/transitionField.js +21 -0
  537. package/dist/operations/catalogue/turnAway.d.ts +3 -0
  538. package/dist/operations/catalogue/turnAway.d.ts.map +1 -0
  539. package/dist/operations/catalogue/turnAway.js +54 -0
  540. package/dist/operations/catalogue/vortexDrain.d.ts +3 -0
  541. package/dist/operations/catalogue/vortexDrain.d.ts.map +1 -0
  542. package/dist/operations/catalogue/vortexDrain.js +68 -0
  543. package/dist/operations/catalogue/warp.d.ts +3 -0
  544. package/dist/operations/catalogue/warp.d.ts.map +1 -0
  545. package/dist/operations/catalogue/warp.js +73 -0
  546. package/dist/operations/catalogue/whoosh.d.ts +3 -0
  547. package/dist/operations/catalogue/whoosh.d.ts.map +1 -0
  548. package/dist/operations/catalogue/whoosh.js +84 -0
  549. package/dist/operations/catalogue/wobble.d.ts +3 -0
  550. package/dist/operations/catalogue/wobble.d.ts.map +1 -0
  551. package/dist/operations/catalogue/wobble.js +23 -0
  552. package/dist/operations/clipPreview.d.ts +3 -0
  553. package/dist/operations/clipPreview.d.ts.map +1 -0
  554. package/dist/operations/clipPreview.js +20 -0
  555. package/dist/operations/groupFanout.d.ts +96 -0
  556. package/dist/operations/groupFanout.d.ts.map +1 -0
  557. package/dist/operations/groupFanout.js +365 -0
  558. package/dist/operations/groups.d.ts +20 -0
  559. package/dist/operations/groups.d.ts.map +1 -0
  560. package/dist/operations/groups.js +66 -0
  561. package/dist/operations/index.d.ts +5 -2
  562. package/dist/operations/index.d.ts.map +1 -1
  563. package/dist/operations/index.js +5 -2
  564. package/dist/operations/objectEffects.d.ts +161 -6
  565. package/dist/operations/objectEffects.d.ts.map +1 -1
  566. package/dist/operations/objectEffects.js +1091 -17
  567. package/dist/operations/registry.d.ts.map +1 -1
  568. package/dist/operations/registry.js +24 -2
  569. package/dist/operations/runtime.d.ts +57 -2
  570. package/dist/operations/runtime.d.ts.map +1 -1
  571. package/dist/operations/runtime.js +161 -18
  572. package/dist/operations/types.d.ts +60 -3
  573. package/dist/operations/types.d.ts.map +1 -1
  574. package/dist/operations/types.js +5 -1
  575. package/dist/operations/useObjectEffectLayers.d.ts +2 -2
  576. package/dist/operations/useObjectEffectLayers.d.ts.map +1 -1
  577. package/dist/operations/useObjectEffectLayers.js +31 -10
  578. package/dist/operations/usePresentedVisibility.d.ts +10 -0
  579. package/dist/operations/usePresentedVisibility.d.ts.map +1 -0
  580. package/dist/operations/usePresentedVisibility.js +53 -0
  581. package/dist/presets/terrainBiomes.d.ts +67 -0
  582. package/dist/presets/terrainBiomes.d.ts.map +1 -0
  583. package/dist/presets/terrainBiomes.js +294 -0
  584. package/dist/presets/terrainPresets.d.ts +6 -0
  585. package/dist/presets/terrainPresets.d.ts.map +1 -1
  586. package/dist/presets/terrainPresets.js +26 -38
  587. package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
  588. package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
  589. package/dist/shaders/glsl/oceanCore.glsl.js +17 -0
  590. package/dist/shaders/glsl/surfaceCore.glsl.d.ts +21 -0
  591. package/dist/shaders/glsl/surfaceCore.glsl.d.ts.map +1 -0
  592. package/dist/shaders/glsl/surfaceCore.glsl.js +120 -0
  593. package/dist/shaders/glsl/terrainCore.glsl.d.ts +16 -3
  594. package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -1
  595. package/dist/shaders/glsl/terrainCore.glsl.js +266 -20
  596. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +2 -0
  597. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
  598. package/dist/shaders/ocean/OceanSurfaceMaterial.js +3 -0
  599. package/dist/shaders/terrain/TerrainMaterial.d.ts +17 -0
  600. package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
  601. package/dist/shaders/terrain/TerrainMaterial.js +107 -8
  602. package/dist/triggers/engine.d.ts +44 -0
  603. package/dist/triggers/engine.d.ts.map +1 -0
  604. package/dist/triggers/engine.js +165 -0
  605. package/dist/triggers/hosts/actions.d.ts +8 -0
  606. package/dist/triggers/hosts/actions.d.ts.map +1 -0
  607. package/dist/triggers/hosts/actions.js +22 -0
  608. package/dist/triggers/hosts/interactions.d.ts +6 -0
  609. package/dist/triggers/hosts/interactions.d.ts.map +1 -0
  610. package/dist/triggers/hosts/interactions.js +4 -0
  611. package/dist/triggers/hosts/timelineCues.d.ts +2 -0
  612. package/dist/triggers/hosts/timelineCues.d.ts.map +1 -0
  613. package/dist/triggers/hosts/timelineCues.js +22 -0
  614. package/dist/triggers/index.d.ts +13 -0
  615. package/dist/triggers/index.d.ts.map +1 -0
  616. package/dist/triggers/index.js +9 -0
  617. package/dist/triggers/kinds/action.d.ts +2 -0
  618. package/dist/triggers/kinds/action.d.ts.map +1 -0
  619. package/dist/triggers/kinds/action.js +31 -0
  620. package/dist/triggers/kinds/animations.d.ts +2 -0
  621. package/dist/triggers/kinds/animations.d.ts.map +1 -0
  622. package/dist/triggers/kinds/animations.js +75 -0
  623. package/dist/triggers/kinds/effects.d.ts +2 -0
  624. package/dist/triggers/kinds/effects.d.ts.map +1 -0
  625. package/dist/triggers/kinds/effects.js +27 -0
  626. package/dist/triggers/kinds/index.d.ts +4 -0
  627. package/dist/triggers/kinds/index.d.ts.map +1 -0
  628. package/dist/triggers/kinds/index.js +4 -0
  629. package/dist/triggers/log.d.ts +21 -0
  630. package/dist/triggers/log.d.ts.map +1 -0
  631. package/dist/triggers/log.js +43 -0
  632. package/dist/triggers/readiness.d.ts +40 -0
  633. package/dist/triggers/readiness.d.ts.map +1 -0
  634. package/dist/triggers/readiness.js +158 -0
  635. package/dist/triggers/registry.d.ts +41 -0
  636. package/dist/triggers/registry.d.ts.map +1 -0
  637. package/dist/triggers/registry.js +7 -0
  638. package/dist/types/gridConfigs.d.ts +18 -23
  639. package/dist/types/gridConfigs.d.ts.map +1 -1
  640. package/dist/ui/UiAnchorUpdater.d.ts +10 -0
  641. package/dist/ui/UiAnchorUpdater.d.ts.map +1 -0
  642. package/dist/ui/UiAnchorUpdater.js +111 -0
  643. package/dist/ui/UiLayers.d.ts +20 -0
  644. package/dist/ui/UiLayers.d.ts.map +1 -0
  645. package/dist/ui/UiLayers.js +57 -0
  646. package/dist/ui/index.d.ts +9 -0
  647. package/dist/ui/index.d.ts.map +1 -0
  648. package/dist/ui/index.js +6 -0
  649. package/dist/ui/uiAnchors.d.ts +21 -0
  650. package/dist/ui/uiAnchors.d.ts.map +1 -0
  651. package/dist/ui/uiAnchors.js +22 -0
  652. package/dist/ui/uiBaseStyles.d.ts +2 -0
  653. package/dist/ui/uiBaseStyles.d.ts.map +1 -0
  654. package/dist/ui/uiBaseStyles.js +100 -0
  655. package/dist/ui/uiBinder.d.ts +30 -0
  656. package/dist/ui/uiBinder.d.ts.map +1 -0
  657. package/dist/ui/uiBinder.js +344 -0
  658. package/dist/utils/configAnimations.d.ts.map +1 -1
  659. package/dist/utils/configAnimations.js +5 -1
  660. package/dist/utils/gridConfig.d.ts +1 -1
  661. package/dist/utils/gridConfig.d.ts.map +1 -1
  662. package/dist/utils/gridConfig.js +1 -1
  663. package/dist/utils/landPatch.d.ts +33 -0
  664. package/dist/utils/landPatch.d.ts.map +1 -0
  665. package/dist/utils/landPatch.js +114 -0
  666. package/dist/utils/renderedSky.d.ts +32 -0
  667. package/dist/utils/renderedSky.d.ts.map +1 -0
  668. package/dist/utils/renderedSky.js +57 -0
  669. package/dist/utils/skyMoon.d.ts +35 -0
  670. package/dist/utils/skyMoon.d.ts.map +1 -0
  671. package/dist/utils/skyMoon.js +41 -0
  672. package/dist/utils/terrainHeight.d.ts +4 -0
  673. package/dist/utils/terrainHeight.d.ts.map +1 -0
  674. package/dist/utils/terrainHeight.js +150 -0
  675. package/dist/utils/terrainTextureResolver.d.ts +18 -0
  676. package/dist/utils/terrainTextureResolver.d.ts.map +1 -0
  677. package/dist/utils/terrainTextureResolver.js +17 -0
  678. package/dist/utils/terrainUniforms.d.ts +17 -0
  679. package/dist/utils/terrainUniforms.d.ts.map +1 -1
  680. package/dist/utils/terrainUniforms.js +84 -0
  681. package/dist/utils/textureArrays.d.ts +29 -0
  682. package/dist/utils/textureArrays.d.ts.map +1 -0
  683. package/dist/utils/textureArrays.js +140 -0
  684. package/package.json +2 -2
@@ -0,0 +1,19 @@
1
+ // Grow — the object scales up (or down) and stays there, with a small overshoot
2
+ // as it arrives. From its base (it stays on the ground) or from its centre.
3
+ import { DURATION, heldPhysical } from './physicalHeld.js';
4
+ export default heldPhysical({
5
+ value: 'grow', label: 'Grow',
6
+ description: 'Scale up (or down) and stay — settles with a small overshoot; switching off brings it back',
7
+ ease: 'back.out(1.5)',
8
+ periodic: false,
9
+ params: {
10
+ scale: { type: 'number', label: 'Size', default: 1.25, min: 0.05, max: 5, step: 0.05, unit: '×' },
11
+ from: { type: 'select', label: 'From', default: 'base', options: [{ value: 'base', label: 'Its base' }, { value: 'center', label: 'Its centre' }] },
12
+ duration: { ...DURATION, default: 0.6, max: 6, hint: 'How long it takes to arrive, and to go back' },
13
+ },
14
+ memory: () => null,
15
+ move(part, st) {
16
+ part.s.setScalar(Math.max(0.001, 1 + (Number(st.p.scale) - 1) * st.amp.v));
17
+ part.pivot.copy(st.p.from === 'center' ? st.body.centerLocal : st.body.bottomLocal);
18
+ },
19
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"hologram.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/hologram.ts"],"names":[],"mappings":";AAgBA,wBAsFG"}
1
+ {"version":3,"file":"hologram.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/hologram.ts"],"names":[],"mappings":";AAgBA,wBA4FG"}
@@ -5,7 +5,7 @@
5
5
  // Reverting scans it back in: hologram first, then solid.
6
6
  import { defineOperation } from '../types.js';
7
7
  import { addLayer, forEachMeshMaterial, removeLayer } from './shaderLayers.js';
8
- import { SWEEP_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, runProgress, setFieldParams } from './transitionField.js';
8
+ import { SWEEP_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, goneGlsl, runProgress, setFieldParams, setReveal } from './transitionField.js';
9
9
  import { Color } from 'three';
10
10
  const P = 'Holo';
11
11
  const KEY = 'hologram';
@@ -19,6 +19,8 @@ export default defineOperation({
19
19
  toggles: true,
20
20
  usableIn: ['interaction', 'action', 'object'],
21
21
  objectParams: { disappear: false },
22
+ presence: 'paint',
23
+ field: (target) => target.userData[STATE]?.field,
22
24
  params: {
23
25
  direction: { type: 'select', label: 'Scan', default: 'down', options: SWEEP_OPTIONS },
24
26
  color: { type: 'color', label: 'Colour', default: '#3fd4ff' },
@@ -35,7 +37,7 @@ export default defineOperation({
35
37
  const own = st;
36
38
  const layer = {
37
39
  uniforms: { ...fieldUniforms(P, field), uHoloColor: st.color, uHoloDensity: st.density, uHoloGap: st.gap, uHoloKeep: st.keep },
38
- common: `varying vec3 vHoloR;\nvarying vec3 vHoloView;\n${fieldGlsl(P)}`,
40
+ common: `varying vec3 vHoloR;\nvarying vec3 vHoloView;\n${fieldGlsl(P)}\n${goneGlsl(P)}`,
39
41
  vertex: /* glsl */ `
40
42
  vHoloR = (uHoloRootInv * modelMatrix * vec4(transformed, 1.0)).xyz;
41
43
  vHoloView = (modelViewMatrix * vec4(transformed, 1.0)).xyz;`,
@@ -48,8 +50,10 @@ export default defineOperation({
48
50
  float fa = mix(-band, 1.0 + uHoloGap + band, clamp(uHoloProgress, 0.0, 1.0)); // solid → hologram
49
51
  // hologram → gone (never, when the object should stay as a hologram)
50
52
  float fb = uHoloKeep > 0.5 ? -1.0 : fa - uHoloGap;
51
- if (s < fb) discard;
52
- if (s < fa) {
53
+ float gone = HoloGone(q); // wiped by the look that replaces it
54
+ if (gone < 0.5 && s < fb) discard;
55
+ if (gone > 0.5) {
56
+ } else if (s < fa) {
53
57
  // grid in root-local units, square cells, anti-aliased
54
58
  vec3 cell = vHoloR * (uHoloDensity / uHoloExtent);
55
59
  vec3 g = abs(fract(cell - 0.5) - 0.5) / max(fwidth(cell), vec3(1e-4));
@@ -64,6 +68,7 @@ export default defineOperation({
64
68
  if (I < 0.32) discard;
65
69
  outgoingLight = uHoloColor * I * 1.6;
66
70
  } else {
71
+ if (uHoloReveal > 0.5) discard; // revealed by the scan: nothing ahead of the plane
67
72
  // the solid side gets a faint pre-glow just ahead of the plane
68
73
  outgoingLight += uHoloColor * exp(-(s - fa) / 0.03) * 0.6;
69
74
  }
@@ -78,7 +83,7 @@ export default defineOperation({
78
83
  target.userData[STATE] = st;
79
84
  }
80
85
  const s = st;
81
- setFieldParams(s.field, { direction: p.direction }, target, ctx);
86
+ setFieldParams(s.field, { direction: p.direction, __reveal: p.__reveal }, target, ctx);
82
87
  s.color.value.set(String(p.color));
83
88
  s.density.value = Number(p.density);
84
89
  s.gap.value = Number(p.hold);
@@ -95,6 +100,7 @@ export default defineOperation({
95
100
  if (!s)
96
101
  return;
97
102
  setMeshesHidden(target, false);
103
+ setReveal(s.field, p);
98
104
  return runProgress(target, s.field, 0, {
99
105
  duration: Number(p.duration), ease: 'power1.inOut',
100
106
  onComplete: () => { s.mats.forEach(m => removeLayer(m, KEY)); delete target.userData[STATE]; },
@@ -1 +1 @@
1
- {"version":3,"file":"jelly.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/jelly.ts"],"names":[],"mappings":";AAWA,wBAqCG"}
1
+ {"version":3,"file":"jelly.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/jelly.ts"],"names":[],"mappings":";AAWA,wBA8CG"}
@@ -14,7 +14,7 @@ export default defineOperation({
14
14
  channel: 'transform',
15
15
  multi: true,
16
16
  toggles: false,
17
- usableIn: ['interaction', 'action'],
17
+ usableIn: ['interaction', 'action', 'object'],
18
18
  params: {
19
19
  strength: { type: 'number', label: 'Squash', default: 0.28, min: 0.02, max: 0.7, step: 0.01 },
20
20
  wobbles: { type: 'number', label: 'Wobbles', default: 3, min: 1, max: 8, step: 0.5 },
@@ -24,27 +24,37 @@ export default defineOperation({
24
24
  const running = target.userData[KEY];
25
25
  if (running) {
26
26
  gsap.killTweensOf(running.proxy);
27
- releaseRest(target);
27
+ releaseRest(target, KEY);
28
28
  }
29
- const rest = acquireRest(target);
30
- const proxy = { t: 0 };
31
- target.userData[KEY] = { proxy };
29
+ const rest = acquireRest(target, KEY);
32
30
  const A = Number(p.strength);
33
31
  const D = Number(p.duration);
32
+ // p.__backward (playback: reverse / yoyo) plays the same move backwards in time.
33
+ const back = p.__backward === true;
34
+ const proxy = { t: back ? D : 0 };
35
+ target.userData[KEY] = { proxy };
34
36
  const w = 2 * Math.PI * (Number(p.wobbles) / D); // rad/s
35
37
  const k = 4.6 / D; // decays to 1% by the end
36
38
  const s = new Vector3();
37
39
  gsap.to(proxy, {
38
- t: D, duration: D, ease: 'none',
40
+ t: back ? 0 : D, duration: D, ease: 'none',
39
41
  onUpdate: () => {
40
42
  const t = proxy.t;
41
43
  // damped spring, squash first
42
44
  const sy = 1 - A * Math.exp(-k * t) * Math.sin(w * t);
43
45
  const sxz = 1 / Math.sqrt(Math.max(sy, 0.05)); // keep the volume
44
46
  s.set(sxz, sy, sxz);
45
- poseAbout(target, rest, rest.bottomLocal, NO_TURN, s);
47
+ poseAbout(target, rest, rest.bottomLocal, NO_TURN, s, undefined, KEY);
46
48
  },
47
- onComplete: () => { delete target.userData[KEY]; releaseRest(target); },
49
+ onComplete: () => { delete target.userData[KEY]; releaseRest(target, KEY); },
48
50
  });
49
51
  },
52
+ cancel(target) {
53
+ const running = target.userData[KEY];
54
+ if (!running)
55
+ return;
56
+ gsap.killTweensOf(running.proxy);
57
+ delete target.userData[KEY];
58
+ releaseRest(target, KEY);
59
+ },
50
60
  });
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=knockAway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knockAway.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/knockAway.ts"],"names":[],"mappings":";AA0BA,wBAmDG"}
@@ -0,0 +1,74 @@
1
+ // Knock away — the object is struck from the side at a point above or below its
2
+ // centre. The impulse gives it linear AND angular velocity, the spin set by the
3
+ // arm of the hit over its inertia (a box from its own bounds: I ∝ h² + w²), so a
4
+ // tall thing struck high tips and tumbles while a flat one mostly skims. It
5
+ // compresses at the impact, flies off on a ballistic arc, slowed by drag, tumbling
6
+ // at a constant rate, and is gone. The way back: it is thrown in from the other
7
+ // side with back-spin, lands upright and settles with two small hops and a rock.
8
+ import { Quaternion, Vector3 } from 'three';
9
+ import { clamp01, physicalExit, ring, smooth, stretchAxis } from './physicalExit.js';
10
+ const LAND = 0.62;
11
+ const _d = new Vector3(), _n = new Vector3(), _q = new Quaternion(), _y = new Quaternion();
12
+ function axes(a) {
13
+ const f = a.frame;
14
+ _d.copy(f.right).multiplyScalar(a.p.side === 'right' ? -1 : 1); // struck from the left = flies right
15
+ _n.crossVectors(f.up, _d).normalize(); // + about it tips the top towards _d
16
+ }
17
+ /** Turns of tumble over the flight: the hit's arm over the inertia (box), scaled by the strength. */
18
+ function tumbleTurns(a) {
19
+ const H = a.size.y, W = Math.max(a.size.x, a.size.z);
20
+ const arm = (Number(a.p.hit) - 0.5) * 2; // −1 (bottom) … 1 (top)
21
+ return 1.3 * arm * (Number(a.p.strength) / 6) * (H * H) / (H * H + W * W) * 2;
22
+ }
23
+ export default physicalExit({
24
+ value: 'knockAway',
25
+ label: 'Knock away',
26
+ description: 'Struck from the side: it flies off on an arc, tumbling by where it was hit — tall things tip, flat ones skim; it is thrown back in and lands with a hop',
27
+ params: {
28
+ side: {
29
+ type: 'select', label: 'Struck from', default: 'left', options: [{ value: 'left', label: 'The left' }, { value: 'right', label: 'The right' }],
30
+ hint: 'Screen-relative when it starts',
31
+ },
32
+ strength: { type: 'number', label: 'Strength', default: 6, min: 2, max: 30, step: 0.5, hint: 'How far it flies, × its size' },
33
+ lift: { type: 'number', label: 'Arc', default: 1.6, min: 0, max: 5, step: 0.05, hint: 'Height of the arc, × its height' },
34
+ hit: { type: 'number', label: 'Hit height', default: 0.75, min: 0, max: 1, step: 0.01, hint: '0 = struck at its base, 1 = at its top' },
35
+ duration: { type: 'number', label: 'Duration', default: 1.6, min: 0.3, max: 6, step: 0.05, unit: 's' },
36
+ },
37
+ exit(u, out, a) {
38
+ const p = a.p, H = a.size.y;
39
+ axes(a);
40
+ const dist = Number(p.strength) * a.span;
41
+ const x = dist * (1 - Math.pow(1 - u, 1.25)); // drag slows it
42
+ const y = 4 * Number(p.lift) * H * u * (1 - u);
43
+ out.off.copy(_d).multiplyScalar(x).addScaledVector(a.frame.up, y);
44
+ const th = 2 * Math.PI * tumbleTurns(a) * u;
45
+ _q.setFromAxisAngle(_n, th).multiply(_y.setFromAxisAngle(a.frame.up, 0.35 * u));
46
+ out.q.copy(a.local(_q));
47
+ // compressed by the blow for an instant
48
+ const squash = 0.18 * Math.sin(Math.PI * Math.min(1, u / 0.12));
49
+ stretchAxis(out.s, a.axis(_d), 1 - squash, 1 - smooth(0.7, 1, u));
50
+ },
51
+ enter(v, out, a) {
52
+ const p = a.p, H = a.size.y;
53
+ axes(a);
54
+ const dist = Number(p.strength) * a.span * 0.7;
55
+ if (v < LAND) {
56
+ const tau = v / LAND;
57
+ const x = -0.15 * a.span - dist * Math.pow(1 - tau, 1.15);
58
+ const y = 4 * Number(p.lift) * 0.8 * H * tau * (1 - tau);
59
+ out.off.copy(_d).multiplyScalar(x).addScaledVector(a.frame.up, y);
60
+ // back-spin that runs out exactly as it lands upright
61
+ const th = -2 * Math.PI * 0.75 * Math.sign(tumbleTurns(a) || 1) * Math.pow(1 - tau, 1.3);
62
+ out.q.copy(a.local(_q.setFromAxisAngle(_n, th)));
63
+ out.s.setScalar(smooth(0, 0.25, tau));
64
+ return;
65
+ }
66
+ // two shrinking hops over the last bit, rocking
67
+ const sg = clamp01((v - LAND) / (1 - LAND));
68
+ const x = -0.15 * a.span * Math.pow(1 - sg, 1.5);
69
+ const y = 0.22 * H * Math.abs(Math.sin(2 * Math.PI * sg)) * (1 - sg) * (1 - sg);
70
+ out.off.copy(_d).multiplyScalar(x).addScaledVector(a.frame.up, y);
71
+ out.q.copy(a.local(_q.setFromAxisAngle(_n, 0.12 * ring(sg, 1.5, 3))));
72
+ out.pivot = 'bottom';
73
+ },
74
+ });
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=leafFall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leafFall.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/leafFall.ts"],"names":[],"mappings":";AA2BA,wBA+CG"}
@@ -0,0 +1,74 @@
1
+ // Leaf fall — the object is light as a leaf. A gust lifts it and carries it off
2
+ // downwind, gliding side to side the way a falling plate does: it swings across
3
+ // the wind, rocks like a pendulum (most tilted at the ends of each swing, where
4
+ // it turns), tips over a little at each turn and slowly yaws — growing smaller
5
+ // as the wind takes it. The way back is a leaf settling: it flutters down from
6
+ // above, the swings and the rocking dying away, and touches down softly.
7
+ import { Quaternion, Vector3 } from 'three';
8
+ import { clamp01, physicalExit, smooth } from './physicalExit.js';
9
+ const _r = new Quaternion(), _p = new Quaternion(), _y = new Quaternion();
10
+ const _wind = new Vector3(), _across = new Vector3();
11
+ function axes(f, wind) {
12
+ if (wind === 'left')
13
+ _wind.copy(f.right).negate();
14
+ else if (wind === 'away')
15
+ _wind.copy(f.toward).negate();
16
+ else
17
+ _wind.copy(f.right);
18
+ _across.crossVectors(f.up, _wind).normalize(); // horizontal, across the wind
19
+ }
20
+ /** Rock about the wind (roll), tip over at the turns (pitch, about `across`), yaw slowly. */
21
+ function attitude(out, a, roll, pitch, yaw) {
22
+ _r.setFromAxisAngle(_wind, roll);
23
+ _p.setFromAxisAngle(_across, pitch);
24
+ _y.setFromAxisAngle(a.frame.up, yaw);
25
+ out.q.copy(a.local(_r.multiply(_p).multiply(_y)));
26
+ }
27
+ export default physicalExit({
28
+ value: 'leafFall',
29
+ label: 'Leaf fall',
30
+ description: 'A gust lifts it and carries it away, gliding side to side and rocking like a falling leaf — it comes back fluttering down and settles softly',
31
+ params: {
32
+ wind: {
33
+ type: 'select', label: 'Wind', default: 'right', options: [
34
+ { value: 'right', label: 'To the right' }, { value: 'left', label: 'To the left' }, { value: 'away', label: 'Away' },
35
+ ], hint: 'Screen-relative when it starts',
36
+ },
37
+ swings: { type: 'number', label: 'Swings', default: 3, min: 1, max: 8, step: 0.5, hint: 'Side-to-side glides on the way' },
38
+ rock: { type: 'number', label: 'Rock', default: 32, min: 0, max: 75, step: 1, unit: '°', hint: 'How far it tilts at the end of a swing' },
39
+ drift: { type: 'number', label: 'Drift', default: 4, min: 0.5, max: 15, step: 0.25, hint: 'How far the wind carries it, × its size' },
40
+ duration: { type: 'number', label: 'Duration', default: 3.2, min: 0.6, max: 12, step: 0.05, unit: 's' },
41
+ },
42
+ exit(u, out, a) {
43
+ const p = a.p, H = a.size.y, span = a.span;
44
+ axes(a.frame, p.wind);
45
+ const n = Number(p.swings), rock = Number(p.rock) * Math.PI / 180;
46
+ const e = smooth(0, 0.18, u); // the gust takes hold
47
+ const ph = 2 * Math.PI * n * u;
48
+ const glide = Math.sin(ph); // −1..1 across the wind
49
+ const carry = Number(p.drift) * span * Math.pow(u, 1.7); // the wind picks it up and speeds it on
50
+ const lift = H * (0.75 * smooth(0, 0.45, u) - 0.3 * smooth(0.45, 1, u));
51
+ out.off.set(0, 0, 0)
52
+ .addScaledVector(_wind, carry)
53
+ .addScaledVector(_across, 0.45 * span * glide * e)
54
+ .addScaledVector(a.frame.up, lift);
55
+ // tilted most at the ends of a swing; tips over a little where it turns
56
+ attitude(out, a, -rock * glide * e, 0.35 * rock * Math.sin(2 * ph) * e, 0.7 * Math.PI * u * u);
57
+ out.s.setScalar(1 - smooth(0.5, 1, u));
58
+ },
59
+ enter(v, out, a) {
60
+ const p = a.p, H = a.size.y, span = a.span;
61
+ axes(a.frame, p.wind);
62
+ const n = Number(p.swings), rock = Number(p.rock) * Math.PI / 180;
63
+ const left = 1 - v;
64
+ const ph = 2 * Math.PI * n * v;
65
+ const glide = Math.sin(ph);
66
+ const die = Math.pow(left, 1.3); // the swings die away as it settles
67
+ out.off.set(0, 0, 0)
68
+ .addScaledVector(_wind, -0.8 * span * left * left) // drifts in from upwind
69
+ .addScaledVector(_across, 0.45 * span * glide * die)
70
+ .addScaledVector(a.frame.up, 2.6 * H * Math.pow(left, 1.6)); // slows as it comes down
71
+ attitude(out, a, -rock * glide * die, 0.35 * rock * Math.sin(2 * ph) * die, -0.5 * Math.PI * left * left);
72
+ out.s.setScalar(smooth(0, 0.2, clamp01(v)));
73
+ },
74
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"lidarScan.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/lidarScan.ts"],"names":[],"mappings":";AAuGA,wBAqJG"}
1
+ {"version":3,"file":"lidarScan.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/lidarScan.ts"],"names":[],"mappings":";AAuGA,wBAwJG"}
@@ -14,7 +14,7 @@
14
14
  import { AdditiveBlending, Color, DoubleSide, Mesh, PlaneGeometry, Quaternion, ShaderMaterial, Vector3 } from 'three';
15
15
  import { defineOperation } from '../types.js';
16
16
  import { addLayer, forEachMeshMaterial, removeLayer } from './shaderLayers.js';
17
- import { SWEEP_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, hideMeshes, localBounds, runProgress, setFieldParams, sweepVector, } from './transitionField.js';
17
+ import { SWEEP_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, hideMeshes, localBounds, runProgress, setFieldParams, setReveal, sweepVector, } from './transitionField.js';
18
18
  import { sampleSurfaceCached } from './surfaceSample.js';
19
19
  import { GLSL_POINT_SIZE, createFxPoints, disposeFxPoints } from './fxPoints.js';
20
20
  import { hideUntilWarm } from './warmup.js';
@@ -104,6 +104,7 @@ export default defineOperation({
104
104
  disappear: { type: 'boolean', label: 'Disappear', default: true, hint: 'Off: the object stays in scanned mode — mesh and point cloud' },
105
105
  },
106
106
  objectParams: { disappear: false },
107
+ presence: 'paint',
107
108
  apply(target, p, ctx) {
108
109
  let st = target.userData[STATE];
109
110
  if (!st) {
@@ -167,6 +168,7 @@ export default defineOperation({
167
168
  float a = LdrAlong(vLdrQ);
168
169
  float s1 = ldrFront(0.0), s2 = ldrFront(${MESH.toFixed(2)});
169
170
  if (a < s2) discard; // only the point cloud is left
171
+ if (uLdrReveal > 0.5 && a >= s1) discard; // revealed by the laser: nothing ahead of it
170
172
  float on = step(0.0001, uLdrProgress) * step(uLdrProgress, ${(END - 0.0001).toFixed(4)});
171
173
  if (a < s1) {
172
174
  // the reconstructed mesh: lattice lines only, dimming as it goes
@@ -221,6 +223,7 @@ export default defineOperation({
221
223
  if (!s)
222
224
  return;
223
225
  hideMeshes(target, KEY, false);
226
+ setReveal(s.field, p);
224
227
  s.points.visible = true;
225
228
  const sheetOn = p.sheet !== false;
226
229
  // from a hold it only has part of the way to go: keep the same speed
@@ -1 +1 @@
1
- {"version":3,"file":"metalize.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/metalize.ts"],"names":[],"mappings":";AA8EA,wBA4DG"}
1
+ {"version":3,"file":"metalize.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/metalize.ts"],"names":[],"mappings":";AAiFA,wBA+DG"}
@@ -11,7 +11,7 @@
11
11
  import { Color } from 'three';
12
12
  import { defineOperation } from '../types.js';
13
13
  import { addLayer, forEachMeshMaterial, removeLayer } from './shaderLayers.js';
14
- import { DIRECTION_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, runProgress, setFieldParams } from './transitionField.js';
14
+ import { DIRECTION_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, goneGlsl, runProgress, setFieldParams, setReveal } from './transitionField.js';
15
15
  const P = 'Mtl';
16
16
  const KEY = 'metalize';
17
17
  const STATE = '__opMetalize';
@@ -24,7 +24,7 @@ const DEFAULT_CUSTOM = '#9fd0ff';
24
24
  function layerFor(st) {
25
25
  return {
26
26
  uniforms: { ...fieldUniforms(P, st.field), uMtlTint: st.tint, uMtlRough: st.rough, uMtlIrid: st.irid, uMtlLip: st.lip, uMtlCool: st.cool },
27
- common: `varying vec3 vMtlQ;\nvarying vec3 vMtlR;\nvarying vec3 vMtlView;\n${fieldGlsl(P)}`,
27
+ common: `varying vec3 vMtlQ;\nvarying vec3 vMtlR;\nvarying vec3 vMtlView;\n${fieldGlsl(P)}\n${goneGlsl(P)}`,
28
28
  vertex: /* glsl */ `
29
29
  vMtlR = (uMtlRootInv * modelMatrix * vec4(transformed, 1.0)).xyz;
30
30
  vMtlQ = MtlNorm(vMtlR);
@@ -33,6 +33,9 @@ function layerFor(st) {
33
33
  {
34
34
  float d = MtlThreshold() - MtlField(vMtlQ); // > 0 behind the front
35
35
  float m = smoothstep(0.0, uMtlEdgeWidth, d);
36
+ // revealed by the metal: nothing ahead of the front, full metal right behind it
37
+ if (uMtlReveal > 0.5) { if (d < 0.0) discard; m = 1.0; }
38
+ if (MtlGone(vMtlQ) > 0.5) { m = 0.0; d = -1.0; } // wiped by the look that replaces it
36
39
  if (m > 0.0 || d > -0.05) {
37
40
  vec3 nv = normalize(cross(dFdx(vMtlView), dFdy(vMtlView)));
38
41
  #if defined( STANDARD ) || defined( PHONG ) || defined( LAMBERT ) || defined( TOON )
@@ -77,6 +80,8 @@ export default defineOperation({
77
80
  multi: true,
78
81
  toggles: true,
79
82
  usableIn: ['interaction', 'action', 'object'],
83
+ presence: 'paint',
84
+ field: (target) => target.userData[STATE]?.field,
80
85
  stack: 'surface',
81
86
  params: {
82
87
  metal: {
@@ -127,6 +132,7 @@ export default defineOperation({
127
132
  const s = target.userData[STATE];
128
133
  if (!s)
129
134
  return;
135
+ setReveal(s.field, p);
130
136
  return runProgress(target, s.field, 0, {
131
137
  duration: Number(p.duration), ease: 'power1.inOut',
132
138
  onComplete: () => { s.mats.forEach(m => removeLayer(m, KEY)); delete target.userData[STATE]; },
@@ -0,0 +1,6 @@
1
+ import type { OperationDefinition } from '../types';
2
+ /** Sample and draw every trail now (the ticker does this every frame; tests stepping time call it by hand). */
3
+ export declare function tickTrails(): void;
4
+ /** Every trail, in gallery order. */
5
+ export declare const TRAILS: OperationDefinition[];
6
+ //# sourceMappingURL=motionTrail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motionTrail.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/motionTrail.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,UAAU,CAAC;AAOxE,+GAA+G;AAC/G,wBAAgB,UAAU,SAAiB;AA4I3C,qCAAqC;AACrC,eAAO,MAAM,MAAM,EAAE,mBAAmB,EA6BvC,CAAC"}
@@ -0,0 +1,221 @@
1
+ // Motion trails — add-ons that draw where the object has just been, whatever moves it:
2
+ // physical effects, clips, held motions, a drag in the studio. A trail watches the
3
+ // object's own world transform (trailCore: a short history, smoothed velocity and
4
+ // acceleration, sampled every frame on gsap's clock) — no other effect knows about it.
5
+ //
6
+ // One effect per style, all on this one engine and ONE settings API (the agent and the
7
+ // studio see the same shape for every trail):
8
+ // length · amount · size · opacity (Strength) · color · color2 (· color3) · duration (Fade)
9
+ // Length is how long it lasts, Amount how much of it, Size how big — each style scales
10
+ // them; the colours mean "main" and "what it turns / fades into" in every style.
11
+ // Each trail keeps its own state (`__opTrail_<style>`), so trails combine on one object.
12
+ //
13
+ // afterimageTrail fading Fresnel copies of the object along its path trailGhosts
14
+ // longExposureTrail a dense smear of faint copies — a long-exposure photo trailGhosts
15
+ // chromaticEchoTrail red / green / blue copies a beat apart: fringe → white trailGhosts
16
+ // streaksTrail crisp light ribbons from points spread over its surface trailStreaks
17
+ // Stamp trails — copies of the object left where it was, each turning into something
18
+ // and going away in place (trailStamps.ts + trailStampStyles.ts):
19
+ // smoke, ash, hologram, ink, frost (its own meshes, new shaders)
20
+ // sand (surface grains), voxel (cubes), shatter (its triangles as Voronoi shards),
21
+ // wireframe (its real edges), bubbles
22
+ //
23
+ // Everything lives in the SCENE (not under the object): an exit hides the object and
24
+ // the trail must keep going after it is gone. Built, compiled in the background
25
+ // (hideUntilWarm / warmHelpers), then faded in; switched off it fades out, waits for
26
+ // particles still in flight to finish, and is removed.
27
+ import { gsap } from 'gsap';
28
+ import { Color, Group, Matrix4, Vector3 } from 'three';
29
+ import { defineOperation } from '../types.js';
30
+ import { hideUntilWarm, warmHelpers, warmMode } from './warmup.js';
31
+ import { cameraPos, measure, newHistory, record } from './trailCore.js';
32
+ import { afterimage, chromaticEcho, longExposure } from './trailGhosts.js';
33
+ import { streaks } from './trailStreaks.js';
34
+ import { ash, bubbles, frost, hologram, ink, sand, shatter, smoke, voxel, wireframe } from './trailStampStyles.js';
35
+ // one ticker for every trail; time is gsap's own clock (follows the global time scale)
36
+ const active = new Set();
37
+ const tickAll = () => active.forEach(t => t());
38
+ /** Sample and draw every trail now (the ticker does this every frame; tests stepping time call it by hand). */
39
+ export function tickTrails() { tickAll(); }
40
+ const clock = () => gsap.globalTimeline.time();
41
+ function paramsOf(style, p, prev) {
42
+ // colour settings are sRGB hex; Color converts them to the linear working space
43
+ const col = (v, old) => (old ?? new Color()).set(String(v));
44
+ return {
45
+ style,
46
+ length: Number(p.length),
47
+ amount: Number(p.amount),
48
+ size: Number(p.size),
49
+ opacity: Number(p.opacity),
50
+ color: col(p.color, prev?.color), color2: col(p.color2, prev?.color2), color3: col(p.color3 ?? p.color2, prev?.color3),
51
+ };
52
+ }
53
+ /** What a trail is built for — a change here rebuilds it (the others apply live). */
54
+ const shapeKey = (p) => `${Math.round(Number(p.amount) * 20)}`;
55
+ function build(KEY, styleName, style, target, p) {
56
+ const group = new Group();
57
+ group.name = `trail:${styleName}`;
58
+ group.userData.__opFxHelper = true;
59
+ group.matrixAutoUpdate = false;
60
+ let root = target;
61
+ while (root.parent)
62
+ root = root.parent;
63
+ root.add(group);
64
+ const { span, floor } = measure(target);
65
+ const ctx = {
66
+ target, group, env: { v: 0 }, p: paramsOf(styleName, p), span, floor,
67
+ hist: newHistory(), head: 0, count: 0, now: clock(), dt: 0,
68
+ vel: new Vector3(), acc: new Vector3(), speed: 0, world: new Matrix4(), cam: null,
69
+ };
70
+ style.build(ctx);
71
+ hideUntilWarm(group);
72
+ const camAt = new Vector3();
73
+ const st = { ctx, style, shape: shapeKey(p), tick: () => undefined };
74
+ st.tick = () => {
75
+ if (!target.parent) {
76
+ dispose(KEY, target);
77
+ return;
78
+ } // the object left the scene
79
+ ctx.cam = cameraPos(camAt);
80
+ record(ctx, clock());
81
+ style.update(ctx);
82
+ };
83
+ return st;
84
+ }
85
+ function dispose(KEY, target) {
86
+ const st = target.userData[KEY];
87
+ if (!st)
88
+ return;
89
+ active.delete(st.tick);
90
+ if (!active.size)
91
+ gsap.ticker.remove(tickAll);
92
+ gsap.killTweensOf(st.ctx.env);
93
+ st.resolve?.();
94
+ st.style.dispose?.(st.ctx);
95
+ st.ctx.group.removeFromParent();
96
+ delete target.userData[KEY];
97
+ }
98
+ /** Resolves once the style has nothing left in flight (or after `max` seconds). */
99
+ function settled(st, max) {
100
+ return new Promise(resolve => {
101
+ const t0 = performance.now();
102
+ const check = () => {
103
+ if (!st.style.alive?.(st.ctx) || performance.now() - t0 > max * 1000) {
104
+ gsap.ticker.remove(check);
105
+ resolve();
106
+ }
107
+ };
108
+ gsap.ticker.add(check);
109
+ });
110
+ }
111
+ /** One trail effect: a style on the shared engine, with the shared settings. */
112
+ function trail(spec) {
113
+ const KEY = `__opTrail_${spec.style}`;
114
+ const value = `${spec.style}Trail`;
115
+ const c = (s) => ({ type: 'color', label: s.label, default: s.default, ...(s.hint ? { hint: s.hint } : {}) });
116
+ return defineOperation({
117
+ value, label: spec.label,
118
+ description: `${spec.description} — wherever the object moves (physical effects, clips, a drag); nothing while it stands still. Combines with other trails`,
119
+ channel: 'visual',
120
+ multi: true,
121
+ toggles: true,
122
+ usableIn: ['interaction', 'action', 'object'],
123
+ addOn: true, // on before an entrance, off after an exit (Follows visibility)
124
+ params: {
125
+ length: { type: 'number', label: 'Length', default: 0.35, min: 0.05, max: 2, step: 0.01, unit: 's', hint: 'How long the trail lasts' },
126
+ amount: { type: 'number', label: 'Amount', default: 0.35, min: 0, max: 1, step: 0.01, hint: 'How much of it — copies, ribbons, grains' },
127
+ size: { type: 'number', label: 'Size', default: 0.35, min: 0, max: 1, step: 0.01, hint: 'Width, grain size, how far it spreads' },
128
+ opacity: { type: 'number', label: 'Strength', default: 0.7, min: 0.05, max: 2, step: 0.05 },
129
+ color: c(spec.color),
130
+ color2: c(spec.color2),
131
+ ...(spec.color3 ? { color3: c(spec.color3) } : {}),
132
+ duration: { type: 'number', label: 'Fade', default: 0.35, min: 0, max: 3, step: 0.05, unit: 's', hint: 'How long it takes to switch on and off' },
133
+ },
134
+ apply(target, p) {
135
+ let st = target.userData[KEY];
136
+ if (st && st.shape !== shapeKey(p)) {
137
+ dispose(KEY, target);
138
+ st = undefined;
139
+ } // a different build: made again
140
+ if (!st) {
141
+ st = build(KEY, spec.style, spec.impl, target, p);
142
+ target.userData[KEY] = st;
143
+ if (!active.size)
144
+ gsap.ticker.add(tickAll);
145
+ active.add(st.tick);
146
+ }
147
+ const s = st;
148
+ s.ending = false;
149
+ s.ctx.p = paramsOf(spec.style, p, s.ctx.p);
150
+ const ready = warmHelpers(s.ctx.group);
151
+ if (warmMode.on)
152
+ return ready; // a warm-only run: compiled, nothing shown
153
+ return ready.then(() => new Promise(resolve => {
154
+ gsap.killTweensOf(s.ctx.env);
155
+ s.resolve?.();
156
+ s.resolve = resolve;
157
+ const D = Number(p.duration) * (1 - s.ctx.env.v);
158
+ if (D <= 1e-4) {
159
+ s.ctx.env.v = 1;
160
+ s.resolve = undefined;
161
+ resolve();
162
+ return;
163
+ }
164
+ gsap.to(s.ctx.env, { v: 1, duration: D, ease: 'power1.out', onComplete: () => { s.resolve = undefined; resolve(); } });
165
+ }));
166
+ },
167
+ revert(target, p) {
168
+ const st = target.userData[KEY];
169
+ if (!st)
170
+ return;
171
+ gsap.killTweensOf(st.ctx.env);
172
+ st.resolve?.();
173
+ const D = Number(p.duration) * st.ctx.env.v;
174
+ if (D <= 1e-4) {
175
+ dispose(KEY, target);
176
+ return;
177
+ }
178
+ st.ending = true;
179
+ return new Promise(resolve => {
180
+ st.resolve = resolve;
181
+ gsap.to(st.ctx.env, {
182
+ v: 0, duration: D, ease: 'power1.in',
183
+ // particles still in flight finish (up to 4 s), then it is removed — unless switched on again meanwhile
184
+ onComplete: () => { void settled(st, 4).then(() => { if (st.ending && target.userData[KEY] === st)
185
+ dispose(KEY, target); resolve(); }); },
186
+ });
187
+ });
188
+ },
189
+ });
190
+ }
191
+ /** Every trail, in gallery order. */
192
+ export const TRAILS = [
193
+ trail({ style: 'afterimage', impl: afterimage, label: 'Afterimage trail', description: 'Fading glassy copies of the object along its path',
194
+ color: { label: 'Colour', default: '#bfe6ff' }, color2: { label: 'Tail colour', default: '#7d5cff', hint: 'The colour it fades into' } }),
195
+ trail({ style: 'longExposure', impl: longExposure, label: 'Long exposure', description: 'A dense smear of faint copies, like a long-exposure photo',
196
+ color: { label: 'Colour', default: '#bfe6ff' }, color2: { label: 'Tail colour', default: '#7d5cff', hint: 'The colour it fades into' } }),
197
+ trail({ style: 'chromaticEcho', impl: chromaticEcho, label: 'Chromatic echo', description: 'Three coloured copies a beat apart — a fringe that adds up to white',
198
+ color: { label: 'First echo', default: '#ff2b1c', hint: 'Three colours that add up to white' }, color2: { label: 'Second echo', default: '#22ff4e' }, color3: { label: 'Third echo', default: '#2b5cff' } }),
199
+ trail({ style: 'streaks', impl: streaks, label: 'Light streaks', description: 'Crisp light ribbons drawn from points over its surface',
200
+ color: { label: 'Colour', default: '#bfe6ff' }, color2: { label: 'Tail colour', default: '#7d5cff', hint: 'The colour it fades into' } }),
201
+ trail({ style: 'smoke', impl: smoke, label: 'Smoke trail', description: 'Copies of the object left behind turn to smoke in its shape, billow up and evaporate',
202
+ color: { label: 'Smoke colour', default: '#e4e8ee', hint: 'Where light falls on it' }, color2: { label: 'Shade colour', default: '#5d6673', hint: 'Its underside' } }),
203
+ trail({ style: 'ash', impl: ash, label: 'Ash trail', description: 'Copies left behind burn from within along a glowing ember front, and are gone',
204
+ color: { label: 'Ash colour', default: '#8d8a86' }, color2: { label: 'Ember colour', default: '#ff7a1f', hint: 'The glowing front' } }),
205
+ trail({ style: 'sand', impl: sand, label: 'Sand trail', description: 'Copies left behind fall apart into grains that pour down into a little heap',
206
+ color: { label: 'Sand colour', default: '#dcc59c' }, color2: { label: 'Dark grains', default: '#8a6f4a', hint: 'Grains vary between the two' } }),
207
+ trail({ style: 'hologram', impl: hologram, label: 'Hologram trail', description: 'Copies left behind as holograms that glitch out band by band',
208
+ color: { label: 'Hologram colour', default: '#45dcff' }, color2: { label: 'Grid colour', default: '#e6fbff', hint: 'Grid lines and the rim' } }),
209
+ trail({ style: 'voxel', impl: voxel, label: 'Voxel trail', description: 'Copies left behind as cubes that drop from the top, tumble and shrink away',
210
+ color: { label: 'Voxel colour', default: '#7cc4ff' }, color2: { label: 'Edge colour', default: '#f2f9ff' } }),
211
+ trail({ style: 'shatter', impl: shatter, label: 'Shatter trail', description: 'Copies left behind cut into glass shards from its own triangles, drifting apart',
212
+ color: { label: 'Shard colour', default: '#b9d6ff' }, color2: { label: 'Rim colour', default: '#ffffff', hint: 'The light along its edges' } }),
213
+ trail({ style: 'ink', impl: ink, label: 'Ink trail', description: 'Copies left behind swirl into ink in water and tear into filaments',
214
+ color: { label: 'Ink colour', default: '#1b2c80' }, color2: { label: 'Bleed colour', default: '#8fb0ff', hint: 'Where it thins out' } }),
215
+ trail({ style: 'frost', impl: frost, label: 'Frost trail', description: 'Copies left behind frost over, crack open and melt away',
216
+ color: { label: 'Ice colour', default: '#cdeeff' }, color2: { label: 'Rim colour', default: '#ffffff', hint: 'Its rim and cracks' } }),
217
+ trail({ style: 'wireframe', impl: wireframe, label: 'Wireframe trail', description: 'Copies left behind as its real mesh edges, each retracting into its middle',
218
+ color: { label: 'Wire colour', default: '#7ff0ff' }, color2: { label: 'Fade colour', default: '#7a5cff', hint: 'The colour it ages into' } }),
219
+ trail({ style: 'bubbles', impl: bubbles, label: 'Bubble trail', description: 'Soap bubbles form over copies of it, rise, wobble and pop',
220
+ color: { label: 'Bubble colour', default: '#bfeaff' }, color2: { label: 'Sheen colour', default: '#ff9fd8', hint: 'The soap-film colour sliding over each bubble' } }),
221
+ ];
@@ -1 +1 @@
1
- {"version":3,"file":"petrify.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/petrify.ts"],"names":[],"mappings":";AAqDA,wBA0CG"}
1
+ {"version":3,"file":"petrify.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/petrify.ts"],"names":[],"mappings":";AAwDA,wBA6CG"}