manim-web 0.2.0

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 (356) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/animation/Animation.d.ts +69 -0
  4. package/dist/animation/Animation.d.ts.map +1 -0
  5. package/dist/animation/AnimationGroup.d.ts +48 -0
  6. package/dist/animation/AnimationGroup.d.ts.map +1 -0
  7. package/dist/animation/LaggedStart.d.ts +25 -0
  8. package/dist/animation/LaggedStart.d.ts.map +1 -0
  9. package/dist/animation/MaintainPositionRelativeTo.d.ts +23 -0
  10. package/dist/animation/MaintainPositionRelativeTo.d.ts.map +1 -0
  11. package/dist/animation/Succession.d.ts +19 -0
  12. package/dist/animation/Succession.d.ts.map +1 -0
  13. package/dist/animation/Timeline.d.ts +89 -0
  14. package/dist/animation/Timeline.d.ts.map +1 -0
  15. package/dist/animation/UpdateFromAlphaFunc.d.ts +32 -0
  16. package/dist/animation/UpdateFromAlphaFunc.d.ts.map +1 -0
  17. package/dist/animation/UpdateFromFunc.d.ts +30 -0
  18. package/dist/animation/UpdateFromFunc.d.ts.map +1 -0
  19. package/dist/animation/changing/index.d.ts +213 -0
  20. package/dist/animation/changing/index.d.ts.map +1 -0
  21. package/dist/animation/composition/LaggedStartMap.d.ts +47 -0
  22. package/dist/animation/composition/LaggedStartMap.d.ts.map +1 -0
  23. package/dist/animation/composition/index.d.ts +5 -0
  24. package/dist/animation/composition/index.d.ts.map +1 -0
  25. package/dist/animation/creation/Create.d.ts +232 -0
  26. package/dist/animation/creation/Create.d.ts.map +1 -0
  27. package/dist/animation/creation/CreationExtensions.d.ts +127 -0
  28. package/dist/animation/creation/CreationExtensions.d.ts.map +1 -0
  29. package/dist/animation/creation/TypeWithCursor.d.ts +133 -0
  30. package/dist/animation/creation/TypeWithCursor.d.ts.map +1 -0
  31. package/dist/animation/creation/index.d.ts +4 -0
  32. package/dist/animation/creation/index.d.ts.map +1 -0
  33. package/dist/animation/fading/FadeIn.d.ts +31 -0
  34. package/dist/animation/fading/FadeIn.d.ts.map +1 -0
  35. package/dist/animation/fading/FadeOut.d.ts +32 -0
  36. package/dist/animation/fading/FadeOut.d.ts.map +1 -0
  37. package/dist/animation/fading/index.d.ts +3 -0
  38. package/dist/animation/fading/index.d.ts.map +1 -0
  39. package/dist/animation/growing/index.d.ts +103 -0
  40. package/dist/animation/growing/index.d.ts.map +1 -0
  41. package/dist/animation/index.d.ts +20 -0
  42. package/dist/animation/index.d.ts.map +1 -0
  43. package/dist/animation/indication/ApplyWave.d.ts +51 -0
  44. package/dist/animation/indication/ApplyWave.d.ts.map +1 -0
  45. package/dist/animation/indication/Blink.d.ts +34 -0
  46. package/dist/animation/indication/Blink.d.ts.map +1 -0
  47. package/dist/animation/indication/Circumscribe.d.ts +54 -0
  48. package/dist/animation/indication/Circumscribe.d.ts.map +1 -0
  49. package/dist/animation/indication/Flash.d.ts +45 -0
  50. package/dist/animation/indication/Flash.d.ts.map +1 -0
  51. package/dist/animation/indication/FocusOn.d.ts +79 -0
  52. package/dist/animation/indication/FocusOn.d.ts.map +1 -0
  53. package/dist/animation/indication/Indicate.d.ts +30 -0
  54. package/dist/animation/indication/Indicate.d.ts.map +1 -0
  55. package/dist/animation/indication/ShowCreationThenDestruction.d.ts +26 -0
  56. package/dist/animation/indication/ShowCreationThenDestruction.d.ts.map +1 -0
  57. package/dist/animation/indication/ShowPassingFlash.d.ts +47 -0
  58. package/dist/animation/indication/ShowPassingFlash.d.ts.map +1 -0
  59. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts +21 -0
  60. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts.map +1 -0
  61. package/dist/animation/indication/Wiggle.d.ts +48 -0
  62. package/dist/animation/indication/Wiggle.d.ts.map +1 -0
  63. package/dist/animation/indication/WiggleOutThenIn.d.ts +44 -0
  64. package/dist/animation/indication/WiggleOutThenIn.d.ts.map +1 -0
  65. package/dist/animation/indication/index.d.ts +20 -0
  66. package/dist/animation/indication/index.d.ts.map +1 -0
  67. package/dist/animation/movement/Homotopy.d.ts +204 -0
  68. package/dist/animation/movement/Homotopy.d.ts.map +1 -0
  69. package/dist/animation/movement/MoveAlongPath.d.ts +48 -0
  70. package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -0
  71. package/dist/animation/movement/Rotate.d.ts +47 -0
  72. package/dist/animation/movement/Rotate.d.ts.map +1 -0
  73. package/dist/animation/movement/Scale.d.ts +74 -0
  74. package/dist/animation/movement/Scale.d.ts.map +1 -0
  75. package/dist/animation/movement/Shift.d.ts +74 -0
  76. package/dist/animation/movement/Shift.d.ts.map +1 -0
  77. package/dist/animation/movement/index.d.ts +6 -0
  78. package/dist/animation/movement/index.d.ts.map +1 -0
  79. package/dist/animation/numbers/index.d.ts +152 -0
  80. package/dist/animation/numbers/index.d.ts.map +1 -0
  81. package/dist/animation/speed/index.d.ts +114 -0
  82. package/dist/animation/speed/index.d.ts.map +1 -0
  83. package/dist/animation/transform/ApplyPointwiseFunction.d.ts +23 -0
  84. package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -0
  85. package/dist/animation/transform/Transform.d.ts +89 -0
  86. package/dist/animation/transform/Transform.d.ts.map +1 -0
  87. package/dist/animation/transform/TransformExtensions.d.ts +444 -0
  88. package/dist/animation/transform/TransformExtensions.d.ts.map +1 -0
  89. package/dist/animation/transform/TransformMatching.d.ts +138 -0
  90. package/dist/animation/transform/TransformMatching.d.ts.map +1 -0
  91. package/dist/animation/transform/index.d.ts +5 -0
  92. package/dist/animation/transform/index.d.ts.map +1 -0
  93. package/dist/animation/utility/index.d.ts +171 -0
  94. package/dist/animation/utility/index.d.ts.map +1 -0
  95. package/dist/constants/colors.d.ts +72 -0
  96. package/dist/constants/colors.d.ts.map +1 -0
  97. package/dist/constants/colors.test.d.ts +2 -0
  98. package/dist/constants/colors.test.d.ts.map +1 -0
  99. package/dist/constants/directions.test.d.ts +2 -0
  100. package/dist/constants/directions.test.d.ts.map +1 -0
  101. package/dist/constants/index.d.ts +16 -0
  102. package/dist/constants/index.d.ts.map +1 -0
  103. package/dist/core/AudioManager.d.ts +203 -0
  104. package/dist/core/AudioManager.d.ts.map +1 -0
  105. package/dist/core/Camera.d.ts +172 -0
  106. package/dist/core/Camera.d.ts.map +1 -0
  107. package/dist/core/Camera2DFrame.d.ts +31 -0
  108. package/dist/core/Camera2DFrame.d.ts.map +1 -0
  109. package/dist/core/CameraExtensions.d.ts +420 -0
  110. package/dist/core/CameraExtensions.d.ts.map +1 -0
  111. package/dist/core/CameraFrame.d.ts +178 -0
  112. package/dist/core/CameraFrame.d.ts.map +1 -0
  113. package/dist/core/Group.d.ts +139 -0
  114. package/dist/core/Group.d.ts.map +1 -0
  115. package/dist/core/InteractiveScene.d.ts +122 -0
  116. package/dist/core/InteractiveScene.d.ts.map +1 -0
  117. package/dist/core/Lighting.d.ts +128 -0
  118. package/dist/core/Lighting.d.ts.map +1 -0
  119. package/dist/core/Mobject.d.ts +488 -0
  120. package/dist/core/Mobject.d.ts.map +1 -0
  121. package/dist/core/Renderer.d.ts +84 -0
  122. package/dist/core/Renderer.d.ts.map +1 -0
  123. package/dist/core/Scene.d.ts +353 -0
  124. package/dist/core/Scene.d.ts.map +1 -0
  125. package/dist/core/SceneExtensions.d.ts +640 -0
  126. package/dist/core/SceneExtensions.d.ts.map +1 -0
  127. package/dist/core/SceneExtensions.test.d.ts +2 -0
  128. package/dist/core/SceneExtensions.test.d.ts.map +1 -0
  129. package/dist/core/StateManager.d.ts +193 -0
  130. package/dist/core/StateManager.d.ts.map +1 -0
  131. package/dist/core/VDict.d.ts +229 -0
  132. package/dist/core/VDict.d.ts.map +1 -0
  133. package/dist/core/VGroup.d.ts +200 -0
  134. package/dist/core/VGroup.d.ts.map +1 -0
  135. package/dist/core/VMobject.d.ts +419 -0
  136. package/dist/core/VMobject.d.ts.map +1 -0
  137. package/dist/core/index.d.ts +16 -0
  138. package/dist/core/index.d.ts.map +1 -0
  139. package/dist/examples.test.d.ts +2 -0
  140. package/dist/examples.test.d.ts.map +1 -0
  141. package/dist/export/GifExporter.d.ts +40 -0
  142. package/dist/export/GifExporter.d.ts.map +1 -0
  143. package/dist/export/VideoExporter.d.ts +135 -0
  144. package/dist/export/VideoExporter.d.ts.map +1 -0
  145. package/dist/export/index.d.ts +3 -0
  146. package/dist/export/index.d.ts.map +1 -0
  147. package/dist/index.d.ts +65 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +49064 -0
  150. package/dist/integrations/index.d.ts +1 -0
  151. package/dist/integrations/index.d.ts.map +1 -0
  152. package/dist/integrations/react.d.ts +144 -0
  153. package/dist/integrations/react.d.ts.map +1 -0
  154. package/dist/integrations/react.js +570 -0
  155. package/dist/integrations/vue.d.ts +249 -0
  156. package/dist/integrations/vue.d.ts.map +1 -0
  157. package/dist/integrations/vue.js +560 -0
  158. package/dist/interaction/Clickable.d.ts +71 -0
  159. package/dist/interaction/Clickable.d.ts.map +1 -0
  160. package/dist/interaction/Controls.d.ts +174 -0
  161. package/dist/interaction/Controls.d.ts.map +1 -0
  162. package/dist/interaction/Draggable.d.ts +88 -0
  163. package/dist/interaction/Draggable.d.ts.map +1 -0
  164. package/dist/interaction/Hoverable.d.ts +82 -0
  165. package/dist/interaction/Hoverable.d.ts.map +1 -0
  166. package/dist/interaction/OrbitControls.d.ts +139 -0
  167. package/dist/interaction/OrbitControls.d.ts.map +1 -0
  168. package/dist/interaction/PlaybackControls.d.ts +113 -0
  169. package/dist/interaction/PlaybackControls.d.ts.map +1 -0
  170. package/dist/interaction/SelectionManager.d.ts +125 -0
  171. package/dist/interaction/SelectionManager.d.ts.map +1 -0
  172. package/dist/interaction/index.d.ts +12 -0
  173. package/dist/interaction/index.d.ts.map +1 -0
  174. package/dist/mobjects/fractals/MandelbrotSet.d.ts +92 -0
  175. package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -0
  176. package/dist/mobjects/fractals/NewtonFractal.d.ts +121 -0
  177. package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -0
  178. package/dist/mobjects/fractals/index.d.ts +3 -0
  179. package/dist/mobjects/fractals/index.d.ts.map +1 -0
  180. package/dist/mobjects/frame/index.d.ts +188 -0
  181. package/dist/mobjects/frame/index.d.ts.map +1 -0
  182. package/dist/mobjects/geometry/AngleShapes.d.ts +326 -0
  183. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -0
  184. package/dist/mobjects/geometry/Arc.d.ts +111 -0
  185. package/dist/mobjects/geometry/Arc.d.ts.map +1 -0
  186. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +68 -0
  187. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -0
  188. package/dist/mobjects/geometry/ArcShapes.d.ts +659 -0
  189. package/dist/mobjects/geometry/ArcShapes.d.ts.map +1 -0
  190. package/dist/mobjects/geometry/Arrow.d.ts +130 -0
  191. package/dist/mobjects/geometry/Arrow.d.ts.map +1 -0
  192. package/dist/mobjects/geometry/ArrowTips.d.ts +238 -0
  193. package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -0
  194. package/dist/mobjects/geometry/BooleanOperations.d.ts +163 -0
  195. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -0
  196. package/dist/mobjects/geometry/Circle.d.ts +92 -0
  197. package/dist/mobjects/geometry/Circle.d.ts.map +1 -0
  198. package/dist/mobjects/geometry/CubicBezier.d.ts +126 -0
  199. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -0
  200. package/dist/mobjects/geometry/DashedLine.d.ts +109 -0
  201. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -0
  202. package/dist/mobjects/geometry/DashedVMobject.d.ts +96 -0
  203. package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -0
  204. package/dist/mobjects/geometry/Dot.d.ts +100 -0
  205. package/dist/mobjects/geometry/Dot.d.ts.map +1 -0
  206. package/dist/mobjects/geometry/LabeledGeometry.d.ts +372 -0
  207. package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -0
  208. package/dist/mobjects/geometry/Line.d.ts +83 -0
  209. package/dist/mobjects/geometry/Line.d.ts.map +1 -0
  210. package/dist/mobjects/geometry/Polygon.d.ts +155 -0
  211. package/dist/mobjects/geometry/Polygon.d.ts.map +1 -0
  212. package/dist/mobjects/geometry/PolygonExtensions.d.ts +412 -0
  213. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -0
  214. package/dist/mobjects/geometry/Rectangle.d.ts +123 -0
  215. package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -0
  216. package/dist/mobjects/geometry/ShapeMatchers.d.ts +252 -0
  217. package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -0
  218. package/dist/mobjects/geometry/index.d.ts +25 -0
  219. package/dist/mobjects/geometry/index.d.ts.map +1 -0
  220. package/dist/mobjects/graph/index.d.ts +425 -0
  221. package/dist/mobjects/graph/index.d.ts.map +1 -0
  222. package/dist/mobjects/graphing/Axes.d.ts +254 -0
  223. package/dist/mobjects/graphing/Axes.d.ts.map +1 -0
  224. package/dist/mobjects/graphing/BarChart.d.ts +241 -0
  225. package/dist/mobjects/graphing/BarChart.d.ts.map +1 -0
  226. package/dist/mobjects/graphing/ComplexPlane.d.ts +311 -0
  227. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -0
  228. package/dist/mobjects/graphing/FunctionGraph.d.ts +123 -0
  229. package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -0
  230. package/dist/mobjects/graphing/ImplicitFunction.d.ts +131 -0
  231. package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -0
  232. package/dist/mobjects/graphing/NumberLine.d.ts +195 -0
  233. package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -0
  234. package/dist/mobjects/graphing/NumberPlane.d.ts +91 -0
  235. package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -0
  236. package/dist/mobjects/graphing/ParametricFunction.d.ts +111 -0
  237. package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -0
  238. package/dist/mobjects/graphing/Vector.d.ts +121 -0
  239. package/dist/mobjects/graphing/Vector.d.ts.map +1 -0
  240. package/dist/mobjects/graphing/VectorField.d.ts +321 -0
  241. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -0
  242. package/dist/mobjects/graphing/index.d.ts +18 -0
  243. package/dist/mobjects/graphing/index.d.ts.map +1 -0
  244. package/dist/mobjects/image/index.d.ts +223 -0
  245. package/dist/mobjects/image/index.d.ts.map +1 -0
  246. package/dist/mobjects/matrix/Matrix.d.ts +260 -0
  247. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -0
  248. package/dist/mobjects/matrix/index.d.ts +8 -0
  249. package/dist/mobjects/matrix/index.d.ts.map +1 -0
  250. package/dist/mobjects/point/index.d.ts +707 -0
  251. package/dist/mobjects/point/index.d.ts.map +1 -0
  252. package/dist/mobjects/probability/DiceFace.d.ts +137 -0
  253. package/dist/mobjects/probability/DiceFace.d.ts.map +1 -0
  254. package/dist/mobjects/probability/SampleSpace.d.ts +267 -0
  255. package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -0
  256. package/dist/mobjects/probability/index.d.ts +9 -0
  257. package/dist/mobjects/probability/index.d.ts.map +1 -0
  258. package/dist/mobjects/svg/Brace.d.ts +308 -0
  259. package/dist/mobjects/svg/Brace.d.ts.map +1 -0
  260. package/dist/mobjects/svg/SVGMobject.d.ts +64 -0
  261. package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -0
  262. package/dist/mobjects/svg/index.d.ts +10 -0
  263. package/dist/mobjects/svg/index.d.ts.map +1 -0
  264. package/dist/mobjects/table/Table.d.ts +315 -0
  265. package/dist/mobjects/table/Table.d.ts.map +1 -0
  266. package/dist/mobjects/table/index.d.ts +8 -0
  267. package/dist/mobjects/table/index.d.ts.map +1 -0
  268. package/dist/mobjects/text/Code.d.ts +244 -0
  269. package/dist/mobjects/text/Code.d.ts.map +1 -0
  270. package/dist/mobjects/text/DecimalNumber.d.ts +199 -0
  271. package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -0
  272. package/dist/mobjects/text/GlyphVMobject.d.ts +76 -0
  273. package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -0
  274. package/dist/mobjects/text/MarkupText.d.ts +161 -0
  275. package/dist/mobjects/text/MarkupText.d.ts.map +1 -0
  276. package/dist/mobjects/text/MathJaxRenderer.d.ts +49 -0
  277. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -0
  278. package/dist/mobjects/text/MathTex.d.ts +242 -0
  279. package/dist/mobjects/text/MathTex.d.ts.map +1 -0
  280. package/dist/mobjects/text/Paragraph.d.ts +86 -0
  281. package/dist/mobjects/text/Paragraph.d.ts.map +1 -0
  282. package/dist/mobjects/text/Tex.d.ts +40 -0
  283. package/dist/mobjects/text/Tex.d.ts.map +1 -0
  284. package/dist/mobjects/text/Text.d.ts +171 -0
  285. package/dist/mobjects/text/Text.d.ts.map +1 -0
  286. package/dist/mobjects/text/TextExtensions.d.ts +383 -0
  287. package/dist/mobjects/text/TextExtensions.d.ts.map +1 -0
  288. package/dist/mobjects/text/TextGlyphGroup.d.ts +48 -0
  289. package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -0
  290. package/dist/mobjects/text/Variable.d.ts +160 -0
  291. package/dist/mobjects/text/Variable.d.ts.map +1 -0
  292. package/dist/mobjects/text/index.d.ts +21 -0
  293. package/dist/mobjects/text/index.d.ts.map +1 -0
  294. package/dist/mobjects/text/katex-styles.d.ts +23 -0
  295. package/dist/mobjects/text/katex-styles.d.ts.map +1 -0
  296. package/dist/mobjects/text/svgPathParser.d.ts +39 -0
  297. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -0
  298. package/dist/mobjects/three-d/Arrow3D.d.ts +136 -0
  299. package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -0
  300. package/dist/mobjects/three-d/Cube.d.ts +186 -0
  301. package/dist/mobjects/three-d/Cube.d.ts.map +1 -0
  302. package/dist/mobjects/three-d/Cylinder.d.ts +189 -0
  303. package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -0
  304. package/dist/mobjects/three-d/Line3D.d.ts +100 -0
  305. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -0
  306. package/dist/mobjects/three-d/ParametricSurface.d.ts +86 -0
  307. package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -0
  308. package/dist/mobjects/three-d/Polyhedra.d.ts +271 -0
  309. package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -0
  310. package/dist/mobjects/three-d/Sphere.d.ts +100 -0
  311. package/dist/mobjects/three-d/Sphere.d.ts.map +1 -0
  312. package/dist/mobjects/three-d/Surface3D.d.ts +156 -0
  313. package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -0
  314. package/dist/mobjects/three-d/TexturedSurface.d.ts +208 -0
  315. package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -0
  316. package/dist/mobjects/three-d/ThreeDAxes.d.ts +172 -0
  317. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -0
  318. package/dist/mobjects/three-d/ThreeDExtensions.d.ts +335 -0
  319. package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -0
  320. package/dist/mobjects/three-d/Torus.d.ts +123 -0
  321. package/dist/mobjects/three-d/Torus.d.ts.map +1 -0
  322. package/dist/mobjects/three-d/index.d.ts +19 -0
  323. package/dist/mobjects/three-d/index.d.ts.map +1 -0
  324. package/dist/mobjects/value-tracker/ValueTracker.d.ts +248 -0
  325. package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -0
  326. package/dist/mobjects/value-tracker/index.d.ts +9 -0
  327. package/dist/mobjects/value-tracker/index.d.ts.map +1 -0
  328. package/dist/rate-functions/index.d.ts +81 -0
  329. package/dist/rate-functions/index.d.ts.map +1 -0
  330. package/dist/rate-functions/rateFunctions.test.d.ts +2 -0
  331. package/dist/rate-functions/rateFunctions.test.d.ts.map +1 -0
  332. package/dist/rendering/BezierRenderer.d.ts +112 -0
  333. package/dist/rendering/BezierRenderer.d.ts.map +1 -0
  334. package/dist/rendering/BezierShaderMaterial.d.ts +50 -0
  335. package/dist/rendering/BezierShaderMaterial.d.ts.map +1 -0
  336. package/dist/rendering/index.d.ts +10 -0
  337. package/dist/rendering/index.d.ts.map +1 -0
  338. package/dist/utils/Performance.d.ts +118 -0
  339. package/dist/utils/Performance.d.ts.map +1 -0
  340. package/dist/utils/featureFlags.d.ts +15 -0
  341. package/dist/utils/featureFlags.d.ts.map +1 -0
  342. package/dist/utils/hungarian.d.ts +66 -0
  343. package/dist/utils/hungarian.d.ts.map +1 -0
  344. package/dist/utils/logger.d.ts +14 -0
  345. package/dist/utils/logger.d.ts.map +1 -0
  346. package/dist/utils/math.d.ts +52 -0
  347. package/dist/utils/math.d.ts.map +1 -0
  348. package/dist/utils/ode.d.ts +135 -0
  349. package/dist/utils/ode.d.ts.map +1 -0
  350. package/dist/utils/skeletonize.d.ts +35 -0
  351. package/dist/utils/skeletonize.d.ts.map +1 -0
  352. package/dist/utils/triangulate.d.ts +54 -0
  353. package/dist/utils/triangulate.d.ts.map +1 -0
  354. package/dist/utils/vectors.d.ts +57 -0
  355. package/dist/utils/vectors.d.ts.map +1 -0
  356. package/package.json +122 -0
@@ -0,0 +1,248 @@
1
+ import { Mobject, Vector3Tuple } from '../../core/Mobject';
2
+ import { Animation, AnimationOptions } from '../../animation/Animation';
3
+ /**
4
+ * ValueTracker - A mobject that tracks a numerical value that can be animated.
5
+ *
6
+ * ValueTrackers are invisible mobjects that hold a value which can be smoothly
7
+ * animated using the standard animation system. Other mobjects can use updaters
8
+ * to respond to changes in the ValueTracker's value.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // Create a tracker starting at 0
13
+ * const tracker = new ValueTracker(0);
14
+ *
15
+ * // Create a dot that follows the tracker value on a number line
16
+ * const dot = new Dot();
17
+ * dot.addUpdater((d) => {
18
+ * d.moveTo(numberLine.numberToPoint(tracker.getValue()));
19
+ * });
20
+ *
21
+ * // Animate the tracker from 0 to 5
22
+ * timeline.add(tracker.animateTo(5, { duration: 2 }));
23
+ * ```
24
+ */
25
+ import * as THREE from 'three';
26
+ /**
27
+ * Options for creating a ValueTracker
28
+ */
29
+ export interface ValueTrackerOptions {
30
+ /** Initial value (default: 0) */
31
+ value?: number;
32
+ }
33
+ /**
34
+ * ValueTracker - Tracks a numerical value that can be animated.
35
+ *
36
+ * This is an invisible mobject designed to hold a single numerical value
37
+ * that can be smoothly animated. It's commonly used with updaters to
38
+ * create dynamic animations where multiple mobjects respond to a single
39
+ * changing value.
40
+ */
41
+ export declare class ValueTracker extends Mobject {
42
+ /** The tracked value */
43
+ private _value;
44
+ /**
45
+ * Create a new ValueTracker.
46
+ * @param value - Initial value (default: 0)
47
+ */
48
+ constructor(value?: number);
49
+ constructor(options?: ValueTrackerOptions);
50
+ /**
51
+ * Get the current value.
52
+ * @returns The current tracked value
53
+ */
54
+ getValue(): number;
55
+ /**
56
+ * Set the value directly (without animation).
57
+ * @param value - The new value
58
+ * @returns this for chaining
59
+ */
60
+ setValue(value: number): this;
61
+ /**
62
+ * Increment the value by a given amount.
63
+ * @param amount - The amount to add (can be negative)
64
+ * @returns this for chaining
65
+ */
66
+ incrementValue(amount: number): this;
67
+ /**
68
+ * Create an animation that smoothly changes the value.
69
+ * @param targetValue - The value to animate to
70
+ * @param options - Animation options (duration, rateFunc, etc.)
71
+ * @returns An animation that can be added to a timeline
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * // Animate from current value to 10 over 2 seconds
76
+ * timeline.add(tracker.animateTo(10, { duration: 2 }));
77
+ *
78
+ * // Animate with custom rate function
79
+ * timeline.add(tracker.animateTo(5, {
80
+ * duration: 1.5,
81
+ * rateFunc: easeInOut
82
+ * }));
83
+ * ```
84
+ */
85
+ animateTo(targetValue: number, options?: AnimationOptions): Animation;
86
+ /**
87
+ * Alias for animateTo - matches Manim's API.
88
+ * @param targetValue - The value to animate to
89
+ * @param options - Animation options
90
+ * @returns An animation
91
+ */
92
+ animate(targetValue: number, options?: AnimationOptions): Animation;
93
+ /**
94
+ * Get the center position (returns origin since this is invisible).
95
+ * @returns [0, 0, 0]
96
+ */
97
+ getCenter(): Vector3Tuple;
98
+ /**
99
+ * Create a copy of this ValueTracker.
100
+ * @returns A new ValueTracker with the same value
101
+ */
102
+ protected _createCopy(): ValueTracker;
103
+ /**
104
+ * Create an empty Three.js object (ValueTracker is invisible).
105
+ * @returns An empty THREE.Group
106
+ */
107
+ protected _createThreeObject(): THREE.Object3D;
108
+ }
109
+ /**
110
+ * Complex number representation
111
+ */
112
+ export interface Complex {
113
+ /** Real part */
114
+ re: number;
115
+ /** Imaginary part */
116
+ im: number;
117
+ }
118
+ /**
119
+ * Options for creating a ComplexValueTracker
120
+ */
121
+ export interface ComplexValueTrackerOptions {
122
+ /** Initial complex value */
123
+ value?: Complex;
124
+ }
125
+ /**
126
+ * ComplexValueTracker - Tracks a complex number that can be animated.
127
+ *
128
+ * Similar to ValueTracker but for complex numbers. The value is stored
129
+ * as {re, im} representing the real and imaginary parts.
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * // Create a tracker at 1 + 2i
134
+ * const tracker = new ComplexValueTracker({ re: 1, im: 2 });
135
+ *
136
+ * // Create a dot that visualizes the complex number
137
+ * const dot = new Dot();
138
+ * dot.addUpdater((d) => {
139
+ * const z = tracker.getValue();
140
+ * d.moveTo([z.re, z.im, 0]);
141
+ * });
142
+ *
143
+ * // Animate to -1 + 0i
144
+ * timeline.add(tracker.animateTo({ re: -1, im: 0 }, { duration: 2 }));
145
+ * ```
146
+ */
147
+ export declare class ComplexValueTracker extends Mobject {
148
+ /** The tracked complex value */
149
+ private _value;
150
+ /**
151
+ * Create a new ComplexValueTracker.
152
+ * @param value - Initial complex value (default: { re: 0, im: 0 })
153
+ */
154
+ constructor(value?: Complex);
155
+ constructor(options?: ComplexValueTrackerOptions);
156
+ /**
157
+ * Get the current complex value.
158
+ * @returns The current value as { re, im }
159
+ */
160
+ getValue(): Complex;
161
+ /**
162
+ * Alias for getValue - returns the complex number.
163
+ * @returns The current value as { re, im }
164
+ */
165
+ getComplex(): Complex;
166
+ /**
167
+ * Get the real part of the value.
168
+ * @returns The real part
169
+ */
170
+ getReal(): number;
171
+ /**
172
+ * Get the imaginary part of the value.
173
+ * @returns The imaginary part
174
+ */
175
+ getImaginary(): number;
176
+ /**
177
+ * Get the magnitude (absolute value) of the complex number.
178
+ * @returns |z| = sqrt(re^2 + im^2)
179
+ */
180
+ getMagnitude(): number;
181
+ /**
182
+ * Get the argument (phase angle) of the complex number.
183
+ * @returns The angle in radians
184
+ */
185
+ getArgument(): number;
186
+ /**
187
+ * Set the value directly (without animation).
188
+ * @param value - The new complex value
189
+ * @returns this for chaining
190
+ */
191
+ setValue(value: Complex): this;
192
+ /**
193
+ * Set the value using polar coordinates.
194
+ * @param r - Magnitude
195
+ * @param theta - Angle in radians
196
+ * @returns this for chaining
197
+ */
198
+ setFromPolar(r: number, theta: number): this;
199
+ /**
200
+ * Increment the value by a given complex amount.
201
+ * @param amount - The amount to add
202
+ * @returns this for chaining
203
+ */
204
+ incrementValue(amount: Complex): this;
205
+ /**
206
+ * Create an animation that smoothly changes the complex value.
207
+ * @param targetValue - The value to animate to
208
+ * @param options - Animation options (duration, rateFunc, etc.)
209
+ * @returns An animation that can be added to a timeline
210
+ */
211
+ animateTo(targetValue: Complex, options?: AnimationOptions): Animation;
212
+ /**
213
+ * Alias for animateTo - matches Manim's API.
214
+ * @param targetValue - The value to animate to
215
+ * @param options - Animation options
216
+ * @returns An animation
217
+ */
218
+ animate(targetValue: Complex, options?: AnimationOptions): Animation;
219
+ /**
220
+ * Get the center position (returns the complex number as a 2D point).
221
+ * @returns [re, im, 0]
222
+ */
223
+ getCenter(): Vector3Tuple;
224
+ /**
225
+ * Create a copy of this ComplexValueTracker.
226
+ * @returns A new ComplexValueTracker with the same value
227
+ */
228
+ protected _createCopy(): ComplexValueTracker;
229
+ /**
230
+ * Create an empty Three.js object (ComplexValueTracker is invisible).
231
+ * @returns An empty THREE.Group
232
+ */
233
+ protected _createThreeObject(): THREE.Object3D;
234
+ }
235
+ /**
236
+ * Factory function to create a ValueTracker.
237
+ * @param value - Initial value (default: 0)
238
+ * @returns A new ValueTracker
239
+ */
240
+ export declare function valueTracker(value?: number): ValueTracker;
241
+ /**
242
+ * Factory function to create a ComplexValueTracker.
243
+ * @param value - Initial complex value (default: { re: 0, im: 0 })
244
+ * @returns A new ComplexValueTracker
245
+ */
246
+ export declare function complexValueTracker(value?: Complex): ComplexValueTracker;
247
+ export default ValueTracker;
248
+ //# sourceMappingURL=ValueTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValueTracker.d.ts","sourceRoot":"","sources":["../../../src/mobjects/value-tracker/ValueTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAiCxE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACvC,wBAAwB;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;gBACS,KAAK,CAAC,EAAE,MAAM;gBACd,OAAO,CAAC,EAAE,mBAAmB;IAazC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ7B;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAIrE;;;;;OAKG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAInE;;;OAGG;IACM,SAAS,IAAI,YAAY;IAIlC;;;OAGG;cACgB,WAAW,IAAI,YAAY;IAI9C;;;OAGG;cACgB,kBAAkB,IAAI,KAAK,CAAC,QAAQ;CAIxD;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;CACZ;AAkCD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC9C,gCAAgC;IAChC,OAAO,CAAC,MAAM,CAAU;IAExB;;;OAGG;gBACS,KAAK,CAAC,EAAE,OAAO;gBACf,OAAO,CAAC,EAAE,0BAA0B;IAehD;;;OAGG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAQ9B;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5C;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAOrC;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAItE;;;;;OAKG;IACH,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAIpE;;;OAGG;IACM,SAAS,IAAI,YAAY;IAIlC;;;OAGG;cACgB,WAAW,IAAI,mBAAmB;IAIrD;;;OAGG;cACgB,kBAAkB,IAAI,KAAK,CAAC,QAAQ;CAIxD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAU,GAAG,YAAY,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAExE;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Value Tracker exports
3
+ *
4
+ * ValueTracker and ComplexValueTracker are invisible mobjects that hold
5
+ * values which can be smoothly animated. They are commonly used with
6
+ * updaters to create dynamic animations.
7
+ */
8
+ export { ValueTracker, valueTracker, ComplexValueTracker, complexValueTracker, type ValueTrackerOptions, type ComplexValueTrackerOptions, type Complex, } from './ValueTracker';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mobjects/value-tracker/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,OAAO,GACb,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Rate/easing functions for animations.
3
+ * These control how the animation progress (0-1) is mapped to visual progress.
4
+ */
5
+ export type RateFunction = (t: number) => number;
6
+ /**
7
+ * Linear interpolation - constant speed
8
+ */
9
+ export declare const linear: RateFunction;
10
+ /**
11
+ * Manim Python's smooth function using sigmoid curve.
12
+ * Matches: smooth(t, inflection=10) from manim.utils.rate_functions
13
+ * Steeper in the middle, flatter at endpoints than simple smoothstep.
14
+ */
15
+ export declare const smooth: RateFunction;
16
+ /**
17
+ * Cubic ease in-out - slower at both ends
18
+ */
19
+ export declare const easeInOut: RateFunction;
20
+ /**
21
+ * Cubic ease in - starts slow, accelerates
22
+ */
23
+ export declare const easeIn: RateFunction;
24
+ /**
25
+ * Cubic ease out - starts fast, decelerates
26
+ */
27
+ export declare const easeOut: RateFunction;
28
+ /**
29
+ * Quadratic ease in
30
+ */
31
+ export declare const easeInQuad: RateFunction;
32
+ /**
33
+ * Quadratic ease out
34
+ */
35
+ export declare const easeOutQuad: RateFunction;
36
+ /**
37
+ * Exponential ease in
38
+ */
39
+ export declare const easeInExpo: RateFunction;
40
+ /**
41
+ * Exponential ease out
42
+ */
43
+ export declare const easeOutExpo: RateFunction;
44
+ /**
45
+ * Bounce ease out - simulates bouncing
46
+ */
47
+ export declare const easeOutBounce: RateFunction;
48
+ /**
49
+ * Bounce ease in
50
+ */
51
+ export declare const easeInBounce: RateFunction;
52
+ /**
53
+ * There and back - goes to 1 at t=0.5, returns to 0 at t=1
54
+ */
55
+ export declare const thereAndBack: RateFunction;
56
+ /**
57
+ * Rush into - quickly accelerate then maintain
58
+ */
59
+ export declare const rushInto: RateFunction;
60
+ /**
61
+ * Rush from - maintain then quickly decelerate
62
+ */
63
+ export declare const rushFrom: RateFunction;
64
+ /**
65
+ * Double smooth - extra smooth transitions
66
+ */
67
+ export declare const doubleSmooth: RateFunction;
68
+ /**
69
+ * Create a rate function that stays at 0 until a certain point,
70
+ * then jumps to 1
71
+ */
72
+ export declare const stepFunction: (threshold?: number) => RateFunction;
73
+ /**
74
+ * Reverse a rate function
75
+ */
76
+ export declare const reverse: (func: RateFunction) => RateFunction;
77
+ /**
78
+ * Compose two rate functions
79
+ */
80
+ export declare const compose: (outer: RateFunction, inner: RateFunction) => RateFunction;
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rate-functions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,YAAuC,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,YAKpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,YAIvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,YAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,YAErB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,YAEzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,YAEzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAa3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,YAE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,YAI1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,YAEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,YAEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,YAK1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,YAAW,MAAY,KAAG,YAEtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,YAAY,KAAG,YAE5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GAClB,OAAO,YAAY,EACnB,OAAO,YAAY,KAClB,YAEF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rateFunctions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateFunctions.test.d.ts","sourceRoot":"","sources":["../../src/rate-functions/rateFunctions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,112 @@
1
+ import { BezierShaderMaterialOptions } from './BezierShaderMaterial';
2
+ /**
3
+ * BezierRenderer - Converts VMobject cubic Bezier data into instanced Three.js
4
+ * geometry for GPU-accelerated SDF curve rendering.
5
+ *
6
+ * Each cubic Bezier segment of a VMobject becomes one instance of a screen-aligned
7
+ * quad. The BezierShaderMaterial's fragment shader evaluates the SDF per-pixel to
8
+ * produce anti-aliased strokes with variable width and round caps.
9
+ *
10
+ * Usage:
11
+ * ```ts
12
+ * const renderer = new BezierRenderer({ resolution: [1920, 1080] });
13
+ * const mesh = renderer.buildMesh(vmobject);
14
+ * scene.add(mesh);
15
+ *
16
+ * // On resize:
17
+ * renderer.updateResolution(newWidth, newHeight, pixelRatio);
18
+ *
19
+ * // When VMobject points change:
20
+ * renderer.updateMesh(mesh, vmobject);
21
+ * ```
22
+ */
23
+ import * as THREE from 'three';
24
+ export interface BezierRendererOptions {
25
+ /** Renderer resolution [width, height] in CSS pixels. Default: [800, 450] */
26
+ resolution?: [number, number];
27
+ /** Device pixel ratio. Default: 1 */
28
+ pixelRatio?: number;
29
+ /** Additional material options */
30
+ materialOptions?: BezierShaderMaterialOptions;
31
+ }
32
+ /**
33
+ * Per-segment data extracted from a VMobject or provided directly.
34
+ */
35
+ export interface BezierSegment {
36
+ /** Control point 0 (start anchor) */
37
+ p0: number[];
38
+ /** Control point 1 */
39
+ p1: number[];
40
+ /** Control point 2 */
41
+ p2: number[];
42
+ /** Control point 3 (end anchor) */
43
+ p3: number[];
44
+ /** Stroke width at start of segment */
45
+ widthStart: number;
46
+ /** Stroke width at end of segment */
47
+ widthEnd: number;
48
+ /** RGBA color [r, g, b, a] where each channel is 0..1 */
49
+ color: [number, number, number, number];
50
+ }
51
+ export declare class BezierRenderer {
52
+ private _material;
53
+ private _pixelRatio;
54
+ constructor(options?: BezierRendererOptions);
55
+ /** Access the underlying ShaderMaterial (e.g. to update uniforms). */
56
+ get material(): THREE.ShaderMaterial;
57
+ /**
58
+ * Update renderer resolution. Call on window/canvas resize.
59
+ */
60
+ updateResolution(width: number, height: number, pixelRatio?: number): void;
61
+ /**
62
+ * Extract cubic Bezier segments from a VMobject-like object.
63
+ *
64
+ * VMobject stores points as:
65
+ * [anchor0, handle0, handle1, anchor1, handle2, handle3, anchor2, ...]
66
+ * Each group of 4 consecutive points (stepping by 3) is one cubic segment.
67
+ *
68
+ * @param points - The VMobject's 3D points array
69
+ * @param strokeWidth - Uniform stroke width (or start width)
70
+ * @param strokeWidthEnd - End stroke width for variable width. Defaults to strokeWidth.
71
+ * @param color - CSS color string
72
+ * @param opacity - Overall opacity 0..1
73
+ * @returns Array of BezierSegment
74
+ */
75
+ static extractSegments(points: number[][], strokeWidth: number, strokeWidthEnd?: number, color?: string, opacity?: number): BezierSegment[];
76
+ /**
77
+ * Build an InstancedMesh for the given Bezier segments.
78
+ *
79
+ * @param segments - Array of BezierSegment
80
+ * @returns THREE.Mesh using InstancedBufferGeometry
81
+ */
82
+ buildMeshFromSegments(segments: BezierSegment[]): THREE.Mesh;
83
+ /**
84
+ * Convenience: build a mesh directly from VMobject-style data.
85
+ *
86
+ * @param points - Cubic Bezier control points (from VMobject.getVisiblePoints3D())
87
+ * @param strokeWidth - Stroke width
88
+ * @param color - CSS color string
89
+ * @param opacity - Opacity 0..1
90
+ * @param strokeWidthEnd - End stroke width for tapering (optional)
91
+ * @returns THREE.Mesh
92
+ */
93
+ buildMesh(points: number[][], strokeWidth: number, color?: string, opacity?: number, strokeWidthEnd?: number): THREE.Mesh;
94
+ /**
95
+ * Update an existing mesh's instance data without reallocating geometry
96
+ * (when segment count is the same) or rebuild if count differs.
97
+ *
98
+ * @param mesh - Previously built mesh
99
+ * @param segments - New segment data
100
+ * @returns The (possibly new) mesh
101
+ */
102
+ updateMeshFromSegments(mesh: THREE.Mesh, segments: BezierSegment[]): THREE.Mesh;
103
+ /**
104
+ * Convenience: update from VMobject-style data.
105
+ */
106
+ updateMesh(mesh: THREE.Mesh, points: number[][], strokeWidth: number, color?: string, opacity?: number, strokeWidthEnd?: number): THREE.Mesh;
107
+ /**
108
+ * Dispose the shared material. Call when the renderer is no longer needed.
109
+ */
110
+ dispose(): void;
111
+ }
112
+ //# sourceMappingURL=BezierRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BezierRenderer.d.ts","sourceRoot":"","sources":["../../src/rendering/BezierRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAMhC,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,eAAe,CAAC,EAAE,2BAA2B,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,mCAAmC;IACnC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAyBD,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,GAAE,qBAA0B;IAgB/C,sEAAsE;IACtE,IAAI,QAAQ,IAAI,KAAK,CAAC,cAAc,CAEnC;IAED;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAS1E;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,eAAe,CACpB,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,GAAE,MAAkB,EACzB,OAAO,GAAE,MAAU,GAClB,aAAa,EAAE;IA2ClB;;;;;OAKG;IACH,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI;IAyD5D;;;;;;;;;OASG;IACH,SAAS,CACP,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAkB,EACzB,OAAO,GAAE,MAAU,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB,KAAK,CAAC,IAAI;IAOb;;;;;;;OAOG;IACH,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI;IA6D/E;;OAEG;IACH,UAAU,CACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAkB,EACzB,OAAO,GAAE,MAAU,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB,KAAK,CAAC,IAAI;IAOb;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * BezierShaderMaterial - ManimGL-quality Bezier curve rendering via Three.js ShaderMaterial.
3
+ *
4
+ * Uses GPU-evaluated signed distance fields (SDF) for cubic Bezier curves
5
+ * to achieve pixel-perfect anti-aliasing, variable stroke width, and round
6
+ * caps/joints -- the signature "ManimGL look."
7
+ *
8
+ * Each curve segment is a screen-aligned quad (two triangles) that bounds the
9
+ * Bezier curve with padding for stroke width. The fragment shader computes the
10
+ * exact closest-point distance to the cubic Bezier via iterative Newton refinement,
11
+ * then applies smoothstep anti-aliasing.
12
+ */
13
+ import * as THREE from 'three';
14
+ export interface BezierShaderMaterialOptions {
15
+ /** Enable transparency. Default: true */
16
+ transparent?: boolean;
17
+ /** Depth test. Default: true */
18
+ depthTest?: boolean;
19
+ /** Depth write. Default: false (for proper alpha blending) */
20
+ depthWrite?: boolean;
21
+ /** Blending mode. Default: THREE.NormalBlending */
22
+ blending?: THREE.Blending;
23
+ /** Side to render. Default: THREE.DoubleSide */
24
+ side?: THREE.Side;
25
+ /** Device pixel ratio. Default: 1 */
26
+ pixelRatio?: number;
27
+ /** Renderer resolution [width, height] in CSS pixels */
28
+ resolution?: [number, number];
29
+ }
30
+ /**
31
+ * Create a Three.js ShaderMaterial configured for Bezier curve SDF rendering.
32
+ *
33
+ * The material expects instanced geometry where each instance carries:
34
+ * aP0, aP1, aP2, aP3 - cubic Bezier control points (vec3)
35
+ * aWidthStart, aWidthEnd - stroke width at t=0 and t=1 (float)
36
+ * aColor - RGBA color (vec4)
37
+ *
38
+ * And per-vertex:
39
+ * aQuadUV - quad corner coordinate (vec2)
40
+ *
41
+ * @param options - Material configuration
42
+ * @returns Configured ShaderMaterial
43
+ */
44
+ export declare function createBezierShaderMaterial(options?: BezierShaderMaterialOptions): THREE.ShaderMaterial;
45
+ /**
46
+ * Update the resolution uniform on a BezierShaderMaterial.
47
+ * Call this when the renderer resizes.
48
+ */
49
+ export declare function updateBezierMaterialResolution(material: THREE.ShaderMaterial, width: number, height: number, pixelRatio?: number): void;
50
+ //# sourceMappingURL=BezierShaderMaterial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BezierShaderMaterial.d.ts","sourceRoot":"","sources":["../../src/rendering/BezierShaderMaterial.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyO/B,MAAM,WAAW,2BAA2B;IAC1C,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,gDAAgD;IAChD,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;IAClB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,KAAK,CAAC,cAAc,CAwBtB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAU,GACrB,IAAI,CAON"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Rendering module - GPU-accelerated Bezier curve rendering via custom shaders.
3
+ *
4
+ * Provides ManimGL-quality anti-aliased curves with variable stroke width,
5
+ * round caps, and clean SDF-based rendering as an opt-in alternative to
6
+ * the default Line2-based stroke rendering.
7
+ */
8
+ export { createBezierShaderMaterial, updateBezierMaterialResolution, type BezierShaderMaterialOptions, } from './BezierShaderMaterial';
9
+ export { BezierRenderer, type BezierRendererOptions, type BezierSegment, } from './BezierRenderer';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rendering/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,2BAA2B,GACjC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Performance monitoring utilities for manimweb.
3
+ * Provides FPS tracking and performance metrics.
4
+ */
5
+ /**
6
+ * Performance monitor for tracking frame rate and other metrics.
7
+ * Useful for debugging and optimizing animations.
8
+ */
9
+ export declare class PerformanceMonitor {
10
+ private _frameCount;
11
+ private _lastTime;
12
+ private _fps;
13
+ private _callback;
14
+ private _animationFrameId;
15
+ private _isRunning;
16
+ private _fpsHistory;
17
+ private _historySize;
18
+ /**
19
+ * Start monitoring performance.
20
+ * @param callback - Optional callback called each second with current FPS
21
+ */
22
+ start(callback?: (fps: number) => void): void;
23
+ /**
24
+ * Stop monitoring performance.
25
+ */
26
+ stop(): void;
27
+ /**
28
+ * Internal update loop.
29
+ */
30
+ private _update;
31
+ /**
32
+ * Get the current FPS (rolling average).
33
+ * @returns Current frames per second
34
+ */
35
+ getFps(): number;
36
+ /**
37
+ * Get the instant FPS (last measured value before averaging).
38
+ * @returns Instant frames per second
39
+ */
40
+ getInstantFps(): number;
41
+ /**
42
+ * Check if the monitor is currently running.
43
+ * @returns true if monitoring is active
44
+ */
45
+ isRunning(): boolean;
46
+ /**
47
+ * Reset the monitor statistics.
48
+ */
49
+ reset(): void;
50
+ }
51
+ /**
52
+ * Create a new PerformanceMonitor instance.
53
+ * @returns A new PerformanceMonitor
54
+ */
55
+ export declare function createPerformanceMonitor(): PerformanceMonitor;
56
+ /**
57
+ * Simple frame time tracker for measuring render performance.
58
+ */
59
+ export declare class FrameTimeTracker {
60
+ private _frameTimes;
61
+ private _maxSamples;
62
+ private _lastFrameStart;
63
+ /**
64
+ * Create a new FrameTimeTracker.
65
+ * @param maxSamples - Maximum number of samples to keep (default: 60)
66
+ */
67
+ constructor(maxSamples?: number);
68
+ /**
69
+ * Mark the start of a frame.
70
+ */
71
+ startFrame(): void;
72
+ /**
73
+ * Mark the end of a frame and record the time.
74
+ */
75
+ endFrame(): void;
76
+ /**
77
+ * Get the average frame time in milliseconds.
78
+ * @returns Average frame time in ms
79
+ */
80
+ getAverageFrameTime(): number;
81
+ /**
82
+ * Get the maximum frame time in milliseconds.
83
+ * @returns Max frame time in ms
84
+ */
85
+ getMaxFrameTime(): number;
86
+ /**
87
+ * Get the minimum frame time in milliseconds.
88
+ * @returns Min frame time in ms
89
+ */
90
+ getMinFrameTime(): number;
91
+ /**
92
+ * Get the 95th percentile frame time.
93
+ * Useful for identifying stutter/jank.
94
+ * @returns 95th percentile frame time in ms
95
+ */
96
+ get95thPercentile(): number;
97
+ /**
98
+ * Reset all recorded frame times.
99
+ */
100
+ reset(): void;
101
+ /**
102
+ * Get a summary of frame time statistics.
103
+ * @returns Object with avg, min, max, and p95 frame times
104
+ */
105
+ getSummary(): {
106
+ avg: number;
107
+ min: number;
108
+ max: number;
109
+ p95: number;
110
+ };
111
+ }
112
+ /**
113
+ * Create a new FrameTimeTracker instance.
114
+ * @param maxSamples - Maximum number of samples to keep
115
+ * @returns A new FrameTimeTracker
116
+ */
117
+ export declare function createFrameTimeTracker(maxSamples?: number): FrameTimeTracker;
118
+ //# sourceMappingURL=Performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Performance.d.ts","sourceRoot":"","sources":["../../src/utils/Performance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,UAAU,CAAkB;IAGpC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,YAAY,CAAc;IAElC;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAW7C;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,OAAO,CAAC,OAAO,CA4Bb;IAEF;;;OAGG;IACH,MAAM,IAAI,MAAM;IAIhB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAMvB;;;OAGG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAa;IAEpC;;;OAGG;gBACS,UAAU,GAAE,MAAW;IAInC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB;;;OAGG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAKzB;;;OAGG;IACH,eAAe,IAAI,MAAM;IAKzB;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAO3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,UAAU,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAQrE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAE5E"}