shaders 3.2.467 → 3.2.468

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 (508) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-CQvQuy5c.js → AngularBlur-g4-fDx1N.js} +3 -3
  3. package/dist/core/{Arc-lEiEQxrQ.js → Arc-B4VGPOtO.js} +3 -3
  4. package/dist/core/{Ascii-DFpPCO5J.js → Ascii-DxiduEzP.js} +3 -3
  5. package/dist/core/{Aurora-CrvHBSoD.js → Aurora-C0J5do9Y.js} +11 -11
  6. package/dist/core/{BarShift-BqUErdh0.js → BarShift-BukEd3jr.js} +3 -3
  7. package/dist/core/{BarnDoors-YMRdmthB.js → BarnDoors-BC0LM0aD.js} +3 -3
  8. package/dist/core/{Beam-DI0mV-q5.js → Beam-CxAXVlAf.js} +3 -3
  9. package/dist/core/{Bend-DScnRt1y.js → Bend-BfVVIo2C.js} +2 -2
  10. package/dist/core/{Blob-CPpcDFgo.js → Blob-D_IbcUCc.js} +10 -10
  11. package/dist/core/{BlockDissolve-PCAJIJXN.js → BlockDissolve-C9nsgIz9.js} +3 -3
  12. package/dist/core/{BlockNoise-BCS8754P.js → BlockNoise-BgwbD0rx.js} +4 -4
  13. package/dist/core/{BlueNoise-DEo9iRoc.js → BlueNoise-BdwOaq4G.js} +4 -4
  14. package/dist/core/{Blur-B6DN_qRU.js → Blur-ceuv7ZTm.js} +2 -2
  15. package/dist/core/{Boids-CW5JGliU.js → Boids-C3r8YaQb.js} +5 -5
  16. package/dist/core/{BokehBlur-BOFm1eDD.js → BokehBlur-C8xJ0xA8.js} +3 -3
  17. package/dist/core/{BrickPattern-C1OBaO3l.js → BrickPattern-C-6QFzp6.js} +3 -3
  18. package/dist/core/{BrightnessContrast-Z7G6XSBo.js → BrightnessContrast-CMUaNvo0.js} +3 -3
  19. package/dist/core/{BrushedMetal-BgWBEHQq.js → BrushedMetal-De_VRtOm.js} +7 -7
  20. package/dist/core/{Bulge-tVWg8fjj.js → Bulge-CgO7_0fe.js} +2 -2
  21. package/dist/core/{CRTScreen-D24U5svV.js → CRTScreen-DNqe2klB.js} +2 -2
  22. package/dist/core/{CarbonFiber-DZZlkKmq.js → CarbonFiber-CGl2FK3J.js} +6 -6
  23. package/dist/core/{Chalkboard-K7HncaXZ.js → Chalkboard-CDUJz_Ae.js} +3 -3
  24. package/dist/core/{ChannelBlur-BrcqNPW-.js → ChannelBlur-Z8ZvN6W3.js} +2 -2
  25. package/dist/core/{CheckerWipe-BAGyhUEe.js → CheckerWipe-DXm9kDaS.js} +3 -3
  26. package/dist/core/{Checkerboard-BoiF0KRB.js → Checkerboard-DZAABNKo.js} +3 -3
  27. package/dist/core/{Chevron-B35wgDaf.js → Chevron-Dn1iHSiS.js} +3 -3
  28. package/dist/core/{ChromaFlow-IVB9mRBn.js → ChromaFlow-lnaJ4o1Y.js} +5 -5
  29. package/dist/core/{ChromaticAberration-BzJYAhEr.js → ChromaticAberration-CGOQe4Pp.js} +4 -4
  30. package/dist/core/{Chrome-otQdzXhv.js → Chrome-BFQsMQii.js} +6 -6
  31. package/dist/core/{Circle-vyUl9mGk.js → Circle-DVPhvXdr.js} +3 -3
  32. package/dist/core/{ColorWheel-C6C6c1MV.js → ColorWheel-DXkVOQl2.js} +3 -3
  33. package/dist/core/{CompressionArtifacts-B3dpSMOs.js → CompressionArtifacts-CEw9gfTu.js} +3 -3
  34. package/dist/core/{ConcentricSpin-DVI4NG8s.js → ConcentricSpin-GtNEq1T1.js} +2 -2
  35. package/dist/core/{ConicGradient-Df_0Cn05.js → ConicGradient-DYPNJAOg.js} +4 -4
  36. package/dist/core/{ContourLines-DhQZc2ym.js → ContourLines-DEmEepvT.js} +3 -3
  37. package/dist/core/{CornerPin-Ba8-5_Z1.js → CornerPin-CJJeGyVf.js} +3 -3
  38. package/dist/core/{Crescent-mDzJ5lao.js → Crescent-C7yy9-xf.js} +2 -2
  39. package/dist/core/{Cross-DA3WL1iH.js → Cross-DyYrdTVw.js} +2 -2
  40. package/dist/core/{Crystal-BXJ9uJkG.js → Crystal-DsO60tef.js} +6 -6
  41. package/dist/core/{CurlNoise-cND7fk3c.js → CurlNoise-Bjc6hhjR.js} +4 -4
  42. package/dist/core/{CursorRipples-4l0iH_f-.js → CursorRipples-C1PNyYcB.js} +4 -4
  43. package/dist/core/{CursorTrail-DxmsKvrL.js → CursorTrail-C6v97bId.js} +4 -4
  44. package/dist/core/{DataMosh-DWBICx1H.js → DataMosh-AX4kIi4R.js} +3 -3
  45. package/dist/core/{DiamondGradient-CFJUELEN.js → DiamondGradient-Bj6mUxOy.js} +4 -4
  46. package/dist/core/{DiamondWipe-DP5q0TuR.js → DiamondWipe-BNSkpUn9.js} +3 -3
  47. package/dist/core/{DiffuseBlur-Bq-3bnk2.js → DiffuseBlur-C7l-5Dw3.js} +3 -3
  48. package/dist/core/{DisplacementMap-D1LaKMKS.js → DisplacementMap-DGpLSlxs.js} +3 -3
  49. package/dist/core/{Dither-BVK_vhKC.js → Dither-C9KDpqgP.js} +3 -3
  50. package/dist/core/{DotGrid-DijYECQs.js → DotGrid-CkAtf-j_.js} +3 -3
  51. package/dist/core/{DropShadow-CLyzZolu.js → DropShadow-BxI_a7dC.js} +3 -3
  52. package/dist/core/{Duotone-BHn_E3Cb.js → Duotone-CrJ0P0SL.js} +3 -3
  53. package/dist/core/{Ellipse-bcu_5HzO.js → Ellipse-C2Tie_19.js} +2 -2
  54. package/dist/core/{Emboss-0HHAVI0a.js → Emboss-iwNwt1-u.js} +5 -5
  55. package/dist/core/{Engraving-EBpxrHN1.js → Engraving-RpxXPqQq.js} +3 -3
  56. package/dist/core/{ErosionNoise-J-tn3Qhb.js → ErosionNoise-D0qefxhq.js} +4 -4
  57. package/dist/core/{Exposure-1C9bPYgo.js → Exposure-B7W7AVbY.js} +3 -3
  58. package/dist/core/{FallingLines-BlRoROV4.js → FallingLines-Cxhmtqf4.js} +3 -3
  59. package/dist/core/{FilmGrain-h4lqzn0Q.js → FilmGrain-CghUJIeK.js} +3 -3
  60. package/dist/core/{FilmStock-DT3jMQ7O.js → FilmStock-DmOaROtC.js} +4 -4
  61. package/dist/core/{Flip-H-WTq1FO.js → Flip-BuOdbWjK.js} +3 -3
  62. package/dist/core/{FloatingParticles-BjISxOOQ.js → FloatingParticles-BVRlM_zv.js} +5 -5
  63. package/dist/core/{FlowField-tGwdL8On.js → FlowField-A2njOtGx.js} +3 -3
  64. package/dist/core/{Flower-JFpGE34W.js → Flower-CwdJOVR1.js} +2 -2
  65. package/dist/core/{FlowingGradient-B0i3C4e5.js → FlowingGradient-BEu60rLu.js} +7 -7
  66. package/dist/core/{FlutedGlass-mxQcpxaW.js → FlutedGlass-BWlTrLF-.js} +4 -4
  67. package/dist/core/{Fog-CLZgV5nG.js → Fog-CpmIyRtJ.js} +4 -4
  68. package/dist/core/{Form3D-DYF3ldCD.js → Form3D-C03PdKOa.js} +4 -4
  69. package/dist/core/{FractalNoise-BBXFgUIX.js → FractalNoise-DsESU8cP.js} +4 -4
  70. package/dist/core/{Frost-DkUvGNIv.js → Frost-D4aH-OM_.js} +7 -7
  71. package/dist/core/{GaborNoise-BTNOgRm_.js → GaborNoise-D3U1iz9E.js} +4 -4
  72. package/dist/core/{Glass-B_EqU-v5.js → Glass-tS9J3fue.js} +7 -7
  73. package/dist/core/{GlassTiles-bA0TIrvm.js → GlassTiles-BxdT6Ee8.js} +2 -2
  74. package/dist/core/{Glitch-Bj8GXrVb.js → Glitch-DQeLaNdU.js} +2 -2
  75. package/dist/core/{Glow-ooqHPQMB.js → Glow-DksG7wdu.js} +3 -3
  76. package/dist/core/{Godrays-DjBxwYp8.js → Godrays-D2Pzd9K9.js} +3 -3
  77. package/dist/core/{Goo-Cinhub2C.js → Goo-C7n1aFSC.js} +7 -7
  78. package/dist/core/{GradientMap-mL8oPgDL.js → GradientMap-B-5yUYjX.js} +4 -4
  79. package/dist/core/{Grayscale-C8rjUf0G.js → Grayscale-g7jQsxgi.js} +2 -2
  80. package/dist/core/{Grid-AhuLjwUC.js → Grid-DAglpJFP.js} +3 -3
  81. package/dist/core/{GridDistortion-lFFZbafM.js → GridDistortion-CNlIESbs.js} +5 -5
  82. package/dist/core/{Group-C35YSJ7Z.js → Group-CeOfFv2K.js} +1 -1
  83. package/dist/core/{HTMLInCanvas-ClqHJAGU.js → HTMLInCanvas-BgwCnbYn.js} +1 -1
  84. package/dist/core/{Halftone-DDAqOqfT.js → Halftone-DCiP4EDq.js} +3 -3
  85. package/dist/core/{Heart-DDSGYyVz.js → Heart-CQhtzwFu.js} +2 -2
  86. package/dist/core/{Heatmap-BFovwSkZ.js → Heatmap-Wy_0SxOF.js} +7 -7
  87. package/dist/core/{HexGrid-B9tqR1Af.js → HexGrid-BY_BPH8J.js} +3 -3
  88. package/dist/core/{Hologram-DEASuul6.js → Hologram-C3sww1q_.js} +6 -6
  89. package/dist/core/{Holographic-BwsjJQ7Y.js → Holographic-B9PvU6cz.js} +6 -6
  90. package/dist/core/{HueShift-6-v3zikX.js → HueShift-BnwOshrg.js} +3 -3
  91. package/dist/core/{ImageTexture-BYXbHUv2.js → ImageTexture-Cd6vH2Z0.js} +2 -2
  92. package/dist/core/{InkFlow-CZHkXWkH.js → InkFlow-B7F9i3Kd.js} +5 -5
  93. package/dist/core/{Invert-Cz4tJjEO.js → Invert-6Q5kX8vd.js} +2 -2
  94. package/dist/core/{IrisWipe-DDrBhIbD.js → IrisWipe-Cl5yYdEi.js} +3 -3
  95. package/dist/core/{Irradiance-BoQdvR3u.js → Irradiance-CQ12Hyf9.js} +9 -9
  96. package/dist/core/{IsometricCubes-nyl3EOPv.js → IsometricCubes-BhK9MhCy.js} +3 -3
  97. package/dist/core/{Kaleidoscope-B2MjqaGV.js → Kaleidoscope-D4X5N_qk.js} +2 -2
  98. package/dist/core/{KeyFrames-CLUicJvf.js → KeyFrames-Dv1vFfMa.js} +3 -3
  99. package/dist/core/{LensDistortion-CU-9_SE4.js → LensDistortion-BqVp5WBS.js} +3 -3
  100. package/dist/core/{LensFlare-2ryGFXKI.js → LensFlare-z0k68uJ1.js} +3 -3
  101. package/dist/core/{LightEdge-DGbH5L-M.js → LightEdge-DGkuJl9I.js} +5 -5
  102. package/dist/core/{LightLeak-3ITuDZK-.js → LightLeak-BgFq4bLG.js} +4 -4
  103. package/dist/core/{Line-BDM4dydm.js → Line--Ur3CJp1.js} +3 -3
  104. package/dist/core/{LinearBlur-5h4InJGI.js → LinearBlur-BkHF6lVm.js} +3 -3
  105. package/dist/core/{LinearGradient-dSFqjTHb.js → LinearGradient-DIdq_fiw.js} +4 -4
  106. package/dist/core/{LinearWipe-DmGnubMp.js → LinearWipe-DuCB9oV_.js} +3 -3
  107. package/dist/core/{LiquidMetal-B3oC7dhE.js → LiquidMetal-BPvuHdsf.js} +7 -7
  108. package/dist/core/{Liquify-DrYyNp7F.js → Liquify-CvPn1ze-.js} +4 -4
  109. package/dist/core/{MagneticFilings-CfwWa5rG.js → MagneticFilings-DPNRCKVe.js} +5 -5
  110. package/dist/core/{Marble-0x9sSzqp.js → Marble-DyGenjAa.js} +7 -7
  111. package/dist/core/{MeshGradient-BSMwLPdn.js → MeshGradient-CEVDVK8_.js} +9 -9
  112. package/dist/core/{Mirror-B-m-3EqI.js → Mirror-Ck8qk1Km.js} +2 -2
  113. package/dist/core/{MultiPointGradient-CuZH8Och.js → MultiPointGradient-DwO6snxn.js} +3 -3
  114. package/dist/core/{Nebula-DvTkD6oN.js → Nebula-Bn7VT1xx.js} +8 -8
  115. package/dist/core/{Neon-Ceenufle.js → Neon-CXuFhmfD.js} +5 -5
  116. package/dist/core/{NoiseDissolve-CYsK6nQF.js → NoiseDissolve-DgvzEFOD.js} +3 -3
  117. package/dist/core/{ObjectTracker-F6JJAYl8.js → ObjectTracker-IopW8Jvf.js} +3 -3
  118. package/dist/core/{Obsidian-B9YePNMS.js → Obsidian-Dph7T7YI.js} +8 -8
  119. package/dist/core/{PagePeel-DHTppmS-.js → PagePeel-BeAr_n0U.js} +2 -2
  120. package/dist/core/{Paper-_BWVjHRg.js → Paper-BDEsyIPI.js} +2 -2
  121. package/dist/core/{Parallelogram-ecidpiHm.js → Parallelogram-Duj-0MLr.js} +2 -2
  122. package/dist/core/{ParticleField-C5d_RwGB.js → ParticleField-BaG_4DLj.js} +4 -4
  123. package/dist/core/{ParticleFlow-DRiGbNSd.js → ParticleFlow-Aocbr_mH.js} +6 -6
  124. package/dist/core/{Particles-C69tGhbg.js → Particles-CGFjT2p5.js} +6 -6
  125. package/dist/core/{PerlinNoise-6UAvUwYC.js → PerlinNoise-BHQ318g4.js} +4 -4
  126. package/dist/core/{Perspective-8vfiuMBF.js → Perspective-xBfd9BSE.js} +3 -3
  127. package/dist/core/{PixelSort-MUSofhmo.js → PixelSort-Bx9sUnGm.js} +4 -4
  128. package/dist/core/{PixelThrow-C2tO5Muz.js → PixelThrow-0nJiGsmZ.js} +4 -4
  129. package/dist/core/{Pixelate-BqFdl3HK.js → Pixelate-CvCzoA0h.js} +2 -2
  130. package/dist/core/{Plasma-BnqTRurI.js → Plasma-Be1yxNcP.js} +4 -4
  131. package/dist/core/{Plastic-6wwFqodQ.js → Plastic-C-N31O7u.js} +7 -7
  132. package/dist/core/{PolarCoordinates-cblLmfFr.js → PolarCoordinates-BGwTZ6NO.js} +2 -2
  133. package/dist/core/{Polygon-DhpbYIjp.js → Polygon-Byw5C7Qy.js} +3 -3
  134. package/dist/core/{Posterize-JtYCiavu.js → Posterize-BHOstvyj.js} +2 -2
  135. package/dist/core/{Prism-CgL09-0n.js → Prism-pNsLhW8w.js} +6 -6
  136. package/dist/core/{ProgressiveBlur-DdFTxI5G.js → ProgressiveBlur-CR1IbvKQ.js} +3 -3
  137. package/dist/core/{RadialGradient-Bb6O8ZU2.js → RadialGradient-BFOrMAK1.js} +4 -4
  138. package/dist/core/{RadialWipe-C37NUMlQ.js → RadialWipe-BYnlbrNm.js} +3 -3
  139. package/dist/core/{RandomBars-n0GZtwtb.js → RandomBars-B7erRRHx.js} +3 -3
  140. package/dist/core/{ReactionDiffusion-CIjBuzSZ.js → ReactionDiffusion-BnY40jHs.js} +5 -5
  141. package/dist/core/{RectangularCoordinates-RrJynboy.js → RectangularCoordinates-D9-3PQAz.js} +2 -2
  142. package/dist/core/{ReflectivePlane-DJs7L0jE.js → ReflectivePlane-BI-LIR2c.js} +3 -3
  143. package/dist/core/{Repeater-DNDOS02l.js → Repeater-C5LILb_Y.js} +3 -3
  144. package/dist/core/{Ring-CGNzWRTF.js → Ring-CvvtJYAf.js} +2 -2
  145. package/dist/core/{RippleWipe-Xru9_G-5.js → RippleWipe-kAzZWsjR.js} +3 -3
  146. package/dist/core/{Ripples-D6DtbpFm.js → Ripples-BFLep1r1.js} +3 -3
  147. package/dist/core/{RoundedRect-Bx9Qv5sI.js → RoundedRect-DirNijIY.js} +2 -2
  148. package/dist/core/{Saturation-D-22L-Ba.js → Saturation-CfkRhJpe.js} +3 -3
  149. package/dist/core/{Scratches-BT5puRjC.js → Scratches-Dchfw1_5.js} +4 -4
  150. package/dist/core/{Sharpness-DS3wAWPI.js → Sharpness-DZzAnlsl.js} +3 -3
  151. package/dist/core/{Shatter-BavlIUpF.js → Shatter-Dz3sH2ON.js} +2 -2
  152. package/dist/core/{SimplexNoise-DuVEfYS1.js → SimplexNoise-CmV42gYT.js} +4 -4
  153. package/dist/core/{SineWave-BjlS8KL3.js → SineWave-TqnpIKO4.js} +3 -3
  154. package/dist/core/{SliceWipe-Bq1nKIay.js → SliceWipe-Dz8vj6bi.js} +2 -2
  155. package/dist/core/{Smoke-Cgk0FuqF.js → Smoke-B1TnZnG6.js} +4 -4
  156. package/dist/core/{SmokeFill-BrVy_T4u.js → SmokeFill-C4yVAkT9.js} +7 -7
  157. package/dist/core/{SmokeFlow-BhJKXBM2.js → SmokeFlow-dd5uLztm.js} +4 -4
  158. package/dist/core/{Solarize-Bw6eWMy4.js → Solarize-CIQa9pKw.js} +3 -3
  159. package/dist/core/{SolidColor-CApT6KFF.js → SolidColor-DuoQVKGk.js} +3 -3
  160. package/dist/core/{Spherize-BZafM2nt.js → Spherize-FWwWEUyE.js} +3 -3
  161. package/dist/core/{Spiral-BljWgHZ1.js → Spiral-DI1eG0E3.js} +3 -3
  162. package/dist/core/{Star--zFAw9gn.js → Star-DT-hnlIJ.js} +2 -2
  163. package/dist/core/{Stone-DZ175SYU.js → Stone-oW35zD22.js} +3 -3
  164. package/dist/core/{Strands-Bk7Lpdz8.js → Strands-asB3fUr9.js} +4 -4
  165. package/dist/core/{Stretch-BfhZj5Sp.js → Stretch-Cm_B4WGY.js} +2 -2
  166. package/dist/core/{Stripes-B4bB8P9T.js → Stripes-BnJiniJY.js} +3 -3
  167. package/dist/core/{StudioBackground-DDfcbZp6.js → StudioBackground-DwSO5KNV.js} +6 -6
  168. package/dist/core/{SunBurst-UBhsjpxT.js → SunBurst-BL-BryZO.js} +3 -3
  169. package/dist/core/{Surface3D-6z6uoD2B.js → Surface3D-DSvh7Zof.js} +5 -5
  170. package/dist/core/{Swirl-D1OsV-AI.js → Swirl-BVPy039a.js} +4 -4
  171. package/dist/core/{Teardrop-udnTi4uM.js → Teardrop-CR1UqYaF.js} +2 -2
  172. package/dist/core/{Text-i-Z-04Lp.js → Text-fP5temat.js} +3 -3
  173. package/dist/core/{ThinFilm-DVSVAKLU.js → ThinFilm--MFVM9D5.js} +5 -5
  174. package/dist/core/{TiltShift-CmBd6IuT.js → TiltShift-BvYpYELk.js} +3 -3
  175. package/dist/core/{TimeTrail-DpULnhS7.js → TimeTrail-DqdYuHn7.js} +5 -5
  176. package/dist/core/{Tint-COD0pAFC.js → Tint-BXJMHYvg.js} +3 -3
  177. package/dist/core/{Trapezoid-BuwD5Hsa.js → Trapezoid--AgyKOWQ.js} +2 -2
  178. package/dist/core/{TriangularGrid-CY9623Jt.js → TriangularGrid-CmDApxz9.js} +3 -3
  179. package/dist/core/{Tritone-IJ7zzb6E.js → Tritone-DCd_IRp7.js} +3 -3
  180. package/dist/core/{Truchet-KSh5e6zB.js → Truchet-g1_jcoZ4.js} +3 -3
  181. package/dist/core/{Twirl-OTBF-EFA.js → Twirl-JY-PXDS2.js} +2 -2
  182. package/dist/core/{VHS-DIaTkhf_.js → VHS-ZWR6D4Da.js} +2 -2
  183. package/dist/core/{VenetianBlinds-whh21nCE.js → VenetianBlinds-B7laTyPO.js} +3 -3
  184. package/dist/core/{Vesica-B6G0T7zJ.js → Vesica-BTNW2p5u.js} +2 -2
  185. package/dist/core/{Vibrance-CZlaCRRi.js → Vibrance-DmhtRT2D.js} +3 -3
  186. package/dist/core/{VideoTexture-Dws9jyoh.js → VideoTexture-DK3EaAHY.js} +2 -2
  187. package/dist/core/{Vignette-CkY7ZLwU.js → Vignette-hyFfUS20.js} +5 -5
  188. package/dist/core/{Voronoi-BeLaSW8f.js → Voronoi-DhexPwNM.js} +5 -5
  189. package/dist/core/Voxels-CIfWtuUp.js +8547 -0
  190. package/dist/core/{Water-5WdvreCU.js → Water-CnzSPBJI.js} +7 -7
  191. package/dist/core/{Watercolor-3pu15_tU.js → Watercolor-C1HipGGO.js} +4 -4
  192. package/dist/core/{WaveDistortion-BCpSjnD_.js → WaveDistortion-VXyHFcJ3.js} +2 -2
  193. package/dist/core/{Waveform-DsDMEp9s.js → Waveform-CSP_4nZF.js} +9 -9
  194. package/dist/core/{WaveletNoise-Du386LZ4.js → WaveletNoise-CQqAufyv.js} +4 -4
  195. package/dist/core/{Weave-HFybZ8zD.js → Weave-DwX8T4_Q.js} +3 -3
  196. package/dist/core/{WebcamTexture-BXyrzb1X.js → WebcamTexture-B4SLwIP1.js} +2 -2
  197. package/dist/core/{Wool-BbrWlSA1.js → Wool-qg-z_TFC.js} +3 -3
  198. package/dist/core/{WorleyNoise-D4WEqlUn.js → WorleyNoise-CjVw20Fl.js} +3 -3
  199. package/dist/core/{ZoomBlur-vR6SbHT_.js → ZoomBlur-Lm_pVpMf.js} +3 -3
  200. package/dist/core/{agents-mCXmuOM8.js → agents-B0ZiK3le.js} +4 -4
  201. package/dist/core/{agents-o-Vn5L0g.js → agents-DXoEcto0.js} +1 -1
  202. package/dist/core/{blur-EIlP7crr.js → blur-7yjVyMvI.js} +1 -1
  203. package/dist/core/{blurs-clhkrRkE.js → blurs-d4B9aUyx.js} +5 -5
  204. package/dist/core/{color-BPEKNc5G.js → color-Do6tU0ry.js} +2 -2
  205. package/dist/core/{compose-BARHZTzx.js → compose-Dkf3v-xS.js} +4 -4
  206. package/dist/core/{feedback-CclkvWMf.js → feedback-Dro_hxd4.js} +1 -1
  207. package/dist/core/{fields-CjLd6eM_.js → fields-DgADOKsP.js} +6 -6
  208. package/dist/core/{figures-By-qe2Oe.js → figures-B3lUGP8u.js} +3 -3
  209. package/dist/core/{fluids-5_eJeyn7.js → fluids-umEWgdvj.js} +2 -2
  210. package/dist/core/{frames-ETCJnyc8.js → frames-BLqt7oaW.js} +2 -2
  211. package/dist/core/{glass-D21uxDa3.js → glass-ABppDbYG.js} +1 -1
  212. package/dist/core/gpu/kit/index.d.ts +1 -0
  213. package/dist/core/gpu/kit/index.d.ts.map +1 -1
  214. package/dist/core/gpu/kit/sdf3d.d.ts +39 -2
  215. package/dist/core/gpu/kit/sdf3d.d.ts.map +1 -1
  216. package/dist/core/gpu/kit/voxels.d.ts +229 -0
  217. package/dist/core/gpu/kit/voxels.d.ts.map +1 -0
  218. package/dist/core/{gradientPaints-BgsQLnMg.js → gradientPaints-5HpJVNfb.js} +3 -3
  219. package/dist/core/{gradients-BQStdO7I.js → gradients-CIxKrfME.js} +4 -4
  220. package/dist/core/index.js +243 -242
  221. package/dist/core/{lens-cEB9ytw-.js → lens-DJQNJKCW.js} +1 -1
  222. package/dist/core/{light-Co_kazz0.js → light-D3BIVkxy.js} +6 -6
  223. package/dist/core/{lightfields-7J9mq-m8.js → lightfields-DvrUaH_6.js} +2 -2
  224. package/dist/core/{lower-BHIbBZvG.js → lower-Bd2jez_2.js} +3 -3
  225. package/dist/core/{mask-DEVvDnXy.js → mask-CeSwL79Q.js} +2 -2
  226. package/dist/core/{materials-DIX1dR_L.js → materials-9wjBrzQO.js} +6 -5
  227. package/dist/core/{math-CeI5l-C7.js → math-D864seEs.js} +4 -2
  228. package/dist/core/{media-SJiqn7ve.js → media-DXUY3ltG.js} +1 -1
  229. package/dist/core/{motionBlur-BZopqi6I.js → motionBlur-g_WSi2iq.js} +2 -2
  230. package/dist/core/{noise-l6iAMDOU.js → noise-d7rmP9yc.js} +6 -6
  231. package/dist/core/{noiseColor-CMHuDcQY.js → noiseColor-DuWjYRmO.js} +2 -2
  232. package/dist/core/{noisePaints-B5n4XOiV.js → noisePaints-CfHcXL02.js} +3 -3
  233. package/dist/core/{overlay-C91yjA3U.js → overlay-D5w0585O.js} +2 -2
  234. package/dist/core/{patterns-Cc6E2ZZl.js → patterns-Bg8lSdqH.js} +6 -6
  235. package/dist/core/{pointerFields-CSMPkugZ.js → pointerFields-CRecZwuZ.js} +2 -2
  236. package/dist/core/{porters-CMOlMI6m.js → porters-OTkIMOyl.js} +2 -2
  237. package/dist/core/registry.js +243 -242
  238. package/dist/core/{reveal-Bqouy173.js → reveal-CfaAg-rg.js} +1 -1
  239. package/dist/core/{sdf3d-D8apqgo2.js → sdf3d-sya0j8F2.js} +1906 -1200
  240. package/dist/core/shaderRegistry-DG3mjxb3.js +443 -0
  241. package/dist/core/shaderRegistry.d.ts.map +1 -1
  242. package/dist/core/shaders/AngularBlur/index.js +8 -8
  243. package/dist/core/shaders/Arc/index.js +5 -5
  244. package/dist/core/shaders/Ascii/index.js +7 -7
  245. package/dist/core/shaders/Aurora/index.js +19 -19
  246. package/dist/core/shaders/BarShift/index.js +6 -6
  247. package/dist/core/shaders/BarnDoors/index.js +5 -5
  248. package/dist/core/shaders/Beam/index.js +9 -9
  249. package/dist/core/shaders/Bend/index.js +6 -6
  250. package/dist/core/shaders/Blob/index.js +16 -16
  251. package/dist/core/shaders/BlockDissolve/index.js +5 -5
  252. package/dist/core/shaders/BlockNoise/index.js +12 -12
  253. package/dist/core/shaders/BlueNoise/index.js +12 -12
  254. package/dist/core/shaders/Blur/index.js +8 -8
  255. package/dist/core/shaders/Boids/index.js +7 -7
  256. package/dist/core/shaders/BokehBlur/index.js +8 -8
  257. package/dist/core/shaders/BrickPattern/index.js +11 -11
  258. package/dist/core/shaders/BrightnessContrast/index.js +6 -6
  259. package/dist/core/shaders/BrushedMetal/index.js +9 -9
  260. package/dist/core/shaders/Bulge/index.js +6 -6
  261. package/dist/core/shaders/CRTScreen/index.js +8 -8
  262. package/dist/core/shaders/CarbonFiber/index.js +9 -9
  263. package/dist/core/shaders/Chalkboard/index.js +7 -7
  264. package/dist/core/shaders/ChannelBlur/index.js +8 -8
  265. package/dist/core/shaders/CheckerWipe/index.js +5 -5
  266. package/dist/core/shaders/Checkerboard/index.js +11 -11
  267. package/dist/core/shaders/Chevron/index.js +11 -11
  268. package/dist/core/shaders/ChromaFlow/index.js +6 -6
  269. package/dist/core/shaders/ChromaticAberration/index.js +9 -9
  270. package/dist/core/shaders/Chrome/index.js +8 -8
  271. package/dist/core/shaders/Circle/index.js +5 -5
  272. package/dist/core/shaders/ColorWheel/index.js +9 -9
  273. package/dist/core/shaders/CompressionArtifacts/index.js +5 -5
  274. package/dist/core/shaders/ConcentricSpin/index.js +6 -6
  275. package/dist/core/shaders/ConicGradient/index.js +9 -9
  276. package/dist/core/shaders/ContourLines/index.js +5 -5
  277. package/dist/core/shaders/CornerPin/index.js +6 -6
  278. package/dist/core/shaders/Crescent/index.js +4 -4
  279. package/dist/core/shaders/Cross/index.js +4 -4
  280. package/dist/core/shaders/Crystal/index.js +9 -9
  281. package/dist/core/shaders/CurlNoise/index.js +12 -12
  282. package/dist/core/shaders/CursorRipples/index.js +6 -6
  283. package/dist/core/shaders/CursorTrail/index.js +5 -5
  284. package/dist/core/shaders/DataMosh/index.js +5 -5
  285. package/dist/core/shaders/DiamondGradient/index.js +9 -9
  286. package/dist/core/shaders/DiamondWipe/index.js +5 -5
  287. package/dist/core/shaders/DiffuseBlur/index.js +8 -8
  288. package/dist/core/shaders/DisplacementMap/index.js +6 -6
  289. package/dist/core/shaders/Dither/index.js +11 -11
  290. package/dist/core/shaders/DotGrid/index.js +11 -11
  291. package/dist/core/shaders/DropShadow/index.js +8 -8
  292. package/dist/core/shaders/Duotone/index.js +5 -5
  293. package/dist/core/shaders/Ellipse/index.js +4 -4
  294. package/dist/core/shaders/Emboss/index.js +7 -7
  295. package/dist/core/shaders/Engraving/index.js +7 -7
  296. package/dist/core/shaders/ErosionNoise/index.js +12 -12
  297. package/dist/core/shaders/Exposure/index.js +6 -6
  298. package/dist/core/shaders/FallingLines/index.js +11 -11
  299. package/dist/core/shaders/FilmGrain/index.js +6 -6
  300. package/dist/core/shaders/FilmStock/index.js +11 -11
  301. package/dist/core/shaders/Flip/index.js +6 -6
  302. package/dist/core/shaders/FloatingParticles/index.js +7 -7
  303. package/dist/core/shaders/FlowField/index.js +6 -6
  304. package/dist/core/shaders/Flower/index.js +4 -4
  305. package/dist/core/shaders/FlowingGradient/index.js +13 -13
  306. package/dist/core/shaders/FlutedGlass/index.js +9 -9
  307. package/dist/core/shaders/Fog/index.js +5 -5
  308. package/dist/core/shaders/Form3D/index.js +5 -5
  309. package/dist/core/shaders/FractalNoise/index.js +11 -11
  310. package/dist/core/shaders/Frost/index.js +9 -9
  311. package/dist/core/shaders/GaborNoise/index.js +12 -12
  312. package/dist/core/shaders/Glass/index.js +9 -9
  313. package/dist/core/shaders/GlassTiles/index.js +6 -6
  314. package/dist/core/shaders/Glitch/index.js +8 -8
  315. package/dist/core/shaders/Glow/index.js +9 -9
  316. package/dist/core/shaders/Godrays/index.js +10 -10
  317. package/dist/core/shaders/Goo/index.js +9 -9
  318. package/dist/core/shaders/GradientMap/index.js +6 -6
  319. package/dist/core/shaders/Grayscale/index.js +5 -5
  320. package/dist/core/shaders/Grid/index.js +11 -11
  321. package/dist/core/shaders/GridDistortion/index.js +9 -9
  322. package/dist/core/shaders/Group/index.js +4 -4
  323. package/dist/core/shaders/HTMLInCanvas/index.js +4 -4
  324. package/dist/core/shaders/Halftone/index.js +11 -11
  325. package/dist/core/shaders/Heart/index.js +4 -4
  326. package/dist/core/shaders/Heatmap/index.js +9 -9
  327. package/dist/core/shaders/HexGrid/index.js +11 -11
  328. package/dist/core/shaders/Hologram/index.js +8 -8
  329. package/dist/core/shaders/Holographic/index.js +8 -8
  330. package/dist/core/shaders/HueShift/index.js +6 -6
  331. package/dist/core/shaders/ImageTexture/index.js +4 -4
  332. package/dist/core/shaders/InkFlow/index.js +6 -6
  333. package/dist/core/shaders/Invert/index.js +5 -5
  334. package/dist/core/shaders/IrisWipe/index.js +5 -5
  335. package/dist/core/shaders/Irradiance/index.js +11 -11
  336. package/dist/core/shaders/IsometricCubes/index.js +11 -11
  337. package/dist/core/shaders/Kaleidoscope/index.js +6 -6
  338. package/dist/core/shaders/KeyFrames/index.js +5 -5
  339. package/dist/core/shaders/LensDistortion/index.js +4 -4
  340. package/dist/core/shaders/LensFlare/index.js +10 -10
  341. package/dist/core/shaders/LightEdge/index.js +8 -8
  342. package/dist/core/shaders/LightLeak/index.js +10 -10
  343. package/dist/core/shaders/Line/index.js +8 -8
  344. package/dist/core/shaders/LinearBlur/index.js +8 -8
  345. package/dist/core/shaders/LinearGradient/index.js +9 -9
  346. package/dist/core/shaders/LinearWipe/index.js +5 -5
  347. package/dist/core/shaders/LiquidMetal/index.js +9 -9
  348. package/dist/core/shaders/Liquify/index.js +8 -8
  349. package/dist/core/shaders/MagneticFilings/index.js +7 -7
  350. package/dist/core/shaders/Marble/index.js +13 -13
  351. package/dist/core/shaders/MeshGradient/index.js +15 -15
  352. package/dist/core/shaders/Mirror/index.js +6 -6
  353. package/dist/core/shaders/MultiPointGradient/index.js +9 -9
  354. package/dist/core/shaders/Nebula/index.js +11 -11
  355. package/dist/core/shaders/Neon/index.js +7 -7
  356. package/dist/core/shaders/NoiseDissolve/index.js +5 -5
  357. package/dist/core/shaders/ObjectTracker/index.js +5 -5
  358. package/dist/core/shaders/Obsidian/index.js +13 -13
  359. package/dist/core/shaders/PagePeel/index.js +8 -8
  360. package/dist/core/shaders/Paper/index.js +6 -6
  361. package/dist/core/shaders/Parallelogram/index.js +4 -4
  362. package/dist/core/shaders/ParticleField/index.js +7 -7
  363. package/dist/core/shaders/ParticleFlow/index.js +8 -8
  364. package/dist/core/shaders/Particles/index.js +7 -7
  365. package/dist/core/shaders/PerlinNoise/index.js +12 -12
  366. package/dist/core/shaders/Perspective/index.js +6 -6
  367. package/dist/core/shaders/PixelSort/index.js +6 -6
  368. package/dist/core/shaders/PixelThrow/index.js +6 -6
  369. package/dist/core/shaders/Pixelate/index.js +8 -8
  370. package/dist/core/shaders/Plasma/index.js +9 -9
  371. package/dist/core/shaders/Plastic/index.js +9 -9
  372. package/dist/core/shaders/PolarCoordinates/index.js +6 -6
  373. package/dist/core/shaders/Polygon/index.js +5 -5
  374. package/dist/core/shaders/Posterize/index.js +5 -5
  375. package/dist/core/shaders/Prism/index.js +10 -10
  376. package/dist/core/shaders/ProgressiveBlur/index.js +8 -8
  377. package/dist/core/shaders/RadialGradient/index.js +9 -9
  378. package/dist/core/shaders/RadialWipe/index.js +5 -5
  379. package/dist/core/shaders/RandomBars/index.js +5 -5
  380. package/dist/core/shaders/ReactionDiffusion/index.js +6 -6
  381. package/dist/core/shaders/RectangularCoordinates/index.js +6 -6
  382. package/dist/core/shaders/ReflectivePlane/index.js +8 -8
  383. package/dist/core/shaders/Repeater/index.js +4 -4
  384. package/dist/core/shaders/Ring/index.js +4 -4
  385. package/dist/core/shaders/RippleWipe/index.js +5 -5
  386. package/dist/core/shaders/Ripples/index.js +11 -11
  387. package/dist/core/shaders/RoundedRect/index.js +4 -4
  388. package/dist/core/shaders/Saturation/index.js +6 -6
  389. package/dist/core/shaders/Scratches/index.js +12 -12
  390. package/dist/core/shaders/Sharpness/index.js +9 -9
  391. package/dist/core/shaders/Shatter/index.js +4 -4
  392. package/dist/core/shaders/SimplexNoise/index.js +12 -12
  393. package/dist/core/shaders/SineWave/index.js +8 -8
  394. package/dist/core/shaders/SliceWipe/index.js +6 -6
  395. package/dist/core/shaders/Smoke/index.js +5 -5
  396. package/dist/core/shaders/SmokeFill/index.js +8 -8
  397. package/dist/core/shaders/SmokeFlow/index.js +5 -5
  398. package/dist/core/shaders/Solarize/index.js +6 -6
  399. package/dist/core/shaders/SolidColor/index.js +9 -9
  400. package/dist/core/shaders/Spherize/index.js +8 -8
  401. package/dist/core/shaders/Spiral/index.js +9 -9
  402. package/dist/core/shaders/Star/index.js +4 -4
  403. package/dist/core/shaders/Stone/index.js +12 -12
  404. package/dist/core/shaders/Strands/index.js +11 -11
  405. package/dist/core/shaders/Stretch/index.js +6 -6
  406. package/dist/core/shaders/Stripes/index.js +11 -11
  407. package/dist/core/shaders/StudioBackground/index.js +12 -12
  408. package/dist/core/shaders/SunBurst/index.js +10 -10
  409. package/dist/core/shaders/Surface3D/index.js +6 -6
  410. package/dist/core/shaders/Swirl/index.js +9 -9
  411. package/dist/core/shaders/Teardrop/index.js +4 -4
  412. package/dist/core/shaders/Text/index.js +7 -7
  413. package/dist/core/shaders/ThinFilm/index.js +7 -7
  414. package/dist/core/shaders/TiltShift/index.js +8 -8
  415. package/dist/core/shaders/TimeTrail/index.js +6 -6
  416. package/dist/core/shaders/Tint/index.js +5 -5
  417. package/dist/core/shaders/Trapezoid/index.js +4 -4
  418. package/dist/core/shaders/TriangularGrid/index.js +11 -11
  419. package/dist/core/shaders/Tritone/index.js +5 -5
  420. package/dist/core/shaders/Truchet/index.js +11 -11
  421. package/dist/core/shaders/Twirl/index.js +6 -6
  422. package/dist/core/shaders/VHS/index.js +8 -8
  423. package/dist/core/shaders/VenetianBlinds/index.js +5 -5
  424. package/dist/core/shaders/Vesica/index.js +4 -4
  425. package/dist/core/shaders/Vibrance/index.js +6 -6
  426. package/dist/core/shaders/VideoTexture/index.js +4 -4
  427. package/dist/core/shaders/Vignette/index.js +7 -7
  428. package/dist/core/shaders/Voronoi/index.js +11 -11
  429. package/dist/core/shaders/Voxels/index.d.ts +211 -0
  430. package/dist/core/shaders/Voxels/index.d.ts.map +1 -0
  431. package/dist/core/shaders/Voxels/index.js +15 -0
  432. package/dist/core/shaders/Water/index.js +9 -9
  433. package/dist/core/shaders/Watercolor/index.js +8 -8
  434. package/dist/core/shaders/WaveDistortion/index.js +6 -6
  435. package/dist/core/shaders/Waveform/index.js +14 -14
  436. package/dist/core/shaders/WaveletNoise/index.js +12 -12
  437. package/dist/core/shaders/Weave/index.js +11 -11
  438. package/dist/core/shaders/WebcamTexture/index.js +4 -4
  439. package/dist/core/shaders/Wool/index.js +12 -12
  440. package/dist/core/shaders/WorleyNoise/index.js +11 -11
  441. package/dist/core/shaders/ZoomBlur/index.js +8 -8
  442. package/dist/core/{shape-CARFmIpC.js → shape-CAkSlCi8.js} +1 -1
  443. package/dist/core/{shapePaints-BtKy1E6I.js → shapePaints-Bg2UwCZo.js} +3 -3
  444. package/dist/core/std/paint/materials.d.ts +3 -0
  445. package/dist/core/std/paint/materials.d.ts.map +1 -1
  446. package/dist/core/std/paint/voxels.d.ts +65 -0
  447. package/dist/core/std/paint/voxels.d.ts.map +1 -0
  448. package/dist/core/{stylize-ailwfD1f.js → stylize-DiuoSq16.js} +2 -2
  449. package/dist/core/{tone-CShJctzV.js → tone-BKhfiOBn.js} +1 -1
  450. package/dist/core/utilities/shapeEffectBounds.d.ts +13 -0
  451. package/dist/core/utilities/shapeEffectBounds.d.ts.map +1 -1
  452. package/dist/core/utilities/transformations/index.js +1 -1
  453. package/dist/core/{warpMaps-EGxKq6h8.js → warpMaps-Y8xSo-QJ.js} +2 -2
  454. package/dist/core/{warps-CjDjbWT0.js → warps-P5O3NWLe.js} +3 -3
  455. package/dist/js/bundle.js +180 -180
  456. package/dist/js/createShader.js +1 -1
  457. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  458. package/dist/js/utils/generatePresetCode.js +37 -0
  459. package/dist/react/Preview.js +1 -0
  460. package/dist/react/Shader.js +1 -1
  461. package/dist/react/Voxels.js +226 -0
  462. package/dist/react/bundle.js +175 -175
  463. package/dist/react/components/Voxels.d.ts +47 -0
  464. package/dist/react/components/Voxels.d.ts.map +1 -0
  465. package/dist/react/engine/Preview.d.ts.map +1 -1
  466. package/dist/react/index.d.ts +1 -0
  467. package/dist/react/index.d.ts.map +1 -1
  468. package/dist/react/index.js +2 -1
  469. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  470. package/dist/react/utils/generatePresetCode.js +37 -0
  471. package/dist/registry.js +991 -0
  472. package/dist/solid/components/Voxels.d.ts +44 -0
  473. package/dist/solid/components/Voxels.d.ts.map +1 -0
  474. package/dist/solid/components/Voxels.js +232 -0
  475. package/dist/solid/engine/Preview.d.ts.map +1 -1
  476. package/dist/solid/engine/Preview.js +377 -375
  477. package/dist/solid/engine/Shader.js +1 -1
  478. package/dist/solid/index.d.ts +1 -0
  479. package/dist/solid/index.d.ts.map +1 -1
  480. package/dist/solid/index.js +26 -24
  481. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  482. package/dist/solid/utils/generatePresetCode.js +37 -0
  483. package/dist/svelte/components/Voxels.svelte.d.ts +34 -0
  484. package/dist/svelte/index.d.ts +1 -0
  485. package/dist/svelte/index.js +2677 -2470
  486. package/dist/svelte/source/components/Voxels.svelte +358 -0
  487. package/dist/svelte/source/engine/Preview.svelte +2 -0
  488. package/dist/svelte/source/index.js +1 -0
  489. package/dist/svelte/utils/generatePresetCode.js +37 -0
  490. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  491. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  492. package/dist/vue/Voxels.js +3 -0
  493. package/dist/vue/Voxels.vue_vue_type_script_setup_true_lang.js +256 -0
  494. package/dist/vue/components/Voxels.vue.d.ts +69 -0
  495. package/dist/vue/components/Voxels.vue.d.ts.map +1 -0
  496. package/dist/vue/index.d.ts +1 -0
  497. package/dist/vue/index.d.ts.map +1 -1
  498. package/dist/vue/index.js +2 -1
  499. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  500. package/dist/vue/utils/generatePresetCode.js +37 -0
  501. package/package.json +9 -1
  502. package/dist/core/shaderRegistry-CmCS5EwT.js +0 -441
  503. /package/dist/core/{filter-VJlLs3Zs.js → filter-BrhpSs3Z.js} +0 -0
  504. /package/dist/core/{grids-B04hYuFv.js → grids-Cv99xcJg.js} +0 -0
  505. /package/dist/core/{noiseStylize-BfLjdB5R.js → noiseStylize-CUrW_HiC.js} +0 -0
  506. /package/dist/core/{signal-DuaxoxK4.js → signal-emJuvOI3.js} +0 -0
  507. /package/dist/core/{slots-BuIG6s6W.js → slots-BqIef2iV.js} +0 -0
  508. /package/dist/core/{transformations-COlfAEsk.js → transformations-CzFmhZww.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { $n as abs, C as createSvgSdfSamplerWithGradients, Dr as vec2u, E as driveAnalyticSubProps, Fr as textureStorage2d, G as createGuardedCompute, Gn as textureLoad, Gr as i32, Ir as arrayOf, Kr as u32, Lr as struct, Mr as size, Or as vec3f, Pr as texture2d, Qn as select, Qr as __export, S as createSvgSdfSampler, Sr as sqrt, Tr as vec2f, Un as typegpu_default, Wr as f32, b as createAnalyticSdfSampler, br as sin, dr as length, fr as max, g as SVG_SDF_SIZE, hr as normalize, ir as cos, jr as align, kr as vec4f, lr as floor, mr as mix, or as dot, ot as call, pr as min, qn as textureStore, rr as clamp, tr as atan2, x as createSdfDataTexture, xr as smoothstep, yr as sign } from "./lower-BHIbBZvG.js";
1
+ import { Ar as vec2u, Br as struct, C as createSvgSdfSampler, Cr as sin, D as driveAnalyticSubProps, Fr as size, Gn as typegpu_default, Jr as i32, Lr as texture2d, Mr as vec4f, Or as vec2f, Pr as align, Rr as textureStorage2d, S as createSdfDataTexture, Sr as sign, Tr as sqrt, Yn as textureStore, Yr as u32, _ as analyticSubPropValues, _r as mix, ar as clamp, cr as dot, ct as call, er as select, fr as floor, g as SVG_SDF_SIZE, gr as min, hr as max, jr as vec3f, mr as length, or as cos, q as createGuardedCompute, qn as textureLoad, qr as f32, rr as atan2, ti as __export, tr as abs, vr as normalize, w as createSvgSdfSamplerWithGradients, wr as smoothstep, x as createAnalyticSdfSampler, y as buildAnalyticSdfFn, zr as arrayOf } from "./lower-Bd2jez_2.js";
2
2
  import { t as isMobileGpuViewport } from "./device-m0ud8-Fn.js";
3
3
  var SVG_SDF_SIZE$1 = 512;
4
4
  var cache = {};
@@ -613,6 +613,7 @@ var sdf3d_exports = /* @__PURE__ */ __export({
613
613
  buildVolumetricFieldKernel: () => buildVolumetricFieldKernel,
614
614
  buildVolumetricFieldSampler: () => buildVolumetricFieldSampler,
615
615
  capsuleSurfaceUV: () => capsuleSurfaceUV,
616
+ createAnalytic2dExtrudeSetup: () => createAnalytic2dExtrudeSetup,
616
617
  createAnalytic3dSdfSetup: () => createAnalytic3dSdfSetup,
617
618
  createSvg3dSdfSetup: () => createSvg3dSdfSetup,
618
619
  createVolumetricFieldCompute: () => createVolumetricFieldCompute,
@@ -9830,7 +9831,7 @@ function createVolumetricFieldCompute(root, layout, kernel, onCleanup, extra = {
9830
9831
  params: paramsUniform.buffer,
9831
9832
  ...extra.sdfSourceTexture ? { sdfSource: extra.sdfSourceTexture } : {}
9832
9833
  });
9833
- const pipeline = createGuardedCompute(root, /* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
9834
+ let pipeline = createGuardedCompute(root, /* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
9834
9835
  "use gpu";
9835
9836
  kernel(cx, cy);
9836
9837
  }), {
@@ -9852,6 +9853,7 @@ function createVolumetricFieldCompute(root, layout, kernel, onCleanup, extra = {
9852
9853
  },
9853
9854
  externals: { "kernel": () => kernel }
9854
9855
  }) && $.f)({}), { bindGroup });
9856
+ for (const bg of extra.extraBindGroups ?? []) pipeline = pipeline.with(bg);
9855
9857
  let activeRes = maxRes;
9856
9858
  return {
9857
9859
  computeStep: pipeline,
@@ -15501,18 +15503,47 @@ function buildFieldSampleGraphArgs() {
15501
15503
  "d.vec4f": () => vec4f
15502
15504
  }
15503
15505
  }) && $.f)({})).$name("fieldSampleFastArg"),
15504
- texelSpanFn: typegpu_default.fn([
15506
+ fieldSampleTexelArg: typegpu_default.fn([
15507
+ vec2f,
15508
+ texture2d(f32),
15509
+ f32,
15510
+ f32,
15511
+ f32,
15505
15512
  f32,
15506
15513
  f32,
15507
15514
  f32
15508
- ], f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((spanX, spanY, activeResF) => {
15515
+ ], vec4f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv, field, originX, originY, spanX, spanY, activeResF, rBound) => {
15509
15516
  "use gpu";
15510
- return __tsover_div(max(spanX, spanY), activeResF);
15517
+ const uxc = clamp(uv.x, originX, __tsover_add(originX, spanX));
15518
+ const uyc = clamp(uv.y, originY, __tsover_add(originY, spanY));
15519
+ const outsideDist = length(vec2f(__tsover_sub(uv.x, uxc), __tsover_sub(uv.y, uyc)));
15520
+ const maxT = __tsover_sub(activeResF, 1);
15521
+ const px = clamp(floor(__tsover_mul(__tsover_div(__tsover_sub(uxc, originX), spanX), activeResF)), f32(0), maxT);
15522
+ const py = clamp(floor(__tsover_mul(__tsover_div(__tsover_sub(uyc, originY), spanY), activeResF)), f32(0), maxT);
15523
+ const t = textureLoad(field, vec2u(u32(px), u32(py)), 0);
15524
+ const rNear = __tsover_add(t.r, outsideDist);
15525
+ return vec4f(mix(rNear, max(__tsover_sub(length(vec2f(__tsover_sub(uv.x, .5), __tsover_sub(uv.y, .5))), rBound), rNear), smoothstep(f32(0), .25, outsideDist)), t.g, t.b, t.a);
15511
15526
  }), {
15512
15527
  v: 2,
15513
15528
  name: void 0,
15514
15529
  ast: {
15515
15530
  "params": [
15531
+ {
15532
+ "type": "i",
15533
+ "name": "uv"
15534
+ },
15535
+ {
15536
+ "type": "i",
15537
+ "name": "field"
15538
+ },
15539
+ {
15540
+ "type": "i",
15541
+ "name": "originX"
15542
+ },
15543
+ {
15544
+ "type": "i",
15545
+ "name": "originY"
15546
+ },
15516
15547
  {
15517
15548
  "type": "i",
15518
15549
  "name": "spanX"
@@ -15524,571 +15555,906 @@ function buildFieldSampleGraphArgs() {
15524
15555
  {
15525
15556
  "type": "i",
15526
15557
  "name": "activeResF"
15558
+ },
15559
+ {
15560
+ "type": "i",
15561
+ "name": "rBound"
15527
15562
  }
15528
15563
  ],
15529
- "body": [0, [[10, [
15530
- 1,
15564
+ "body": [0, [
15531
15565
  [
15532
- 6,
15533
- "std.max",
15534
- ["spanX", "spanY"]
15566
+ 13,
15567
+ "uxc",
15568
+ [
15569
+ 6,
15570
+ "std.clamp",
15571
+ [
15572
+ [
15573
+ 7,
15574
+ "uv",
15575
+ "x"
15576
+ ],
15577
+ "originX",
15578
+ [
15579
+ 1,
15580
+ "originX",
15581
+ "+",
15582
+ "spanX"
15583
+ ]
15584
+ ]
15585
+ ]
15535
15586
  ],
15536
- "/",
15537
- "activeResF"
15538
- ]]]]
15539
- },
15540
- externals: { "std.max": () => max }
15541
- }) && $.f)({})).$name("fieldTexelSpan")
15542
- };
15543
- }
15544
- const VOLUMETRIC_FIELD_EXTRA_FIELDS = {
15545
- _vfOriginX: {
15546
- schema: f32,
15547
- initial: 0
15548
- },
15549
- _vfOriginY: {
15550
- schema: f32,
15551
- initial: 0
15552
- },
15553
- _vfSpanX: {
15554
- schema: f32,
15555
- initial: 1
15556
- },
15557
- _vfSpanY: {
15558
- schema: f32,
15559
- initial: 1
15560
- },
15561
- _vfActiveRes: {
15562
- schema: f32,
15563
- initial: 1
15564
- },
15565
- _vfRBound: {
15566
- schema: f32,
15567
- initial: .6
15568
- }
15569
- };
15570
- function buildVolumetricFieldSampler(field, p) {
15571
- const { fieldSampleArg, fieldSampleGradArg, fieldSampleFastArg, texelSpanFn } = buildFieldSampleGraphArgs();
15572
- const acc = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(field.accessor(), "acc");
15573
- const argsFor = (uv) => [
15574
- uv,
15575
- acc,
15576
- p.originX,
15577
- p.originY,
15578
- p.spanX,
15579
- p.spanY,
15580
- p.activeResF,
15581
- p.rBound
15582
- ];
15583
- return {
15584
- volumetricFieldSampler: (uv) => call(fieldSampleArg, "vfSample", argsFor(uv)),
15585
- volumetricFieldSamplerGrad: (uv) => call(fieldSampleGradArg, "vfSampleGrad", argsFor(uv)),
15586
- volumetricFieldSamplerFast: (uv) => call(fieldSampleFastArg, "vfSampleFast", argsFor(uv)),
15587
- volumetricFieldTexelSpan: call(texelSpanFn, "vfTexelSpan", [
15588
- p.spanX,
15589
- p.spanY,
15590
- p.activeResF
15591
- ])
15592
- };
15593
- }
15594
- function resolveShapeFieldSampler(params, options = {}) {
15595
- const { patternMode = "none", gradSampler: gradMode = "fast", bakedGradients = "none" } = options;
15596
- const { computeOutputs, uniforms, propValues, getCpuValue } = params;
15597
- const fieldTex = computeOutputs?.volumetricFieldTexture;
15598
- if (fieldTex) {
15599
- const s = buildVolumetricFieldSampler(fieldTex, {
15600
- originX: uniforms._vfOriginX,
15601
- originY: uniforms._vfOriginY,
15602
- spanX: uniforms._vfSpanX,
15603
- spanY: uniforms._vfSpanY,
15604
- activeResF: uniforms._vfActiveRes,
15605
- rBound: uniforms._vfRBound
15606
- });
15607
- const baked = bakedGradients !== "none";
15608
- const sampler$1 = baked ? s.volumetricFieldSamplerGrad : s.volumetricFieldSampler;
15609
- return {
15610
- sampler: sampler$1,
15611
- gradSampler: gradMode === "same" ? sampler$1 : s.volumetricFieldSamplerFast,
15612
- volumetric: true,
15613
- bakedGradients: baked
15614
- };
15615
- }
15616
- const shapeSdfUrl = propValues.shapeSdfUrl || "";
15617
- const shapeType = propValues.shapeType || "";
15618
- if (shapeSdfUrl) {
15619
- const bakedSvg = bakedGradients === "all";
15620
- const sampler$1 = bakedSvg ? createSvgSdfSamplerWithGradients(params, shapeSdfUrl) : createSvgSdfSampler(params, shapeSdfUrl);
15621
- return {
15622
- sampler: sampler$1,
15623
- gradSampler: sampler$1,
15624
- volumetric: isVolumetricShapeType(shapeType),
15625
- bakedGradients: bakedSvg
15626
- };
15627
- }
15628
- const st = resolveShapeType(shapeType, getCpuValue("shape"));
15629
- const sampler = createAnalyticSdfSampler(st, driveAnalyticSubProps(params, () => getCpuValue("shape")), patternMode);
15630
- return {
15631
- sampler,
15632
- gradSampler: sampler,
15633
- volumetric: is3dShapeType(st),
15634
- bakedGradients: false
15635
- };
15636
- }
15637
- var DEG = Math.PI / 180;
15638
- function parseShapeConfig(raw) {
15639
- if (raw && typeof raw === "object") return raw;
15640
- if (typeof raw === "string") try {
15641
- return JSON.parse(raw);
15642
- } catch {
15643
- return {};
15644
- }
15645
- return {};
15646
- }
15647
- function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig) {
15648
- const defaults = SHAPE3D_DEFAULTS[shapeType] ?? SHAPE3D_DEFAULTS.sphere3D;
15649
- const { layout } = makeVolumetricFieldLayout();
15650
- const marchParamsBuffer = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(root.createUniform(MarchParams), "marchParamsBuffer");
15651
- const sdfFn = typegpu_default.fn([vec3f], f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((p) => {
15652
- "use gpu";
15653
- const pp = layout.$.params;
15654
- if (shapeType === "cube3D") return sdRoundBox(p, pp.pA, pp.pB, pp.pC, pp.pD);
15655
- else if (shapeType === "torus3D") return sdTorus(p, pp.pA, pp.pB);
15656
- else if (shapeType === "octahedron3D") return sdOctahedron(p, pp.pA);
15657
- else if (shapeType === "cylinder3D") return sdRoundCylinder(p, pp.pA, pp.pB, pp.pD);
15658
- else if (shapeType === "capsule3D") return sdCapsule(p, pp.pA, pp.pB);
15659
- else if (shapeType === "cone3D") return sdCappedCone(p, pp.pA, pp.pC, pp.pB);
15660
- else if (shapeType === "pyramid3D") return sdPyramid(p, pp.pA, pp.pB);
15661
- else if (shapeType === "prism3D") return sdHexPrism(p, pp.pA, pp.pB);
15662
- else if (shapeType === "ellipsoid3D") return sdEllipsoid(p, pp.pA, pp.pB, pp.pC);
15663
- else if (shapeType === "diamond3D") return sdBicone(p, pp.pA, pp.pB);
15664
- else if (shapeType === "link3D") return sdLink(p, pp.pB, pp.pA, pp.pC);
15665
- else if (shapeType === "gem3D") return sdGem(p, pp.pA, pp.pB, pp.pC);
15666
- else if (shapeType === "helix3D") return sdHelix(p, pp.pA, pp.pB, pp.pC, f32(3));
15667
- else if (shapeType === "metaballs3D") return sdMetaballs(p, pp.mb0, pp.mb1, pp.mb2, pp.mb3, pp.mb4, pp.mb5, pp.mb6, pp.mb7, pp.pA, pp.pD);
15668
- else if (shapeType === "dodecahedron3D") return sdDodecahedron(p, pp.pA);
15669
- else if (shapeType === "hemisphere3D") return sdCutSphere(p, pp.pA, pp.pB);
15670
- else if (shapeType === "ribbon3D") return sdRibbon(p, pp.pA, pp.pB, pp.pC, pp.mb0.x, pp.mb0.y, pp.mb0.z, pp.mb1.x, pp.mb1.y, pp.mb1.z, pp.mb2.x);
15671
- else if (shapeType === "blob3D") return sdWobbleBlob(p, pp.pA, pp.mb0.x, pp.mb0.y, pp.mb0.z, pp.mb1.x, pp.mb2.x);
15672
- else if (shapeType === "gyroscope3D") return sdGyroscope(p, pp.pA, pp.pB, pp.pD, pp.mb3.x, pp.pC, pp.mb0.x, pp.mb0.y, pp.mb1.x, pp.mb1.y, pp.mb2.x, pp.mb2.y);
15673
- else return sdSphere(p, pp.pA);
15674
- }), {
15675
- v: 2,
15676
- name: void 0,
15677
- ast: {
15678
- "params": [{
15679
- "type": "i",
15680
- "name": "p"
15681
- }],
15682
- "body": [0, [[
15683
- 13,
15684
- "pp",
15685
- [
15686
- 7,
15687
15587
  [
15688
- 7,
15689
- "layout",
15690
- "$"
15588
+ 13,
15589
+ "uyc",
15590
+ [
15591
+ 6,
15592
+ "std.clamp",
15593
+ [
15594
+ [
15595
+ 7,
15596
+ "uv",
15597
+ "y"
15598
+ ],
15599
+ "originY",
15600
+ [
15601
+ 1,
15602
+ "originY",
15603
+ "+",
15604
+ "spanY"
15605
+ ]
15606
+ ]
15607
+ ]
15691
15608
  ],
15692
- "params"
15693
- ]
15694
- ], [
15695
- 11,
15696
- [
15697
- 1,
15698
- "shapeType",
15699
- "===",
15700
- [103, "cube3D"]
15701
- ],
15702
- [10, [
15703
- 6,
15704
- "sdRoundBox",
15705
15609
  [
15706
- "p",
15707
- [
15708
- 7,
15709
- "pp",
15710
- "pA"
15711
- ],
15610
+ 13,
15611
+ "outsideDist",
15712
15612
  [
15713
- 7,
15714
- "pp",
15715
- "pB"
15716
- ],
15717
- [
15718
- 7,
15719
- "pp",
15720
- "pC"
15721
- ],
15613
+ 6,
15614
+ "std.length",
15615
+ [[
15616
+ 6,
15617
+ "d.vec2f",
15618
+ [[
15619
+ 1,
15620
+ [
15621
+ 7,
15622
+ "uv",
15623
+ "x"
15624
+ ],
15625
+ "-",
15626
+ "uxc"
15627
+ ], [
15628
+ 1,
15629
+ [
15630
+ 7,
15631
+ "uv",
15632
+ "y"
15633
+ ],
15634
+ "-",
15635
+ "uyc"
15636
+ ]]
15637
+ ]]
15638
+ ]
15639
+ ],
15640
+ [
15641
+ 13,
15642
+ "maxT",
15722
15643
  [
15723
- 7,
15724
- "pp",
15725
- "pD"
15644
+ 1,
15645
+ "activeResF",
15646
+ "-",
15647
+ [5, "1"]
15726
15648
  ]
15727
- ]
15728
- ]],
15729
- [
15730
- 11,
15649
+ ],
15731
15650
  [
15732
- 1,
15733
- "shapeType",
15734
- "===",
15735
- [103, "torus3D"]
15651
+ 13,
15652
+ "px",
15653
+ [
15654
+ 6,
15655
+ "std.clamp",
15656
+ [
15657
+ [
15658
+ 6,
15659
+ "std.floor",
15660
+ [[
15661
+ 1,
15662
+ [
15663
+ 1,
15664
+ [
15665
+ 1,
15666
+ "uxc",
15667
+ "-",
15668
+ "originX"
15669
+ ],
15670
+ "/",
15671
+ "spanX"
15672
+ ],
15673
+ "*",
15674
+ "activeResF"
15675
+ ]]
15676
+ ],
15677
+ [
15678
+ 6,
15679
+ "d.f32",
15680
+ [[5, "0"]]
15681
+ ],
15682
+ "maxT"
15683
+ ]
15684
+ ]
15736
15685
  ],
15737
- [10, [
15738
- 6,
15739
- "sdTorus",
15686
+ [
15687
+ 13,
15688
+ "py",
15740
15689
  [
15741
- "p",
15690
+ 6,
15691
+ "std.clamp",
15742
15692
  [
15743
- 7,
15744
- "pp",
15745
- "pA"
15746
- ],
15693
+ [
15694
+ 6,
15695
+ "std.floor",
15696
+ [[
15697
+ 1,
15698
+ [
15699
+ 1,
15700
+ [
15701
+ 1,
15702
+ "uyc",
15703
+ "-",
15704
+ "originY"
15705
+ ],
15706
+ "/",
15707
+ "spanY"
15708
+ ],
15709
+ "*",
15710
+ "activeResF"
15711
+ ]]
15712
+ ],
15713
+ [
15714
+ 6,
15715
+ "d.f32",
15716
+ [[5, "0"]]
15717
+ ],
15718
+ "maxT"
15719
+ ]
15720
+ ]
15721
+ ],
15722
+ [
15723
+ 13,
15724
+ "t",
15725
+ [
15726
+ 6,
15727
+ "std.textureLoad",
15747
15728
  [
15748
- 7,
15749
- "pp",
15750
- "pB"
15729
+ "field",
15730
+ [
15731
+ 6,
15732
+ "d.vec2u",
15733
+ [[
15734
+ 6,
15735
+ "d.u32",
15736
+ ["px"]
15737
+ ], [
15738
+ 6,
15739
+ "d.u32",
15740
+ ["py"]
15741
+ ]]
15742
+ ],
15743
+ [5, "0"]
15751
15744
  ]
15752
15745
  ]
15753
- ]],
15746
+ ],
15754
15747
  [
15755
- 11,
15748
+ 13,
15749
+ "rNear",
15756
15750
  [
15757
15751
  1,
15758
- "shapeType",
15759
- "===",
15760
- [103, "octahedron3D"]
15761
- ],
15762
- [10, [
15763
- 6,
15764
- "sdOctahedron",
15765
- ["p", [
15752
+ [
15766
15753
  7,
15767
- "pp",
15768
- "pA"
15769
- ]]
15770
- ]],
15754
+ "t",
15755
+ "r"
15756
+ ],
15757
+ "+",
15758
+ "outsideDist"
15759
+ ]
15760
+ ],
15761
+ [
15762
+ 13,
15763
+ "rCircle",
15771
15764
  [
15772
- 11,
15765
+ 1,
15773
15766
  [
15774
- 1,
15775
- "shapeType",
15776
- "===",
15777
- [103, "cylinder3D"]
15778
- ],
15779
- [10, [
15780
15767
  6,
15781
- "sdRoundCylinder",
15782
- [
15783
- "p",
15784
- [
15785
- 7,
15786
- "pp",
15787
- "pA"
15788
- ],
15789
- [
15790
- 7,
15791
- "pp",
15792
- "pB"
15793
- ],
15794
- [
15795
- 7,
15796
- "pp",
15797
- "pD"
15798
- ]
15799
- ]
15800
- ]],
15801
- [
15802
- 11,
15803
- [
15804
- 1,
15805
- "shapeType",
15806
- "===",
15807
- [103, "capsule3D"]
15808
- ],
15809
- [10, [
15768
+ "std.length",
15769
+ [[
15810
15770
  6,
15811
- "sdCapsule",
15812
- [
15813
- "p",
15771
+ "d.vec2f",
15772
+ [[
15773
+ 1,
15814
15774
  [
15815
15775
  7,
15816
- "pp",
15817
- "pA"
15776
+ "uv",
15777
+ "x"
15818
15778
  ],
15779
+ "-",
15780
+ [5, "0.5"]
15781
+ ], [
15782
+ 1,
15819
15783
  [
15820
15784
  7,
15821
- "pp",
15822
- "pB"
15823
- ]
15824
- ]
15825
- ]],
15785
+ "uv",
15786
+ "y"
15787
+ ],
15788
+ "-",
15789
+ [5, "0.5"]
15790
+ ]]
15791
+ ]]
15792
+ ],
15793
+ "-",
15794
+ "rBound"
15795
+ ]
15796
+ ],
15797
+ [
15798
+ 13,
15799
+ "rOut",
15800
+ [
15801
+ 6,
15802
+ "std.mix",
15803
+ [
15804
+ "rNear",
15826
15805
  [
15827
- 11,
15806
+ 6,
15807
+ "std.max",
15808
+ ["rCircle", "rNear"]
15809
+ ],
15810
+ [
15811
+ 6,
15812
+ "std.smoothstep",
15828
15813
  [
15829
- 1,
15830
- "shapeType",
15831
- "===",
15832
- [103, "cone3D"]
15833
- ],
15834
- [10, [
15835
- 6,
15836
- "sdCappedCone",
15837
- [
15838
- "p",
15839
- [
15840
- 7,
15841
- "pp",
15842
- "pA"
15843
- ],
15844
- [
15845
- 7,
15846
- "pp",
15847
- "pC"
15848
- ],
15849
- [
15850
- 7,
15851
- "pp",
15852
- "pB"
15853
- ]
15854
- ]
15855
- ]],
15856
- [
15857
- 11,
15858
15814
  [
15859
- 1,
15860
- "shapeType",
15861
- "===",
15862
- [103, "pyramid3D"]
15863
- ],
15864
- [10, [
15865
15815
  6,
15866
- "sdPyramid",
15867
- [
15868
- "p",
15869
- [
15870
- 7,
15871
- "pp",
15872
- "pA"
15873
- ],
15874
- [
15875
- 7,
15876
- "pp",
15877
- "pB"
15878
- ]
15879
- ]
15880
- ]],
15881
- [
15882
- 11,
15883
- [
15884
- 1,
15885
- "shapeType",
15886
- "===",
15887
- [103, "prism3D"]
15888
- ],
15889
- [10, [
15890
- 6,
15891
- "sdHexPrism",
15892
- [
15893
- "p",
15894
- [
15895
- 7,
15896
- "pp",
15897
- "pA"
15898
- ],
15899
- [
15900
- 7,
15901
- "pp",
15902
- "pB"
15903
- ]
15904
- ]
15905
- ]],
15906
- [
15907
- 11,
15908
- [
15909
- 1,
15910
- "shapeType",
15911
- "===",
15912
- [103, "ellipsoid3D"]
15913
- ],
15914
- [10, [
15915
- 6,
15916
- "sdEllipsoid",
15917
- [
15918
- "p",
15919
- [
15920
- 7,
15921
- "pp",
15922
- "pA"
15923
- ],
15924
- [
15925
- 7,
15926
- "pp",
15927
- "pB"
15928
- ],
15929
- [
15930
- 7,
15931
- "pp",
15932
- "pC"
15933
- ]
15934
- ]
15935
- ]],
15936
- [
15937
- 11,
15938
- [
15939
- 1,
15940
- "shapeType",
15941
- "===",
15942
- [103, "diamond3D"]
15943
- ],
15944
- [10, [
15945
- 6,
15946
- "sdBicone",
15947
- [
15948
- "p",
15949
- [
15950
- 7,
15951
- "pp",
15952
- "pA"
15953
- ],
15954
- [
15955
- 7,
15956
- "pp",
15957
- "pB"
15958
- ]
15959
- ]
15960
- ]],
15961
- [
15962
- 11,
15963
- [
15964
- 1,
15965
- "shapeType",
15966
- "===",
15967
- [103, "link3D"]
15968
- ],
15969
- [10, [
15970
- 6,
15971
- "sdLink",
15972
- [
15973
- "p",
15974
- [
15975
- 7,
15976
- "pp",
15977
- "pB"
15978
- ],
15979
- [
15980
- 7,
15981
- "pp",
15982
- "pA"
15983
- ],
15984
- [
15985
- 7,
15986
- "pp",
15987
- "pC"
15988
- ]
15989
- ]
15990
- ]],
15991
- [
15992
- 11,
15993
- [
15994
- 1,
15995
- "shapeType",
15996
- "===",
15997
- [103, "gem3D"]
15998
- ],
15999
- [10, [
16000
- 6,
16001
- "sdGem",
16002
- [
16003
- "p",
16004
- [
16005
- 7,
16006
- "pp",
16007
- "pA"
16008
- ],
16009
- [
16010
- 7,
16011
- "pp",
16012
- "pB"
16013
- ],
16014
- [
16015
- 7,
16016
- "pp",
16017
- "pC"
16018
- ]
16019
- ]
16020
- ]],
16021
- [
16022
- 11,
16023
- [
16024
- 1,
16025
- "shapeType",
16026
- "===",
16027
- [103, "helix3D"]
16028
- ],
16029
- [10, [
16030
- 6,
16031
- "sdHelix",
16032
- [
16033
- "p",
16034
- [
16035
- 7,
16036
- "pp",
16037
- "pA"
16038
- ],
16039
- [
16040
- 7,
16041
- "pp",
16042
- "pB"
16043
- ],
16044
- [
16045
- 7,
16046
- "pp",
16047
- "pC"
16048
- ],
16049
- [
16050
- 6,
16051
- "d.f32",
16052
- ["HELIX_TURNS"]
16053
- ]
16054
- ]
16055
- ]],
16056
- [
16057
- 11,
16058
- [
16059
- 1,
16060
- "shapeType",
16061
- "===",
16062
- [103, "metaballs3D"]
16063
- ],
16064
- [10, [
16065
- 6,
16066
- "sdMetaballs",
16067
- [
16068
- "p",
16069
- [
16070
- 7,
16071
- "pp",
16072
- "mb0"
16073
- ],
16074
- [
16075
- 7,
16076
- "pp",
16077
- "mb1"
16078
- ],
16079
- [
16080
- 7,
16081
- "pp",
16082
- "mb2"
16083
- ],
16084
- [
16085
- 7,
16086
- "pp",
16087
- "mb3"
16088
- ],
16089
- [
16090
- 7,
16091
- "pp",
15816
+ "d.f32",
15817
+ [[5, "0"]]
15818
+ ],
15819
+ [5, "0.25"],
15820
+ "outsideDist"
15821
+ ]
15822
+ ]
15823
+ ]
15824
+ ]
15825
+ ],
15826
+ [10, [
15827
+ 6,
15828
+ "d.vec4f",
15829
+ [
15830
+ "rOut",
15831
+ [
15832
+ 7,
15833
+ "t",
15834
+ "g"
15835
+ ],
15836
+ [
15837
+ 7,
15838
+ "t",
15839
+ "b"
15840
+ ],
15841
+ [
15842
+ 7,
15843
+ "t",
15844
+ "a"
15845
+ ]
15846
+ ]
15847
+ ]]
15848
+ ]]
15849
+ },
15850
+ externals: {
15851
+ "std.clamp": () => clamp,
15852
+ "std.length": () => length,
15853
+ "d.vec2f": () => vec2f,
15854
+ "std.floor": () => floor,
15855
+ "d.f32": () => f32,
15856
+ "std.textureLoad": () => textureLoad,
15857
+ "d.vec2u": () => vec2u,
15858
+ "d.u32": () => u32,
15859
+ "std.mix": () => mix,
15860
+ "std.max": () => max,
15861
+ "std.smoothstep": () => smoothstep,
15862
+ "d.vec4f": () => vec4f
15863
+ }
15864
+ }) && $.f)({})).$name("fieldSampleTexelArg"),
15865
+ texelSpanFn: typegpu_default.fn([
15866
+ f32,
15867
+ f32,
15868
+ f32
15869
+ ], f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((spanX, spanY, activeResF) => {
15870
+ "use gpu";
15871
+ return __tsover_div(max(spanX, spanY), activeResF);
15872
+ }), {
15873
+ v: 2,
15874
+ name: void 0,
15875
+ ast: {
15876
+ "params": [
15877
+ {
15878
+ "type": "i",
15879
+ "name": "spanX"
15880
+ },
15881
+ {
15882
+ "type": "i",
15883
+ "name": "spanY"
15884
+ },
15885
+ {
15886
+ "type": "i",
15887
+ "name": "activeResF"
15888
+ }
15889
+ ],
15890
+ "body": [0, [[10, [
15891
+ 1,
15892
+ [
15893
+ 6,
15894
+ "std.max",
15895
+ ["spanX", "spanY"]
15896
+ ],
15897
+ "/",
15898
+ "activeResF"
15899
+ ]]]]
15900
+ },
15901
+ externals: { "std.max": () => max }
15902
+ }) && $.f)({})).$name("fieldTexelSpan")
15903
+ };
15904
+ }
15905
+ const VOLUMETRIC_FIELD_EXTRA_FIELDS = {
15906
+ _vfOriginX: {
15907
+ schema: f32,
15908
+ initial: 0
15909
+ },
15910
+ _vfOriginY: {
15911
+ schema: f32,
15912
+ initial: 0
15913
+ },
15914
+ _vfSpanX: {
15915
+ schema: f32,
15916
+ initial: 1
15917
+ },
15918
+ _vfSpanY: {
15919
+ schema: f32,
15920
+ initial: 1
15921
+ },
15922
+ _vfActiveRes: {
15923
+ schema: f32,
15924
+ initial: 1
15925
+ },
15926
+ _vfRBound: {
15927
+ schema: f32,
15928
+ initial: .6
15929
+ }
15930
+ };
15931
+ function buildVolumetricFieldSampler(field, p) {
15932
+ const { fieldSampleArg, fieldSampleGradArg, fieldSampleFastArg, fieldSampleTexelArg, texelSpanFn } = buildFieldSampleGraphArgs();
15933
+ const acc = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(field.accessor(), "acc");
15934
+ const argsFor = (uv) => [
15935
+ uv,
15936
+ acc,
15937
+ p.originX,
15938
+ p.originY,
15939
+ p.spanX,
15940
+ p.spanY,
15941
+ p.activeResF,
15942
+ p.rBound
15943
+ ];
15944
+ return {
15945
+ volumetricFieldSampler: (uv) => call(fieldSampleArg, "vfSample", argsFor(uv)),
15946
+ volumetricFieldSamplerGrad: (uv) => call(fieldSampleGradArg, "vfSampleGrad", argsFor(uv)),
15947
+ volumetricFieldSamplerFast: (uv) => call(fieldSampleFastArg, "vfSampleFast", argsFor(uv)),
15948
+ volumetricFieldSamplerTexel: (uv) => call(fieldSampleTexelArg, "vfSampleTexel", argsFor(uv)),
15949
+ volumetricFieldTexelSpan: call(texelSpanFn, "vfTexelSpan", [
15950
+ p.spanX,
15951
+ p.spanY,
15952
+ p.activeResF
15953
+ ])
15954
+ };
15955
+ }
15956
+ function resolveShapeFieldSampler(params, options = {}) {
15957
+ const { patternMode = "none", gradSampler: gradMode = "fast", bakedGradients = "none" } = options;
15958
+ const { computeOutputs, uniforms, propValues, getCpuValue } = params;
15959
+ const fieldTex = computeOutputs?.volumetricFieldTexture;
15960
+ if (fieldTex) {
15961
+ const s = buildVolumetricFieldSampler(fieldTex, {
15962
+ originX: uniforms._vfOriginX,
15963
+ originY: uniforms._vfOriginY,
15964
+ spanX: uniforms._vfSpanX,
15965
+ spanY: uniforms._vfSpanY,
15966
+ activeResF: uniforms._vfActiveRes,
15967
+ rBound: uniforms._vfRBound
15968
+ });
15969
+ const baked = bakedGradients !== "none";
15970
+ const sampler$1 = baked ? s.volumetricFieldSamplerGrad : s.volumetricFieldSampler;
15971
+ return {
15972
+ sampler: sampler$1,
15973
+ gradSampler: gradMode === "same" ? sampler$1 : s.volumetricFieldSamplerFast,
15974
+ texelSampler: s.volumetricFieldSamplerTexel,
15975
+ volumetric: true,
15976
+ bakedGradients: baked
15977
+ };
15978
+ }
15979
+ const shapeSdfUrl = propValues.shapeSdfUrl || "";
15980
+ const shapeType = propValues.shapeType || "";
15981
+ if (shapeSdfUrl) {
15982
+ const bakedSvg = bakedGradients === "all";
15983
+ const sampler$1 = bakedSvg ? createSvgSdfSamplerWithGradients(params, shapeSdfUrl) : createSvgSdfSampler(params, shapeSdfUrl);
15984
+ return {
15985
+ sampler: sampler$1,
15986
+ gradSampler: sampler$1,
15987
+ texelSampler: sampler$1,
15988
+ volumetric: isVolumetricShapeType(shapeType),
15989
+ bakedGradients: bakedSvg
15990
+ };
15991
+ }
15992
+ const st = resolveShapeType(shapeType, getCpuValue("shape"));
15993
+ const sampler = createAnalyticSdfSampler(st, driveAnalyticSubProps(params, () => getCpuValue("shape")), patternMode);
15994
+ return {
15995
+ sampler,
15996
+ gradSampler: sampler,
15997
+ texelSampler: sampler,
15998
+ volumetric: is3dShapeType(st),
15999
+ bakedGradients: false
16000
+ };
16001
+ }
16002
+ var DEG = Math.PI / 180;
16003
+ function parseShapeConfig(raw) {
16004
+ if (raw && typeof raw === "object") return raw;
16005
+ if (typeof raw === "string") try {
16006
+ return JSON.parse(raw);
16007
+ } catch {
16008
+ return {};
16009
+ }
16010
+ return {};
16011
+ }
16012
+ function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig, opts = {}) {
16013
+ const defaults = SHAPE3D_DEFAULTS[shapeType] ?? SHAPE3D_DEFAULTS.sphere3D;
16014
+ const extraPad = opts.extraPad ?? (() => 0);
16015
+ const { layout } = makeVolumetricFieldLayout();
16016
+ const marchParamsBuffer = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(root.createUniform(MarchParams), "marchParamsBuffer");
16017
+ const sdfFn = typegpu_default.fn([vec3f], f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((p) => {
16018
+ "use gpu";
16019
+ const pp = layout.$.params;
16020
+ if (shapeType === "cube3D") return sdRoundBox(p, pp.pA, pp.pB, pp.pC, pp.pD);
16021
+ else if (shapeType === "torus3D") return sdTorus(p, pp.pA, pp.pB);
16022
+ else if (shapeType === "octahedron3D") return sdOctahedron(p, pp.pA);
16023
+ else if (shapeType === "cylinder3D") return sdRoundCylinder(p, pp.pA, pp.pB, pp.pD);
16024
+ else if (shapeType === "capsule3D") return sdCapsule(p, pp.pA, pp.pB);
16025
+ else if (shapeType === "cone3D") return sdCappedCone(p, pp.pA, pp.pC, pp.pB);
16026
+ else if (shapeType === "pyramid3D") return sdPyramid(p, pp.pA, pp.pB);
16027
+ else if (shapeType === "prism3D") return sdHexPrism(p, pp.pA, pp.pB);
16028
+ else if (shapeType === "ellipsoid3D") return sdEllipsoid(p, pp.pA, pp.pB, pp.pC);
16029
+ else if (shapeType === "diamond3D") return sdBicone(p, pp.pA, pp.pB);
16030
+ else if (shapeType === "link3D") return sdLink(p, pp.pB, pp.pA, pp.pC);
16031
+ else if (shapeType === "gem3D") return sdGem(p, pp.pA, pp.pB, pp.pC);
16032
+ else if (shapeType === "helix3D") return sdHelix(p, pp.pA, pp.pB, pp.pC, f32(3));
16033
+ else if (shapeType === "metaballs3D") return sdMetaballs(p, pp.mb0, pp.mb1, pp.mb2, pp.mb3, pp.mb4, pp.mb5, pp.mb6, pp.mb7, pp.pA, pp.pD);
16034
+ else if (shapeType === "dodecahedron3D") return sdDodecahedron(p, pp.pA);
16035
+ else if (shapeType === "hemisphere3D") return sdCutSphere(p, pp.pA, pp.pB);
16036
+ else if (shapeType === "ribbon3D") return sdRibbon(p, pp.pA, pp.pB, pp.pC, pp.mb0.x, pp.mb0.y, pp.mb0.z, pp.mb1.x, pp.mb1.y, pp.mb1.z, pp.mb2.x);
16037
+ else if (shapeType === "blob3D") return sdWobbleBlob(p, pp.pA, pp.mb0.x, pp.mb0.y, pp.mb0.z, pp.mb1.x, pp.mb2.x);
16038
+ else if (shapeType === "gyroscope3D") return sdGyroscope(p, pp.pA, pp.pB, pp.pD, pp.mb3.x, pp.pC, pp.mb0.x, pp.mb0.y, pp.mb1.x, pp.mb1.y, pp.mb2.x, pp.mb2.y);
16039
+ else return sdSphere(p, pp.pA);
16040
+ }), {
16041
+ v: 2,
16042
+ name: void 0,
16043
+ ast: {
16044
+ "params": [{
16045
+ "type": "i",
16046
+ "name": "p"
16047
+ }],
16048
+ "body": [0, [[
16049
+ 13,
16050
+ "pp",
16051
+ [
16052
+ 7,
16053
+ [
16054
+ 7,
16055
+ "layout",
16056
+ "$"
16057
+ ],
16058
+ "params"
16059
+ ]
16060
+ ], [
16061
+ 11,
16062
+ [
16063
+ 1,
16064
+ "shapeType",
16065
+ "===",
16066
+ [103, "cube3D"]
16067
+ ],
16068
+ [10, [
16069
+ 6,
16070
+ "sdRoundBox",
16071
+ [
16072
+ "p",
16073
+ [
16074
+ 7,
16075
+ "pp",
16076
+ "pA"
16077
+ ],
16078
+ [
16079
+ 7,
16080
+ "pp",
16081
+ "pB"
16082
+ ],
16083
+ [
16084
+ 7,
16085
+ "pp",
16086
+ "pC"
16087
+ ],
16088
+ [
16089
+ 7,
16090
+ "pp",
16091
+ "pD"
16092
+ ]
16093
+ ]
16094
+ ]],
16095
+ [
16096
+ 11,
16097
+ [
16098
+ 1,
16099
+ "shapeType",
16100
+ "===",
16101
+ [103, "torus3D"]
16102
+ ],
16103
+ [10, [
16104
+ 6,
16105
+ "sdTorus",
16106
+ [
16107
+ "p",
16108
+ [
16109
+ 7,
16110
+ "pp",
16111
+ "pA"
16112
+ ],
16113
+ [
16114
+ 7,
16115
+ "pp",
16116
+ "pB"
16117
+ ]
16118
+ ]
16119
+ ]],
16120
+ [
16121
+ 11,
16122
+ [
16123
+ 1,
16124
+ "shapeType",
16125
+ "===",
16126
+ [103, "octahedron3D"]
16127
+ ],
16128
+ [10, [
16129
+ 6,
16130
+ "sdOctahedron",
16131
+ ["p", [
16132
+ 7,
16133
+ "pp",
16134
+ "pA"
16135
+ ]]
16136
+ ]],
16137
+ [
16138
+ 11,
16139
+ [
16140
+ 1,
16141
+ "shapeType",
16142
+ "===",
16143
+ [103, "cylinder3D"]
16144
+ ],
16145
+ [10, [
16146
+ 6,
16147
+ "sdRoundCylinder",
16148
+ [
16149
+ "p",
16150
+ [
16151
+ 7,
16152
+ "pp",
16153
+ "pA"
16154
+ ],
16155
+ [
16156
+ 7,
16157
+ "pp",
16158
+ "pB"
16159
+ ],
16160
+ [
16161
+ 7,
16162
+ "pp",
16163
+ "pD"
16164
+ ]
16165
+ ]
16166
+ ]],
16167
+ [
16168
+ 11,
16169
+ [
16170
+ 1,
16171
+ "shapeType",
16172
+ "===",
16173
+ [103, "capsule3D"]
16174
+ ],
16175
+ [10, [
16176
+ 6,
16177
+ "sdCapsule",
16178
+ [
16179
+ "p",
16180
+ [
16181
+ 7,
16182
+ "pp",
16183
+ "pA"
16184
+ ],
16185
+ [
16186
+ 7,
16187
+ "pp",
16188
+ "pB"
16189
+ ]
16190
+ ]
16191
+ ]],
16192
+ [
16193
+ 11,
16194
+ [
16195
+ 1,
16196
+ "shapeType",
16197
+ "===",
16198
+ [103, "cone3D"]
16199
+ ],
16200
+ [10, [
16201
+ 6,
16202
+ "sdCappedCone",
16203
+ [
16204
+ "p",
16205
+ [
16206
+ 7,
16207
+ "pp",
16208
+ "pA"
16209
+ ],
16210
+ [
16211
+ 7,
16212
+ "pp",
16213
+ "pC"
16214
+ ],
16215
+ [
16216
+ 7,
16217
+ "pp",
16218
+ "pB"
16219
+ ]
16220
+ ]
16221
+ ]],
16222
+ [
16223
+ 11,
16224
+ [
16225
+ 1,
16226
+ "shapeType",
16227
+ "===",
16228
+ [103, "pyramid3D"]
16229
+ ],
16230
+ [10, [
16231
+ 6,
16232
+ "sdPyramid",
16233
+ [
16234
+ "p",
16235
+ [
16236
+ 7,
16237
+ "pp",
16238
+ "pA"
16239
+ ],
16240
+ [
16241
+ 7,
16242
+ "pp",
16243
+ "pB"
16244
+ ]
16245
+ ]
16246
+ ]],
16247
+ [
16248
+ 11,
16249
+ [
16250
+ 1,
16251
+ "shapeType",
16252
+ "===",
16253
+ [103, "prism3D"]
16254
+ ],
16255
+ [10, [
16256
+ 6,
16257
+ "sdHexPrism",
16258
+ [
16259
+ "p",
16260
+ [
16261
+ 7,
16262
+ "pp",
16263
+ "pA"
16264
+ ],
16265
+ [
16266
+ 7,
16267
+ "pp",
16268
+ "pB"
16269
+ ]
16270
+ ]
16271
+ ]],
16272
+ [
16273
+ 11,
16274
+ [
16275
+ 1,
16276
+ "shapeType",
16277
+ "===",
16278
+ [103, "ellipsoid3D"]
16279
+ ],
16280
+ [10, [
16281
+ 6,
16282
+ "sdEllipsoid",
16283
+ [
16284
+ "p",
16285
+ [
16286
+ 7,
16287
+ "pp",
16288
+ "pA"
16289
+ ],
16290
+ [
16291
+ 7,
16292
+ "pp",
16293
+ "pB"
16294
+ ],
16295
+ [
16296
+ 7,
16297
+ "pp",
16298
+ "pC"
16299
+ ]
16300
+ ]
16301
+ ]],
16302
+ [
16303
+ 11,
16304
+ [
16305
+ 1,
16306
+ "shapeType",
16307
+ "===",
16308
+ [103, "diamond3D"]
16309
+ ],
16310
+ [10, [
16311
+ 6,
16312
+ "sdBicone",
16313
+ [
16314
+ "p",
16315
+ [
16316
+ 7,
16317
+ "pp",
16318
+ "pA"
16319
+ ],
16320
+ [
16321
+ 7,
16322
+ "pp",
16323
+ "pB"
16324
+ ]
16325
+ ]
16326
+ ]],
16327
+ [
16328
+ 11,
16329
+ [
16330
+ 1,
16331
+ "shapeType",
16332
+ "===",
16333
+ [103, "link3D"]
16334
+ ],
16335
+ [10, [
16336
+ 6,
16337
+ "sdLink",
16338
+ [
16339
+ "p",
16340
+ [
16341
+ 7,
16342
+ "pp",
16343
+ "pB"
16344
+ ],
16345
+ [
16346
+ 7,
16347
+ "pp",
16348
+ "pA"
16349
+ ],
16350
+ [
16351
+ 7,
16352
+ "pp",
16353
+ "pC"
16354
+ ]
16355
+ ]
16356
+ ]],
16357
+ [
16358
+ 11,
16359
+ [
16360
+ 1,
16361
+ "shapeType",
16362
+ "===",
16363
+ [103, "gem3D"]
16364
+ ],
16365
+ [10, [
16366
+ 6,
16367
+ "sdGem",
16368
+ [
16369
+ "p",
16370
+ [
16371
+ 7,
16372
+ "pp",
16373
+ "pA"
16374
+ ],
16375
+ [
16376
+ 7,
16377
+ "pp",
16378
+ "pB"
16379
+ ],
16380
+ [
16381
+ 7,
16382
+ "pp",
16383
+ "pC"
16384
+ ]
16385
+ ]
16386
+ ]],
16387
+ [
16388
+ 11,
16389
+ [
16390
+ 1,
16391
+ "shapeType",
16392
+ "===",
16393
+ [103, "helix3D"]
16394
+ ],
16395
+ [10, [
16396
+ 6,
16397
+ "sdHelix",
16398
+ [
16399
+ "p",
16400
+ [
16401
+ 7,
16402
+ "pp",
16403
+ "pA"
16404
+ ],
16405
+ [
16406
+ 7,
16407
+ "pp",
16408
+ "pB"
16409
+ ],
16410
+ [
16411
+ 7,
16412
+ "pp",
16413
+ "pC"
16414
+ ],
16415
+ [
16416
+ 6,
16417
+ "d.f32",
16418
+ ["HELIX_TURNS"]
16419
+ ]
16420
+ ]
16421
+ ]],
16422
+ [
16423
+ 11,
16424
+ [
16425
+ 1,
16426
+ "shapeType",
16427
+ "===",
16428
+ [103, "metaballs3D"]
16429
+ ],
16430
+ [10, [
16431
+ 6,
16432
+ "sdMetaballs",
16433
+ [
16434
+ "p",
16435
+ [
16436
+ 7,
16437
+ "pp",
16438
+ "mb0"
16439
+ ],
16440
+ [
16441
+ 7,
16442
+ "pp",
16443
+ "mb1"
16444
+ ],
16445
+ [
16446
+ 7,
16447
+ "pp",
16448
+ "mb2"
16449
+ ],
16450
+ [
16451
+ 7,
16452
+ "pp",
16453
+ "mb3"
16454
+ ],
16455
+ [
16456
+ 7,
16457
+ "pp",
16092
16458
  "mb4"
16093
16459
  ],
16094
16460
  [
@@ -16442,50 +16808,847 @@ function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig
16442
16808
  ]
16443
16809
  ]
16444
16810
  ]
16445
- ]
16446
- ]]]
16447
- },
16448
- externals: {
16449
- "layout": () => layout,
16450
- "shapeType": () => shapeType,
16451
- "sdRoundBox": () => sdRoundBox,
16452
- "sdTorus": () => sdTorus,
16453
- "sdOctahedron": () => sdOctahedron,
16454
- "sdRoundCylinder": () => sdRoundCylinder,
16455
- "sdCapsule": () => sdCapsule,
16456
- "sdCappedCone": () => sdCappedCone,
16457
- "sdPyramid": () => sdPyramid,
16458
- "sdHexPrism": () => sdHexPrism,
16459
- "sdEllipsoid": () => sdEllipsoid,
16460
- "sdBicone": () => sdBicone,
16461
- "sdLink": () => sdLink,
16462
- "sdGem": () => sdGem,
16463
- "sdHelix": () => sdHelix,
16811
+ ]
16812
+ ]]]
16813
+ },
16814
+ externals: {
16815
+ "layout": () => layout,
16816
+ "shapeType": () => shapeType,
16817
+ "sdRoundBox": () => sdRoundBox,
16818
+ "sdTorus": () => sdTorus,
16819
+ "sdOctahedron": () => sdOctahedron,
16820
+ "sdRoundCylinder": () => sdRoundCylinder,
16821
+ "sdCapsule": () => sdCapsule,
16822
+ "sdCappedCone": () => sdCappedCone,
16823
+ "sdPyramid": () => sdPyramid,
16824
+ "sdHexPrism": () => sdHexPrism,
16825
+ "sdEllipsoid": () => sdEllipsoid,
16826
+ "sdBicone": () => sdBicone,
16827
+ "sdLink": () => sdLink,
16828
+ "sdGem": () => sdGem,
16829
+ "sdHelix": () => sdHelix,
16830
+ "d.f32": () => f32,
16831
+ "HELIX_TURNS": () => 3,
16832
+ "sdMetaballs": () => sdMetaballs,
16833
+ "sdDodecahedron": () => sdDodecahedron,
16834
+ "sdCutSphere": () => sdCutSphere,
16835
+ "sdRibbon": () => sdRibbon,
16836
+ "sdWobbleBlob": () => sdWobbleBlob,
16837
+ "sdGyroscope": () => sdGyroscope,
16838
+ "sdSphere": () => sdSphere
16839
+ }
16840
+ }) && $.f)({}));
16841
+ let elapsed = 0;
16842
+ let lastShapeJson = "";
16843
+ let lastCfg = initialConfig;
16844
+ const springs = /* @__PURE__ */ new Map();
16845
+ let pA = .35, pB = .3, pC = .3, pD = 0;
16846
+ let rBound = .6;
16847
+ let cx = 1, sx = 0, cy = 1, sy = 0, cz = 1, sz = 0;
16848
+ let spanX = 1, spanY = 1, originX = 0, originY = 0;
16849
+ let activeRes = resolveVolumetricFieldRes();
16850
+ const mb = Array.from({ length: 8 }, () => [
16851
+ 0,
16852
+ 0,
16853
+ 0
16854
+ ]);
16855
+ const writeMarch = () => {
16856
+ marchParamsBuffer.write({
16857
+ rot: {
16858
+ cx,
16859
+ sx,
16860
+ cy,
16861
+ sy,
16862
+ cz,
16863
+ sz
16864
+ },
16865
+ rBound,
16866
+ spanX,
16867
+ spanY,
16868
+ originX,
16869
+ originY,
16870
+ activeRes,
16871
+ pA,
16872
+ pB,
16873
+ pC,
16874
+ pD,
16875
+ mb0: vec3f(mb[0][0], mb[0][1], mb[0][2]),
16876
+ mb1: vec3f(mb[1][0], mb[1][1], mb[1][2]),
16877
+ mb2: vec3f(mb[2][0], mb[2][1], mb[2][2]),
16878
+ mb3: vec3f(mb[3][0], mb[3][1], mb[3][2]),
16879
+ mb4: vec3f(mb[4][0], mb[4][1], mb[4][2]),
16880
+ mb5: vec3f(mb[5][0], mb[5][1], mb[5][2]),
16881
+ mb6: vec3f(mb[6][0], mb[6][1], mb[6][2]),
16882
+ mb7: vec3f(mb[7][0], mb[7][1], mb[7][2])
16883
+ });
16884
+ };
16885
+ const update = (frameParams) => {
16886
+ const deltaTime = frameParams?.deltaTime ?? 0;
16887
+ elapsed += deltaTime;
16888
+ const raw = getShapeConfig();
16889
+ if (raw && typeof raw === "object") lastCfg = raw;
16890
+ else if (typeof raw === "string") {
16891
+ if (raw !== lastShapeJson) {
16892
+ lastShapeJson = raw;
16893
+ try {
16894
+ lastCfg = JSON.parse(raw);
16895
+ } catch {}
16896
+ }
16897
+ }
16898
+ const frame = {
16899
+ elapsed,
16900
+ deltaTime,
16901
+ pointerX: frameParams?.pointer?.x ?? .5,
16902
+ pointerY: frameParams?.pointer?.y ?? .5,
16903
+ springs
16904
+ };
16905
+ const sub = (k) => resolveShapeSubProp(lastCfg[k], defaults[k] ?? 0, frame, k);
16906
+ pB = .3;
16907
+ pC = .3;
16908
+ pD = 0;
16909
+ for (let i = 0; i < mb.length; i++) mb[i] = [
16910
+ 0,
16911
+ 0,
16912
+ 0
16913
+ ];
16914
+ switch (shapeType) {
16915
+ case "cube3D":
16916
+ pA = sub("sizeX");
16917
+ pB = sub("sizeY");
16918
+ pC = sub("sizeZ");
16919
+ pD = sub("rounding");
16920
+ break;
16921
+ case "torus3D":
16922
+ pA = sub("radius");
16923
+ pB = sub("tube");
16924
+ break;
16925
+ case "cylinder3D":
16926
+ pA = sub("radius");
16927
+ pB = sub("height");
16928
+ pD = sub("rounding");
16929
+ break;
16930
+ case "capsule3D":
16931
+ pA = sub("radius");
16932
+ pB = sub("height");
16933
+ break;
16934
+ case "cone3D":
16935
+ pA = sub("radius");
16936
+ pB = sub("height");
16937
+ pC = sub("topRadius");
16938
+ break;
16939
+ case "pyramid3D":
16940
+ pA = sub("size");
16941
+ pB = sub("height");
16942
+ break;
16943
+ case "prism3D":
16944
+ case "diamond3D":
16945
+ pA = sub("radius");
16946
+ pB = sub("height");
16947
+ break;
16948
+ case "ellipsoid3D":
16949
+ pA = sub("radiusX");
16950
+ pB = sub("radiusY");
16951
+ pC = sub("radiusZ");
16952
+ break;
16953
+ case "link3D":
16954
+ pA = sub("radius");
16955
+ pB = sub("length");
16956
+ pC = sub("tube");
16957
+ break;
16958
+ case "gem3D":
16959
+ pA = sub("radius");
16960
+ pB = sub("height");
16961
+ pC = sub("facets");
16962
+ break;
16963
+ case "helix3D":
16964
+ pA = sub("radius");
16965
+ pB = sub("tube");
16966
+ pC = sub("pitch");
16967
+ break;
16968
+ case "metaballs3D": {
16969
+ pA = sub("ballRadius");
16970
+ pB = sub("spread");
16971
+ pD = sub("blend");
16972
+ const count = Math.min(8, Math.max(1, Math.round(sub("balls"))));
16973
+ const sp = pB, tt = elapsed * sub("speed") * .6;
16974
+ for (let i = 0; i < mb.length; i++) {
16975
+ if (i >= count) {
16976
+ mb[i] = [
16977
+ 0,
16978
+ 99,
16979
+ 0
16980
+ ];
16981
+ continue;
16982
+ }
16983
+ const phase = i * (TWO_PI / count);
16984
+ const ang = phase + tt;
16985
+ const wob = .75 + .25 * Math.sin(tt * 1.3 + i * 1.7);
16986
+ mb[i] = [
16987
+ sp * Math.cos(ang) * wob,
16988
+ sp * .6 * Math.sin(tt * .9 + phase * 1.5),
16989
+ sp * Math.sin(ang) * wob
16990
+ ];
16991
+ }
16992
+ break;
16993
+ }
16994
+ case "hemisphere3D":
16995
+ pA = sub("radius");
16996
+ pB = sub("cut");
16997
+ break;
16998
+ case "ribbon3D": {
16999
+ pA = sub("width");
17000
+ pB = sub("thickness");
17001
+ pC = sub("length");
17002
+ const tt = elapsed * sub("speed");
17003
+ const amp = sub("wave") * (.8 + .2 * Math.sin(tt * .9));
17004
+ const wf = sub("waveFrequency");
17005
+ const twRate = sub("twist") * DEG / Math.max(pC * 2, .01);
17006
+ mb[0] = [
17007
+ amp,
17008
+ wf,
17009
+ tt * 1.1
17010
+ ];
17011
+ mb[1] = [
17012
+ tt * .7 + 2.1,
17013
+ twRate,
17014
+ tt * .45
17015
+ ];
17016
+ const slope = Math.abs(amp) * wf + Math.abs(twRate) * Math.hypot(pA, pB);
17017
+ mb[2] = [
17018
+ 1 / Math.sqrt(1 + slope * slope),
17019
+ 0,
17020
+ 0
17021
+ ];
17022
+ break;
17023
+ }
17024
+ case "blob3D": {
17025
+ pA = sub("radius");
17026
+ const tt = elapsed * sub("speed");
17027
+ const amp = sub("wobble") * (.75 + .25 * Math.sin(tt * .83));
17028
+ const wb = sub("wobbliness");
17029
+ mb[0] = [
17030
+ amp,
17031
+ wb,
17032
+ tt * 1.2
17033
+ ];
17034
+ mb[1] = [
17035
+ tt * .77 + 1.3,
17036
+ 0,
17037
+ 0
17038
+ ];
17039
+ mb[2] = [
17040
+ 1 / (1 + Math.abs(amp) * wb * 1.3),
17041
+ 0,
17042
+ 0
17043
+ ];
17044
+ break;
17045
+ }
17046
+ case "gyroscope3D": {
17047
+ pA = sub("radius");
17048
+ pB = sub("width");
17049
+ pC = sub("core");
17050
+ pD = sub("thickness");
17051
+ const rnd = Math.max(0, Math.min(sub("rounding"), Math.min(pB, pD) * .5));
17052
+ const tt = elapsed * sub("speed");
17053
+ const th1 = tt * .9;
17054
+ const th2 = tt * .63 + 1.1;
17055
+ const th3 = tt * 1.21 + 2.3;
17056
+ mb[0] = [
17057
+ Math.cos(th1),
17058
+ Math.sin(th1),
17059
+ 0
17060
+ ];
17061
+ mb[1] = [
17062
+ Math.cos(th2),
17063
+ Math.sin(th2),
17064
+ 0
17065
+ ];
17066
+ mb[2] = [
17067
+ Math.cos(th3),
17068
+ Math.sin(th3),
17069
+ 0
17070
+ ];
17071
+ mb[3] = [
17072
+ rnd,
17073
+ 0,
17074
+ 0
17075
+ ];
17076
+ break;
17077
+ }
17078
+ case "sphere3D":
17079
+ case "octahedron3D":
17080
+ case "dodecahedron3D":
17081
+ default:
17082
+ pA = sub("radius");
17083
+ break;
17084
+ }
17085
+ rBound = shape3dBoundingRadius({
17086
+ ...lastCfg,
17087
+ type: shapeType
17088
+ }) + .02 + extraPad();
17089
+ const rx = sub("rotX") * DEG, ry = sub("rotY") * DEG, rz = sub("rotZ") * DEG;
17090
+ cx = Math.cos(rx);
17091
+ sx = Math.sin(rx);
17092
+ cy = Math.cos(ry);
17093
+ sy = Math.sin(ry);
17094
+ cz = Math.cos(rz);
17095
+ sz = Math.sin(rz);
17096
+ const rPad = rBound + .05;
17097
+ spanX = rPad * 2;
17098
+ spanY = rPad * 2;
17099
+ originX = .5 - rPad;
17100
+ originY = .5 - rPad;
17101
+ writeMarch();
17102
+ };
17103
+ update();
17104
+ const setActiveRes = (res) => {
17105
+ if (res === activeRes) return;
17106
+ activeRes = res;
17107
+ writeMarch();
17108
+ };
17109
+ const getGeometryKey = () => `${pA},${pB},${pC},${pD},${rBound},` + mb.map((m) => `${m[0]},${m[1]},${m[2]}`).join(",");
17110
+ const getStateKey = () => `${getGeometryKey()},${cx},${sx},${cy},${sy},${cz},${sz}`;
17111
+ return {
17112
+ layout,
17113
+ marchParamsBuffer,
17114
+ sdfFn,
17115
+ update,
17116
+ setActiveRes,
17117
+ getStateKey,
17118
+ getFootprint: () => ({
17119
+ spanX,
17120
+ spanY,
17121
+ originX,
17122
+ originY,
17123
+ rBound
17124
+ }),
17125
+ getRotation: () => ({
17126
+ cx,
17127
+ sx,
17128
+ cy,
17129
+ sy,
17130
+ cz,
17131
+ sz
17132
+ }),
17133
+ getGeometryKey
17134
+ };
17135
+ }
17136
+ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig, opts = {}) {
17137
+ const root = params.gpu.root;
17138
+ const extraPad = opts.extraPad ?? (() => 0);
17139
+ const { texture, getVersion } = createSdfDataTexture(params, shapeSdfUrl);
17140
+ const { layout } = makeVolumetricSvgFieldLayout();
17141
+ const marchParamsBuffer = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(root.createUniform(MarchParams), "marchParamsBuffer");
17142
+ const SIZE_F = f32(512);
17143
+ const MAX_TEXEL = f32(511);
17144
+ const sdfFn = typegpu_default.fn([vec3f], f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((p) => {
17145
+ "use gpu";
17146
+ const pp = layout.$.params;
17147
+ const halfDepth$1 = pp.pA;
17148
+ const bevel$1 = pp.pB;
17149
+ const u = __tsover_sub(__tsover_mul(__tsover_add(p.x, .5), SIZE_F), .5);
17150
+ const v = __tsover_sub(__tsover_mul(__tsover_sub(.5, p.y), SIZE_F), .5);
17151
+ const x0 = floor(u);
17152
+ const y0 = floor(v);
17153
+ const fx = __tsover_sub(u, x0);
17154
+ const fy = __tsover_sub(v, y0);
17155
+ const cx0 = u32(clamp(x0, f32(0), MAX_TEXEL));
17156
+ const cx1 = u32(clamp(__tsover_add(x0, 1), f32(0), MAX_TEXEL));
17157
+ const cy0 = u32(clamp(y0, f32(0), MAX_TEXEL));
17158
+ const cy1 = u32(clamp(__tsover_add(y0, 1), f32(0), MAX_TEXEL));
17159
+ const s00 = textureLoad(layout.$.sdfSource, vec2u(cx0, cy0), 0).r;
17160
+ const s10 = textureLoad(layout.$.sdfSource, vec2u(cx1, cy0), 0).r;
17161
+ const s01 = textureLoad(layout.$.sdfSource, vec2u(cx0, cy1), 0).r;
17162
+ const s11 = textureLoad(layout.$.sdfSource, vec2u(cx1, cy1), 0).r;
17163
+ const field2d = mix(mix(s00, s10, fx), mix(s01, s11, fx), fy);
17164
+ const d2 = __tsover_add(field2d, bevel$1);
17165
+ const wz = __tsover_add(__tsover_sub(abs(p.z), halfDepth$1), bevel$1);
17166
+ const inner = min(max(d2, wz), f32(0));
17167
+ const outer = length(vec2f(max(d2, f32(0)), max(wz, f32(0))));
17168
+ return __tsover_sub(__tsover_add(inner, outer), bevel$1);
17169
+ }), {
17170
+ v: 2,
17171
+ name: void 0,
17172
+ ast: {
17173
+ "params": [{
17174
+ "type": "i",
17175
+ "name": "p"
17176
+ }],
17177
+ "body": [0, [
17178
+ [
17179
+ 13,
17180
+ "pp",
17181
+ [
17182
+ 7,
17183
+ [
17184
+ 7,
17185
+ "layout",
17186
+ "$"
17187
+ ],
17188
+ "params"
17189
+ ]
17190
+ ],
17191
+ [
17192
+ 13,
17193
+ "halfDepth",
17194
+ [
17195
+ 7,
17196
+ "pp",
17197
+ "pA"
17198
+ ]
17199
+ ],
17200
+ [
17201
+ 13,
17202
+ "bevel",
17203
+ [
17204
+ 7,
17205
+ "pp",
17206
+ "pB"
17207
+ ]
17208
+ ],
17209
+ [
17210
+ 13,
17211
+ "u",
17212
+ [
17213
+ 1,
17214
+ [
17215
+ 1,
17216
+ [
17217
+ 1,
17218
+ [
17219
+ 7,
17220
+ "p",
17221
+ "x"
17222
+ ],
17223
+ "+",
17224
+ [5, "0.5"]
17225
+ ],
17226
+ "*",
17227
+ "SIZE_F"
17228
+ ],
17229
+ "-",
17230
+ [5, "0.5"]
17231
+ ]
17232
+ ],
17233
+ [
17234
+ 13,
17235
+ "v",
17236
+ [
17237
+ 1,
17238
+ [
17239
+ 1,
17240
+ [
17241
+ 1,
17242
+ [5, "0.5"],
17243
+ "-",
17244
+ [
17245
+ 7,
17246
+ "p",
17247
+ "y"
17248
+ ]
17249
+ ],
17250
+ "*",
17251
+ "SIZE_F"
17252
+ ],
17253
+ "-",
17254
+ [5, "0.5"]
17255
+ ]
17256
+ ],
17257
+ [
17258
+ 13,
17259
+ "x0",
17260
+ [
17261
+ 6,
17262
+ "std.floor",
17263
+ ["u"]
17264
+ ]
17265
+ ],
17266
+ [
17267
+ 13,
17268
+ "y0",
17269
+ [
17270
+ 6,
17271
+ "std.floor",
17272
+ ["v"]
17273
+ ]
17274
+ ],
17275
+ [
17276
+ 13,
17277
+ "fx",
17278
+ [
17279
+ 1,
17280
+ "u",
17281
+ "-",
17282
+ "x0"
17283
+ ]
17284
+ ],
17285
+ [
17286
+ 13,
17287
+ "fy",
17288
+ [
17289
+ 1,
17290
+ "v",
17291
+ "-",
17292
+ "y0"
17293
+ ]
17294
+ ],
17295
+ [
17296
+ 13,
17297
+ "cx0",
17298
+ [
17299
+ 6,
17300
+ "d.u32",
17301
+ [[
17302
+ 6,
17303
+ "std.clamp",
17304
+ [
17305
+ "x0",
17306
+ [
17307
+ 6,
17308
+ "d.f32",
17309
+ [[5, "0"]]
17310
+ ],
17311
+ "MAX_TEXEL"
17312
+ ]
17313
+ ]]
17314
+ ]
17315
+ ],
17316
+ [
17317
+ 13,
17318
+ "cx1",
17319
+ [
17320
+ 6,
17321
+ "d.u32",
17322
+ [[
17323
+ 6,
17324
+ "std.clamp",
17325
+ [
17326
+ [
17327
+ 1,
17328
+ "x0",
17329
+ "+",
17330
+ [5, "1"]
17331
+ ],
17332
+ [
17333
+ 6,
17334
+ "d.f32",
17335
+ [[5, "0"]]
17336
+ ],
17337
+ "MAX_TEXEL"
17338
+ ]
17339
+ ]]
17340
+ ]
17341
+ ],
17342
+ [
17343
+ 13,
17344
+ "cy0",
17345
+ [
17346
+ 6,
17347
+ "d.u32",
17348
+ [[
17349
+ 6,
17350
+ "std.clamp",
17351
+ [
17352
+ "y0",
17353
+ [
17354
+ 6,
17355
+ "d.f32",
17356
+ [[5, "0"]]
17357
+ ],
17358
+ "MAX_TEXEL"
17359
+ ]
17360
+ ]]
17361
+ ]
17362
+ ],
17363
+ [
17364
+ 13,
17365
+ "cy1",
17366
+ [
17367
+ 6,
17368
+ "d.u32",
17369
+ [[
17370
+ 6,
17371
+ "std.clamp",
17372
+ [
17373
+ [
17374
+ 1,
17375
+ "y0",
17376
+ "+",
17377
+ [5, "1"]
17378
+ ],
17379
+ [
17380
+ 6,
17381
+ "d.f32",
17382
+ [[5, "0"]]
17383
+ ],
17384
+ "MAX_TEXEL"
17385
+ ]
17386
+ ]]
17387
+ ]
17388
+ ],
17389
+ [
17390
+ 13,
17391
+ "s00",
17392
+ [
17393
+ 7,
17394
+ [
17395
+ 6,
17396
+ "std.textureLoad",
17397
+ [
17398
+ [
17399
+ 7,
17400
+ [
17401
+ 7,
17402
+ "layout",
17403
+ "$"
17404
+ ],
17405
+ "sdfSource"
17406
+ ],
17407
+ [
17408
+ 6,
17409
+ "d.vec2u",
17410
+ ["cx0", "cy0"]
17411
+ ],
17412
+ [5, "0"]
17413
+ ]
17414
+ ],
17415
+ "r"
17416
+ ]
17417
+ ],
17418
+ [
17419
+ 13,
17420
+ "s10",
17421
+ [
17422
+ 7,
17423
+ [
17424
+ 6,
17425
+ "std.textureLoad",
17426
+ [
17427
+ [
17428
+ 7,
17429
+ [
17430
+ 7,
17431
+ "layout",
17432
+ "$"
17433
+ ],
17434
+ "sdfSource"
17435
+ ],
17436
+ [
17437
+ 6,
17438
+ "d.vec2u",
17439
+ ["cx1", "cy0"]
17440
+ ],
17441
+ [5, "0"]
17442
+ ]
17443
+ ],
17444
+ "r"
17445
+ ]
17446
+ ],
17447
+ [
17448
+ 13,
17449
+ "s01",
17450
+ [
17451
+ 7,
17452
+ [
17453
+ 6,
17454
+ "std.textureLoad",
17455
+ [
17456
+ [
17457
+ 7,
17458
+ [
17459
+ 7,
17460
+ "layout",
17461
+ "$"
17462
+ ],
17463
+ "sdfSource"
17464
+ ],
17465
+ [
17466
+ 6,
17467
+ "d.vec2u",
17468
+ ["cx0", "cy1"]
17469
+ ],
17470
+ [5, "0"]
17471
+ ]
17472
+ ],
17473
+ "r"
17474
+ ]
17475
+ ],
17476
+ [
17477
+ 13,
17478
+ "s11",
17479
+ [
17480
+ 7,
17481
+ [
17482
+ 6,
17483
+ "std.textureLoad",
17484
+ [
17485
+ [
17486
+ 7,
17487
+ [
17488
+ 7,
17489
+ "layout",
17490
+ "$"
17491
+ ],
17492
+ "sdfSource"
17493
+ ],
17494
+ [
17495
+ 6,
17496
+ "d.vec2u",
17497
+ ["cx1", "cy1"]
17498
+ ],
17499
+ [5, "0"]
17500
+ ]
17501
+ ],
17502
+ "r"
17503
+ ]
17504
+ ],
17505
+ [
17506
+ 13,
17507
+ "field2d",
17508
+ [
17509
+ 6,
17510
+ "std.mix",
17511
+ [
17512
+ [
17513
+ 6,
17514
+ "std.mix",
17515
+ [
17516
+ "s00",
17517
+ "s10",
17518
+ "fx"
17519
+ ]
17520
+ ],
17521
+ [
17522
+ 6,
17523
+ "std.mix",
17524
+ [
17525
+ "s01",
17526
+ "s11",
17527
+ "fx"
17528
+ ]
17529
+ ],
17530
+ "fy"
17531
+ ]
17532
+ ]
17533
+ ],
17534
+ [
17535
+ 13,
17536
+ "d2",
17537
+ [
17538
+ 1,
17539
+ "field2d",
17540
+ "+",
17541
+ "bevel"
17542
+ ]
17543
+ ],
17544
+ [
17545
+ 13,
17546
+ "wz",
17547
+ [
17548
+ 1,
17549
+ [
17550
+ 1,
17551
+ [
17552
+ 6,
17553
+ "std.abs",
17554
+ [[
17555
+ 7,
17556
+ "p",
17557
+ "z"
17558
+ ]]
17559
+ ],
17560
+ "-",
17561
+ "halfDepth"
17562
+ ],
17563
+ "+",
17564
+ "bevel"
17565
+ ]
17566
+ ],
17567
+ [
17568
+ 13,
17569
+ "inner",
17570
+ [
17571
+ 6,
17572
+ "std.min",
17573
+ [[
17574
+ 6,
17575
+ "std.max",
17576
+ ["d2", "wz"]
17577
+ ], [
17578
+ 6,
17579
+ "d.f32",
17580
+ [[5, "0"]]
17581
+ ]]
17582
+ ]
17583
+ ],
17584
+ [
17585
+ 13,
17586
+ "outer",
17587
+ [
17588
+ 6,
17589
+ "std.length",
17590
+ [[
17591
+ 6,
17592
+ "d.vec2f",
17593
+ [[
17594
+ 6,
17595
+ "std.max",
17596
+ ["d2", [
17597
+ 6,
17598
+ "d.f32",
17599
+ [[5, "0"]]
17600
+ ]]
17601
+ ], [
17602
+ 6,
17603
+ "std.max",
17604
+ ["wz", [
17605
+ 6,
17606
+ "d.f32",
17607
+ [[5, "0"]]
17608
+ ]]
17609
+ ]]
17610
+ ]]
17611
+ ]
17612
+ ],
17613
+ [10, [
17614
+ 1,
17615
+ [
17616
+ 1,
17617
+ "inner",
17618
+ "+",
17619
+ "outer"
17620
+ ],
17621
+ "-",
17622
+ "bevel"
17623
+ ]]
17624
+ ]]
17625
+ },
17626
+ externals: {
17627
+ "layout": () => layout,
17628
+ "SIZE_F": () => SIZE_F,
17629
+ "std.floor": () => floor,
17630
+ "d.u32": () => u32,
17631
+ "std.clamp": () => clamp,
16464
17632
  "d.f32": () => f32,
16465
- "HELIX_TURNS": () => 3,
16466
- "sdMetaballs": () => sdMetaballs,
16467
- "sdDodecahedron": () => sdDodecahedron,
16468
- "sdCutSphere": () => sdCutSphere,
16469
- "sdRibbon": () => sdRibbon,
16470
- "sdWobbleBlob": () => sdWobbleBlob,
16471
- "sdGyroscope": () => sdGyroscope,
16472
- "sdSphere": () => sdSphere
17633
+ "MAX_TEXEL": () => MAX_TEXEL,
17634
+ "std.textureLoad": () => textureLoad,
17635
+ "d.vec2u": () => vec2u,
17636
+ "std.mix": () => mix,
17637
+ "std.abs": () => abs,
17638
+ "std.min": () => min,
17639
+ "std.max": () => max,
17640
+ "std.length": () => length,
17641
+ "d.vec2f": () => vec2f
16473
17642
  }
16474
17643
  }) && $.f)({}));
16475
17644
  let elapsed = 0;
16476
17645
  let lastShapeJson = "";
16477
- let lastCfg = initialConfig;
17646
+ let lastCfg = parseShapeConfig(getShapeConfig());
16478
17647
  const springs = /* @__PURE__ */ new Map();
16479
- let pA = .35, pB = .3, pC = .3, pD = 0;
16480
- let rBound = .6;
17648
+ let halfDepth = .06, bevel = .02, rBound = .75;
16481
17649
  let cx = 1, sx = 0, cy = 1, sy = 0, cz = 1, sz = 0;
16482
17650
  let spanX = 1, spanY = 1, originX = 0, originY = 0;
16483
17651
  let activeRes = resolveVolumetricFieldRes();
16484
- const mb = Array.from({ length: 8 }, () => [
16485
- 0,
16486
- 0,
16487
- 0
16488
- ]);
16489
17652
  const writeMarch = () => {
16490
17653
  marchParamsBuffer.write({
16491
17654
  rot: {
@@ -16502,18 +17665,18 @@ function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig
16502
17665
  originX,
16503
17666
  originY,
16504
17667
  activeRes,
16505
- pA,
16506
- pB,
16507
- pC,
16508
- pD,
16509
- mb0: vec3f(mb[0][0], mb[0][1], mb[0][2]),
16510
- mb1: vec3f(mb[1][0], mb[1][1], mb[1][2]),
16511
- mb2: vec3f(mb[2][0], mb[2][1], mb[2][2]),
16512
- mb3: vec3f(mb[3][0], mb[3][1], mb[3][2]),
16513
- mb4: vec3f(mb[4][0], mb[4][1], mb[4][2]),
16514
- mb5: vec3f(mb[5][0], mb[5][1], mb[5][2]),
16515
- mb6: vec3f(mb[6][0], mb[6][1], mb[6][2]),
16516
- mb7: vec3f(mb[7][0], mb[7][1], mb[7][2])
17668
+ pA: halfDepth,
17669
+ pB: bevel,
17670
+ pC: 0,
17671
+ pD: 0,
17672
+ mb0: vec3f(0, 0, 0),
17673
+ mb1: vec3f(0, 0, 0),
17674
+ mb2: vec3f(0, 0, 0),
17675
+ mb3: vec3f(0, 0, 0),
17676
+ mb4: vec3f(0, 0, 0),
17677
+ mb5: vec3f(0, 0, 0),
17678
+ mb6: vec3f(0, 0, 0),
17679
+ mb7: vec3f(0, 0, 0)
16517
17680
  });
16518
17681
  };
16519
17682
  const update = (frameParams) => {
@@ -16536,190 +17699,14 @@ function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig
16536
17699
  pointerY: frameParams?.pointer?.y ?? .5,
16537
17700
  springs
16538
17701
  };
16539
- const sub = (k) => resolveShapeSubProp(lastCfg[k], defaults[k] ?? 0, frame, k);
16540
- pB = .3;
16541
- pC = .3;
16542
- pD = 0;
16543
- for (let i = 0; i < mb.length; i++) mb[i] = [
16544
- 0,
16545
- 0,
16546
- 0
16547
- ];
16548
- switch (shapeType) {
16549
- case "cube3D":
16550
- pA = sub("sizeX");
16551
- pB = sub("sizeY");
16552
- pC = sub("sizeZ");
16553
- pD = sub("rounding");
16554
- break;
16555
- case "torus3D":
16556
- pA = sub("radius");
16557
- pB = sub("tube");
16558
- break;
16559
- case "cylinder3D":
16560
- pA = sub("radius");
16561
- pB = sub("height");
16562
- pD = sub("rounding");
16563
- break;
16564
- case "capsule3D":
16565
- pA = sub("radius");
16566
- pB = sub("height");
16567
- break;
16568
- case "cone3D":
16569
- pA = sub("radius");
16570
- pB = sub("height");
16571
- pC = sub("topRadius");
16572
- break;
16573
- case "pyramid3D":
16574
- pA = sub("size");
16575
- pB = sub("height");
16576
- break;
16577
- case "prism3D":
16578
- case "diamond3D":
16579
- pA = sub("radius");
16580
- pB = sub("height");
16581
- break;
16582
- case "ellipsoid3D":
16583
- pA = sub("radiusX");
16584
- pB = sub("radiusY");
16585
- pC = sub("radiusZ");
16586
- break;
16587
- case "link3D":
16588
- pA = sub("radius");
16589
- pB = sub("length");
16590
- pC = sub("tube");
16591
- break;
16592
- case "gem3D":
16593
- pA = sub("radius");
16594
- pB = sub("height");
16595
- pC = sub("facets");
16596
- break;
16597
- case "helix3D":
16598
- pA = sub("radius");
16599
- pB = sub("tube");
16600
- pC = sub("pitch");
16601
- break;
16602
- case "metaballs3D": {
16603
- pA = sub("ballRadius");
16604
- pB = sub("spread");
16605
- pD = sub("blend");
16606
- const count = Math.min(8, Math.max(1, Math.round(sub("balls"))));
16607
- const sp = pB, tt = elapsed * sub("speed") * .6;
16608
- for (let i = 0; i < mb.length; i++) {
16609
- if (i >= count) {
16610
- mb[i] = [
16611
- 0,
16612
- 99,
16613
- 0
16614
- ];
16615
- continue;
16616
- }
16617
- const phase = i * (TWO_PI / count);
16618
- const ang = phase + tt;
16619
- const wob = .75 + .25 * Math.sin(tt * 1.3 + i * 1.7);
16620
- mb[i] = [
16621
- sp * Math.cos(ang) * wob,
16622
- sp * .6 * Math.sin(tt * .9 + phase * 1.5),
16623
- sp * Math.sin(ang) * wob
16624
- ];
16625
- }
16626
- break;
16627
- }
16628
- case "hemisphere3D":
16629
- pA = sub("radius");
16630
- pB = sub("cut");
16631
- break;
16632
- case "ribbon3D": {
16633
- pA = sub("width");
16634
- pB = sub("thickness");
16635
- pC = sub("length");
16636
- const tt = elapsed * sub("speed");
16637
- const amp = sub("wave") * (.8 + .2 * Math.sin(tt * .9));
16638
- const wf = sub("waveFrequency");
16639
- const twRate = sub("twist") * DEG / Math.max(pC * 2, .01);
16640
- mb[0] = [
16641
- amp,
16642
- wf,
16643
- tt * 1.1
16644
- ];
16645
- mb[1] = [
16646
- tt * .7 + 2.1,
16647
- twRate,
16648
- tt * .45
16649
- ];
16650
- const slope = Math.abs(amp) * wf + Math.abs(twRate) * Math.hypot(pA, pB);
16651
- mb[2] = [
16652
- 1 / Math.sqrt(1 + slope * slope),
16653
- 0,
16654
- 0
16655
- ];
16656
- break;
16657
- }
16658
- case "blob3D": {
16659
- pA = sub("radius");
16660
- const tt = elapsed * sub("speed");
16661
- const amp = sub("wobble") * (.75 + .25 * Math.sin(tt * .83));
16662
- const wb = sub("wobbliness");
16663
- mb[0] = [
16664
- amp,
16665
- wb,
16666
- tt * 1.2
16667
- ];
16668
- mb[1] = [
16669
- tt * .77 + 1.3,
16670
- 0,
16671
- 0
16672
- ];
16673
- mb[2] = [
16674
- 1 / (1 + Math.abs(amp) * wb * 1.3),
16675
- 0,
16676
- 0
16677
- ];
16678
- break;
16679
- }
16680
- case "gyroscope3D": {
16681
- pA = sub("radius");
16682
- pB = sub("width");
16683
- pC = sub("core");
16684
- pD = sub("thickness");
16685
- const rnd = Math.max(0, Math.min(sub("rounding"), Math.min(pB, pD) * .5));
16686
- const tt = elapsed * sub("speed");
16687
- const th1 = tt * .9;
16688
- const th2 = tt * .63 + 1.1;
16689
- const th3 = tt * 1.21 + 2.3;
16690
- mb[0] = [
16691
- Math.cos(th1),
16692
- Math.sin(th1),
16693
- 0
16694
- ];
16695
- mb[1] = [
16696
- Math.cos(th2),
16697
- Math.sin(th2),
16698
- 0
16699
- ];
16700
- mb[2] = [
16701
- Math.cos(th3),
16702
- Math.sin(th3),
16703
- 0
16704
- ];
16705
- mb[3] = [
16706
- rnd,
16707
- 0,
16708
- 0
16709
- ];
16710
- break;
16711
- }
16712
- case "sphere3D":
16713
- case "octahedron3D":
16714
- case "dodecahedron3D":
16715
- default:
16716
- pA = sub("radius");
16717
- break;
16718
- }
16719
- rBound = shape3dBoundingRadius({
16720
- ...lastCfg,
16721
- type: shapeType
16722
- }) + .02;
17702
+ const sub = (k) => resolveShapeSubProp(lastCfg[k], SVG3D_DEFAULTS[k] ?? 0, frame, k);
17703
+ halfDepth = Math.max(.001, sub("depth") * .5);
17704
+ bevel = Math.min(Math.max(0, sub("bevel")), halfDepth);
17705
+ const cb = getSdfContentBounds(shapeSdfUrl);
17706
+ const hwf = cb ? Math.min(.5, cb.hwf + .02) : .5;
17707
+ const hhf = cb ? Math.min(.5, cb.hhf + .02) : .5;
17708
+ const pad = extraPad();
17709
+ rBound = Math.hypot(hwf, hhf, halfDepth) + bevel + .03 + pad;
16723
17710
  const rx = sub("rotX") * DEG, ry = sub("rotY") * DEG, rz = sub("rotZ") * DEG;
16724
17711
  cx = Math.cos(rx);
16725
17712
  sx = Math.sin(rx);
@@ -16727,11 +17714,25 @@ function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig
16727
17714
  sy = Math.sin(ry);
16728
17715
  cz = Math.cos(rz);
16729
17716
  sz = Math.sin(rz);
16730
- const rPad = rBound + .05;
16731
- spanX = rPad * 2;
16732
- spanY = rPad * 2;
16733
- originX = .5 - rPad;
16734
- originY = .5 - rPad;
17717
+ const s = {
17718
+ cx,
17719
+ sx,
17720
+ cy,
17721
+ sy,
17722
+ cz,
17723
+ sz
17724
+ };
17725
+ const eX = rotateVecCpu(1, 0, 0, s);
17726
+ const eY = rotateVecCpu(0, 1, 0, s);
17727
+ const axisPad = bevel + .03 + pad;
17728
+ const rBoundX = Math.abs(eX.x) * hwf + Math.abs(eX.y) * hhf + Math.abs(eX.z) * halfDepth + axisPad;
17729
+ const rBoundY = Math.abs(eY.x) * hwf + Math.abs(eY.y) * hhf + Math.abs(eY.z) * halfDepth + axisPad;
17730
+ const rPadX = rBoundX + .05;
17731
+ const rPadY = rBoundY + .05;
17732
+ spanX = rPadX * 2;
17733
+ spanY = rPadY * 2;
17734
+ originX = .5 - rPadX;
17735
+ originY = .5 - rPadY;
16735
17736
  writeMarch();
16736
17737
  };
16737
17738
  update();
@@ -16740,11 +17741,13 @@ function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig
16740
17741
  activeRes = res;
16741
17742
  writeMarch();
16742
17743
  };
16743
- const getStateKey = () => `${pA},${pB},${pC},${pD},${rBound},${cx},${sx},${cy},${sy},${cz},${sz},` + mb.map((m) => `${m[0]},${m[1]},${m[2]}`).join(",");
17744
+ const getGeometryKey = () => `${halfDepth},${bevel},${rBound},${getVersion()}`;
17745
+ const getStateKey = () => `${getGeometryKey()},${spanX},${spanY},${cx},${sx},${cy},${sy},${cz},${sz}`;
16744
17746
  return {
16745
17747
  layout,
16746
17748
  marchParamsBuffer,
16747
17749
  sdfFn,
17750
+ sdfSourceTexture: texture.texture,
16748
17751
  update,
16749
17752
  setActiveRes,
16750
17753
  getStateKey,
@@ -16754,41 +17757,31 @@ function createAnalytic3dSdfSetup(root, shapeType, initialConfig, getShapeConfig
16754
17757
  originX,
16755
17758
  originY,
16756
17759
  rBound
16757
- })
17760
+ }),
17761
+ getRotation: () => ({
17762
+ cx,
17763
+ sx,
17764
+ cy,
17765
+ sy,
17766
+ cz,
17767
+ sz
17768
+ }),
17769
+ getGeometryKey
16758
17770
  };
16759
17771
  }
16760
- function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
16761
- const root = params.gpu.root;
16762
- const { texture, getVersion } = createSdfDataTexture(params, shapeSdfUrl);
16763
- const { layout } = makeVolumetricSvgFieldLayout();
17772
+ function createAnalytic2dExtrudeSetup(root, shapeType, getShapeConfig, getHalfDepth, opts = {}) {
17773
+ const extraPad = opts.extraPad ?? (() => 0);
17774
+ const { layout } = makeVolumetricFieldLayout();
16764
17775
  const marchParamsBuffer = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(root.createUniform(MarchParams), "marchParamsBuffer");
16765
- const SIZE_F = f32(512);
16766
- const MAX_TEXEL = f32(511);
17776
+ const analytic = buildAnalyticSdfFn(shapeType);
16767
17777
  const sdfFn = typegpu_default.fn([vec3f], f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((p) => {
16768
17778
  "use gpu";
16769
17779
  const pp = layout.$.params;
16770
- const halfDepth$1 = pp.pA;
16771
- const bevel$1 = pp.pB;
16772
- const u = __tsover_sub(__tsover_mul(__tsover_add(p.x, .5), SIZE_F), .5);
16773
- const v = __tsover_sub(__tsover_mul(__tsover_sub(.5, p.y), SIZE_F), .5);
16774
- const x0 = floor(u);
16775
- const y0 = floor(v);
16776
- const fx = __tsover_sub(u, x0);
16777
- const fy = __tsover_sub(v, y0);
16778
- const cx0 = u32(clamp(x0, f32(0), MAX_TEXEL));
16779
- const cx1 = u32(clamp(__tsover_add(x0, 1), f32(0), MAX_TEXEL));
16780
- const cy0 = u32(clamp(y0, f32(0), MAX_TEXEL));
16781
- const cy1 = u32(clamp(__tsover_add(y0, 1), f32(0), MAX_TEXEL));
16782
- const s00 = textureLoad(layout.$.sdfSource, vec2u(cx0, cy0), 0).r;
16783
- const s10 = textureLoad(layout.$.sdfSource, vec2u(cx1, cy0), 0).r;
16784
- const s01 = textureLoad(layout.$.sdfSource, vec2u(cx0, cy1), 0).r;
16785
- const s11 = textureLoad(layout.$.sdfSource, vec2u(cx1, cy1), 0).r;
16786
- const field2d = mix(mix(s00, s10, fx), mix(s01, s11, fx), fy);
16787
- const d2 = __tsover_add(field2d, bevel$1);
16788
- const wz = __tsover_add(__tsover_sub(abs(p.z), halfDepth$1), bevel$1);
17780
+ const d2 = analytic(vec2f(__tsover_add(p.x, .5), __tsover_sub(.5, p.y)), pp.pA, pp.pB, pp.pC, pp.pD, pp.mb0.x, pp.mb0.y, pp.mb0.z, pp.mb1.x).x;
17781
+ const wz = __tsover_sub(abs(p.z), pp.mb1.y);
16789
17782
  const inner = min(max(d2, wz), f32(0));
16790
17783
  const outer = length(vec2f(max(d2, f32(0)), max(wz, f32(0))));
16791
- return __tsover_sub(__tsover_add(inner, outer), bevel$1);
17784
+ return __tsover_add(inner, outer);
16792
17785
  }), {
16793
17786
  v: 2,
16794
17787
  name: void 0,
@@ -16813,355 +17806,100 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
16813
17806
  ],
16814
17807
  [
16815
17808
  13,
16816
- "halfDepth",
16817
- [
16818
- 7,
16819
- "pp",
16820
- "pA"
16821
- ]
16822
- ],
16823
- [
16824
- 13,
16825
- "bevel",
16826
- [
16827
- 7,
16828
- "pp",
16829
- "pB"
16830
- ]
16831
- ],
16832
- [
16833
- 13,
16834
- "u",
17809
+ "uv",
16835
17810
  [
16836
- 1,
16837
- [
17811
+ 6,
17812
+ "d.vec2f",
17813
+ [[
16838
17814
  1,
16839
17815
  [
16840
- 1,
16841
- [
16842
- 7,
16843
- "p",
16844
- "x"
16845
- ],
16846
- "+",
16847
- [5, "0.5"]
17816
+ 7,
17817
+ "p",
17818
+ "x"
16848
17819
  ],
16849
- "*",
16850
- "SIZE_F"
16851
- ],
16852
- "-",
16853
- [5, "0.5"]
16854
- ]
16855
- ],
16856
- [
16857
- 13,
16858
- "v",
16859
- [
16860
- 1,
16861
- [
17820
+ "+",
17821
+ [5, "0.5"]
17822
+ ], [
16862
17823
  1,
17824
+ [5, "0.5"],
17825
+ "-",
16863
17826
  [
16864
- 1,
16865
- [5, "0.5"],
16866
- "-",
16867
- [
16868
- 7,
16869
- "p",
16870
- "y"
16871
- ]
16872
- ],
16873
- "*",
16874
- "SIZE_F"
16875
- ],
16876
- "-",
16877
- [5, "0.5"]
16878
- ]
16879
- ],
16880
- [
16881
- 13,
16882
- "x0",
16883
- [
16884
- 6,
16885
- "std.floor",
16886
- ["u"]
16887
- ]
16888
- ],
16889
- [
16890
- 13,
16891
- "y0",
16892
- [
16893
- 6,
16894
- "std.floor",
16895
- ["v"]
16896
- ]
16897
- ],
16898
- [
16899
- 13,
16900
- "fx",
16901
- [
16902
- 1,
16903
- "u",
16904
- "-",
16905
- "x0"
16906
- ]
16907
- ],
16908
- [
16909
- 13,
16910
- "fy",
16911
- [
16912
- 1,
16913
- "v",
16914
- "-",
16915
- "y0"
16916
- ]
16917
- ],
16918
- [
16919
- 13,
16920
- "cx0",
16921
- [
16922
- 6,
16923
- "d.u32",
16924
- [[
16925
- 6,
16926
- "std.clamp",
16927
- [
16928
- "x0",
16929
- [
16930
- 6,
16931
- "d.f32",
16932
- [[5, "0"]]
16933
- ],
16934
- "MAX_TEXEL"
16935
- ]
16936
- ]]
16937
- ]
16938
- ],
16939
- [
16940
- 13,
16941
- "cx1",
16942
- [
16943
- 6,
16944
- "d.u32",
16945
- [[
16946
- 6,
16947
- "std.clamp",
16948
- [
16949
- [
16950
- 1,
16951
- "x0",
16952
- "+",
16953
- [5, "1"]
16954
- ],
16955
- [
16956
- 6,
16957
- "d.f32",
16958
- [[5, "0"]]
16959
- ],
16960
- "MAX_TEXEL"
16961
- ]
16962
- ]]
16963
- ]
16964
- ],
16965
- [
16966
- 13,
16967
- "cy0",
16968
- [
16969
- 6,
16970
- "d.u32",
16971
- [[
16972
- 6,
16973
- "std.clamp",
16974
- [
16975
- "y0",
16976
- [
16977
- 6,
16978
- "d.f32",
16979
- [[5, "0"]]
16980
- ],
16981
- "MAX_TEXEL"
16982
- ]
16983
- ]]
16984
- ]
16985
- ],
16986
- [
16987
- 13,
16988
- "cy1",
16989
- [
16990
- 6,
16991
- "d.u32",
16992
- [[
16993
- 6,
16994
- "std.clamp",
16995
- [
16996
- [
16997
- 1,
16998
- "y0",
16999
- "+",
17000
- [5, "1"]
17001
- ],
17002
- [
17003
- 6,
17004
- "d.f32",
17005
- [[5, "0"]]
17006
- ],
17007
- "MAX_TEXEL"
17827
+ 7,
17828
+ "p",
17829
+ "y"
17008
17830
  ]
17009
17831
  ]]
17010
17832
  ]
17011
17833
  ],
17012
17834
  [
17013
17835
  13,
17014
- "s00",
17836
+ "d2",
17015
17837
  [
17016
17838
  7,
17017
17839
  [
17018
17840
  6,
17019
- "std.textureLoad",
17841
+ "analytic",
17020
17842
  [
17843
+ "uv",
17021
17844
  [
17022
17845
  7,
17023
- [
17024
- 7,
17025
- "layout",
17026
- "$"
17027
- ],
17028
- "sdfSource"
17846
+ "pp",
17847
+ "pA"
17029
17848
  ],
17030
17849
  [
17031
- 6,
17032
- "d.vec2u",
17033
- ["cx0", "cy0"]
17850
+ 7,
17851
+ "pp",
17852
+ "pB"
17034
17853
  ],
17035
- [5, "0"]
17036
- ]
17037
- ],
17038
- "r"
17039
- ]
17040
- ],
17041
- [
17042
- 13,
17043
- "s10",
17044
- [
17045
- 7,
17046
- [
17047
- 6,
17048
- "std.textureLoad",
17049
- [
17050
17854
  [
17051
17855
  7,
17052
- [
17053
- 7,
17054
- "layout",
17055
- "$"
17056
- ],
17057
- "sdfSource"
17856
+ "pp",
17857
+ "pC"
17058
17858
  ],
17059
17859
  [
17060
- 6,
17061
- "d.vec2u",
17062
- ["cx1", "cy0"]
17860
+ 7,
17861
+ "pp",
17862
+ "pD"
17063
17863
  ],
17064
- [5, "0"]
17065
- ]
17066
- ],
17067
- "r"
17068
- ]
17069
- ],
17070
- [
17071
- 13,
17072
- "s01",
17073
- [
17074
- 7,
17075
- [
17076
- 6,
17077
- "std.textureLoad",
17078
- [
17079
17864
  [
17080
17865
  7,
17081
17866
  [
17082
17867
  7,
17083
- "layout",
17084
- "$"
17868
+ "pp",
17869
+ "mb0"
17085
17870
  ],
17086
- "sdfSource"
17871
+ "x"
17087
17872
  ],
17088
17873
  [
17089
- 6,
17090
- "d.vec2u",
17091
- ["cx0", "cy1"]
17874
+ 7,
17875
+ [
17876
+ 7,
17877
+ "pp",
17878
+ "mb0"
17879
+ ],
17880
+ "y"
17092
17881
  ],
17093
- [5, "0"]
17094
- ]
17095
- ],
17096
- "r"
17097
- ]
17098
- ],
17099
- [
17100
- 13,
17101
- "s11",
17102
- [
17103
- 7,
17104
- [
17105
- 6,
17106
- "std.textureLoad",
17107
- [
17108
17882
  [
17109
17883
  7,
17110
17884
  [
17111
17885
  7,
17112
- "layout",
17113
- "$"
17886
+ "pp",
17887
+ "mb0"
17114
17888
  ],
17115
- "sdfSource"
17889
+ "z"
17116
17890
  ],
17117
17891
  [
17118
- 6,
17119
- "d.vec2u",
17120
- ["cx1", "cy1"]
17121
- ],
17122
- [5, "0"]
17892
+ 7,
17893
+ [
17894
+ 7,
17895
+ "pp",
17896
+ "mb1"
17897
+ ],
17898
+ "x"
17899
+ ]
17123
17900
  ]
17124
17901
  ],
17125
- "r"
17126
- ]
17127
- ],
17128
- [
17129
- 13,
17130
- "field2d",
17131
- [
17132
- 6,
17133
- "std.mix",
17134
- [
17135
- [
17136
- 6,
17137
- "std.mix",
17138
- [
17139
- "s00",
17140
- "s10",
17141
- "fx"
17142
- ]
17143
- ],
17144
- [
17145
- 6,
17146
- "std.mix",
17147
- [
17148
- "s01",
17149
- "s11",
17150
- "fx"
17151
- ]
17152
- ],
17153
- "fy"
17154
- ]
17155
- ]
17156
- ],
17157
- [
17158
- 13,
17159
- "d2",
17160
- [
17161
- 1,
17162
- "field2d",
17163
- "+",
17164
- "bevel"
17902
+ "x"
17165
17903
  ]
17166
17904
  ],
17167
17905
  [
@@ -17170,21 +17908,24 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
17170
17908
  [
17171
17909
  1,
17172
17910
  [
17173
- 1,
17911
+ 6,
17912
+ "std.abs",
17913
+ [[
17914
+ 7,
17915
+ "p",
17916
+ "z"
17917
+ ]]
17918
+ ],
17919
+ "-",
17920
+ [
17921
+ 7,
17174
17922
  [
17175
- 6,
17176
- "std.abs",
17177
- [[
17178
- 7,
17179
- "p",
17180
- "z"
17181
- ]]
17923
+ 7,
17924
+ "pp",
17925
+ "mb1"
17182
17926
  ],
17183
- "-",
17184
- "halfDepth"
17185
- ],
17186
- "+",
17187
- "bevel"
17927
+ "y"
17928
+ ]
17188
17929
  ]
17189
17930
  ],
17190
17931
  [
@@ -17235,52 +17976,38 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
17235
17976
  ],
17236
17977
  [10, [
17237
17978
  1,
17238
- [
17239
- 1,
17240
- "inner",
17241
- "+",
17242
- "outer"
17243
- ],
17244
- "-",
17245
- "bevel"
17979
+ "inner",
17980
+ "+",
17981
+ "outer"
17246
17982
  ]]
17247
17983
  ]]
17248
17984
  },
17249
17985
  externals: {
17250
17986
  "layout": () => layout,
17251
- "SIZE_F": () => SIZE_F,
17252
- "std.floor": () => floor,
17253
- "d.u32": () => u32,
17254
- "std.clamp": () => clamp,
17255
- "d.f32": () => f32,
17256
- "MAX_TEXEL": () => MAX_TEXEL,
17257
- "std.textureLoad": () => textureLoad,
17258
- "d.vec2u": () => vec2u,
17259
- "std.mix": () => mix,
17987
+ "d.vec2f": () => vec2f,
17988
+ "analytic": () => analytic,
17260
17989
  "std.abs": () => abs,
17261
17990
  "std.min": () => min,
17262
17991
  "std.max": () => max,
17263
- "std.length": () => length,
17264
- "d.vec2f": () => vec2f
17992
+ "d.f32": () => f32,
17993
+ "std.length": () => length
17265
17994
  }
17266
17995
  }) && $.f)({}));
17267
- let elapsed = 0;
17268
17996
  let lastShapeJson = "";
17269
17997
  let lastCfg = parseShapeConfig(getShapeConfig());
17270
- const springs = /* @__PURE__ */ new Map();
17271
- let halfDepth = .06, bevel = .02, rBound = .75;
17272
- let cx = 1, sx = 0, cy = 1, sy = 0, cz = 1, sz = 0;
17998
+ let sub = analyticSubPropValues(lastCfg);
17999
+ let halfDepth = .06, rBound = .6;
17273
18000
  let spanX = 1, spanY = 1, originX = 0, originY = 0;
17274
18001
  let activeRes = resolveVolumetricFieldRes();
17275
18002
  const writeMarch = () => {
17276
18003
  marchParamsBuffer.write({
17277
18004
  rot: {
17278
- cx,
17279
- sx,
17280
- cy,
17281
- sy,
17282
- cz,
17283
- sz
18005
+ cx: 1,
18006
+ sx: 0,
18007
+ cy: 1,
18008
+ sy: 0,
18009
+ cz: 1,
18010
+ sz: 0
17284
18011
  },
17285
18012
  rBound,
17286
18013
  spanX,
@@ -17288,12 +18015,12 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
17288
18015
  originX,
17289
18016
  originY,
17290
18017
  activeRes,
17291
- pA: halfDepth,
17292
- pB: bevel,
17293
- pC: 0,
17294
- pD: 0,
17295
- mb0: vec3f(0, 0, 0),
17296
- mb1: vec3f(0, 0, 0),
18018
+ pA: sub.radius,
18019
+ pB: sub.sides,
18020
+ pC: sub.rounding,
18021
+ pD: sub.innerRatio,
18022
+ mb0: vec3f(sub.rotation, sub.height, sub.offset),
18023
+ mb1: vec3f(sub.aperture, halfDepth, 0),
17297
18024
  mb2: vec3f(0, 0, 0),
17298
18025
  mb3: vec3f(0, 0, 0),
17299
18026
  mb4: vec3f(0, 0, 0),
@@ -17302,9 +18029,7 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
17302
18029
  mb7: vec3f(0, 0, 0)
17303
18030
  });
17304
18031
  };
17305
- const update = (frameParams) => {
17306
- const deltaTime = frameParams?.deltaTime ?? 0;
17307
- elapsed += deltaTime;
18032
+ const update = () => {
17308
18033
  const raw = getShapeConfig();
17309
18034
  if (raw && typeof raw === "object") lastCfg = raw;
17310
18035
  else if (typeof raw === "string") {
@@ -17315,46 +18040,19 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
17315
18040
  } catch {}
17316
18041
  }
17317
18042
  }
17318
- const frame = {
17319
- elapsed,
17320
- deltaTime,
17321
- pointerX: frameParams?.pointer?.x ?? .5,
17322
- pointerY: frameParams?.pointer?.y ?? .5,
17323
- springs
17324
- };
17325
- const sub = (k) => resolveShapeSubProp(lastCfg[k], SVG3D_DEFAULTS[k] ?? 0, frame, k);
17326
- halfDepth = Math.max(.001, sub("depth") * .5);
17327
- bevel = Math.min(Math.max(0, sub("bevel")), halfDepth);
17328
- const cb = getSdfContentBounds(shapeSdfUrl);
17329
- const hwf = cb ? Math.min(.5, cb.hwf + .02) : .5;
17330
- const hhf = cb ? Math.min(.5, cb.hhf + .02) : .5;
17331
- rBound = Math.hypot(hwf, hhf, halfDepth) + bevel + .03;
17332
- const rx = sub("rotX") * DEG, ry = sub("rotY") * DEG, rz = sub("rotZ") * DEG;
17333
- cx = Math.cos(rx);
17334
- sx = Math.sin(rx);
17335
- cy = Math.cos(ry);
17336
- sy = Math.sin(ry);
17337
- cz = Math.cos(rz);
17338
- sz = Math.sin(rz);
17339
- const s = {
17340
- cx,
17341
- sx,
17342
- cy,
17343
- sy,
17344
- cz,
17345
- sz
17346
- };
17347
- const eX = rotateVecCpu(1, 0, 0, s);
17348
- const eY = rotateVecCpu(0, 1, 0, s);
17349
- const axisPad = bevel + .03;
17350
- const rBoundX = Math.abs(eX.x) * hwf + Math.abs(eX.y) * hhf + Math.abs(eX.z) * halfDepth + axisPad;
17351
- const rBoundY = Math.abs(eY.x) * hwf + Math.abs(eY.y) * hhf + Math.abs(eY.z) * halfDepth + axisPad;
17352
- const rPadX = rBoundX + .05;
17353
- const rPadY = rBoundY + .05;
17354
- spanX = rPadX * 2;
17355
- spanY = rPadY * 2;
17356
- originX = .5 - rPadX;
17357
- originY = .5 - rPadY;
18043
+ sub = analyticSubPropValues(lastCfg);
18044
+ halfDepth = Math.max(.001, getHalfDepth());
18045
+ const { hwf, hhf } = shapeContentExtent({ shape: {
18046
+ ...lastCfg,
18047
+ radius: sub.radius,
18048
+ height: sub.height
18049
+ } });
18050
+ rBound = Math.hypot(hwf, hhf, halfDepth) + .02 + extraPad();
18051
+ const rPad = rBound + .05;
18052
+ spanX = rPad * 2;
18053
+ spanY = rPad * 2;
18054
+ originX = .5 - rPad;
18055
+ originY = .5 - rPad;
17358
18056
  writeMarch();
17359
18057
  };
17360
18058
  update();
@@ -17363,12 +18061,11 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
17363
18061
  activeRes = res;
17364
18062
  writeMarch();
17365
18063
  };
17366
- const getStateKey = () => `${halfDepth},${bevel},${rBound},${spanX},${spanY},${getVersion()},${cx},${sx},${cy},${sy},${cz},${sz}`;
18064
+ const getStateKey = () => `${sub.radius},${sub.sides},${sub.rounding},${sub.innerRatio},${sub.rotation},${sub.height},${sub.offset},${sub.aperture},${halfDepth},${rBound}`;
17367
18065
  return {
17368
18066
  layout,
17369
18067
  marchParamsBuffer,
17370
18068
  sdfFn,
17371
- sdfSourceTexture: texture.texture,
17372
18069
  update,
17373
18070
  setActiveRes,
17374
18071
  getStateKey,
@@ -17378,7 +18075,16 @@ function createSvg3dSdfSetup(params, shapeSdfUrl, getShapeConfig) {
17378
18075
  originX,
17379
18076
  originY,
17380
18077
  rBound
17381
- })
18078
+ }),
18079
+ getRotation: () => ({
18080
+ cx: 1,
18081
+ sx: 0,
18082
+ cy: 1,
18083
+ sy: 0,
18084
+ cz: 1,
18085
+ sz: 0
18086
+ }),
18087
+ getGeometryKey: getStateKey
17382
18088
  };
17383
18089
  }
17384
18090
  function createVolumetricFieldComputeNode(params, getShapeConfig, patternMode = "none", chordMode = "span") {
@@ -20370,4 +21076,4 @@ function packedParamExtraFields(prefix, initials) {
20370
21076
  });
20371
21077
  return out;
20372
21078
  }
20373
- export { awaitGpuIdle as A, SVG3D_TYPES$1 as C, shape3dBoundingRadius$1 as D, isVolumetricShapeType$1 as E, runFrameSequence as F, createFrameLoop as M, deriveElapsedTime as N, applyEasing$1 as O, frameGate as P, SVG3D_DEFAULTS$1 as S, isSvg3dShapeType$1 as T, twistedRibbonSurfaceUV as _, packedParamExtraFields as a, SHAPE3D_DEFAULTS$1 as b, paramMobiusSdf as c, paramTwistedRibbonSdf as d, rotateVec3 as f, torusSurfaceUV as g, sphereSurfaceUV as h, mobiusSurfaceUV as i, clampToTextureCap as j, applySpring as k, paramSphereSdf as l, sdf3d_exports as m, buildFieldSampleGraphArgs as n, paramBoxSdf as o, rotateVecCpu as p, capsuleSurfaceUV as r, paramCapsuleSdf as s, boxFaceUV as t, paramTorusSdf as u, resolveShapeType as v, is3dShapeType$1 as w, SHAPE3D_TYPES$1 as x, shapeEffectBoundingBoxDeclaration as y };
21079
+ export { SHAPE3D_DEFAULTS$1 as A, awaitGpuIdle as B, sdRoundBox as C, twistedRibbonSurfaceUV as D, torusSurfaceUV as E, isSvg3dShapeType$1 as F, runFrameSequence as G, createFrameLoop as H, isVolumetricShapeType$1 as I, shape3dBoundingRadius$1 as L, SVG3D_DEFAULTS$1 as M, SVG3D_TYPES$1 as N, resolveShapeType as O, is3dShapeType$1 as P, applyEasing$1 as R, rotateVecCpu as S, sphereSurfaceUV as T, deriveElapsedTime as U, clampToTextureCap as V, frameGate as W, paramSphereSdf as _, capsuleSurfaceUV as a, resolveActiveFieldRes as b, createSvg3dSdfSetup as c, isSvg3dShapeType as d, mobiusSurfaceUV as f, paramMobiusSdf as g, paramCapsuleSdf as h, buildVolumetricFieldKernel as i, SHAPE3D_TYPES$1 as j, shapeEffectBoundingBoxDeclaration as k, createVolumetricFieldCompute as l, paramBoxSdf as m, boxFaceUV as n, createAnalytic2dExtrudeSetup as o, packedParamExtraFields as p, buildFieldSampleGraphArgs as r, createAnalytic3dSdfSetup as s, RotStruct as t, is3dShapeType as u, paramTorusSdf as v, sdf3d_exports as w, rotateVec3 as x, paramTwistedRibbonSdf as y, applySpring as z };