manim 0.18.0.post0__py3-none-any.whl → 0.19.0__py3-none-any.whl

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.

Potentially problematic release.


This version of manim might be problematic. Click here for more details.

Files changed (146) hide show
  1. manim/__init__.py +3 -6
  2. manim/__main__.py +61 -20
  3. manim/_config/__init__.py +6 -3
  4. manim/_config/cli_colors.py +16 -8
  5. manim/_config/default.cfg +1 -3
  6. manim/_config/logger_utils.py +14 -8
  7. manim/_config/utils.py +651 -472
  8. manim/animation/animation.py +152 -5
  9. manim/animation/composition.py +80 -39
  10. manim/animation/creation.py +196 -14
  11. manim/animation/fading.py +5 -9
  12. manim/animation/indication.py +103 -47
  13. manim/animation/movement.py +22 -5
  14. manim/animation/rotation.py +3 -2
  15. manim/animation/specialized.py +4 -6
  16. manim/animation/speedmodifier.py +10 -5
  17. manim/animation/transform.py +4 -5
  18. manim/animation/transform_matching_parts.py +1 -1
  19. manim/animation/updaters/mobject_update_utils.py +17 -14
  20. manim/camera/camera.py +15 -6
  21. manim/cli/__init__.py +17 -0
  22. manim/cli/cfg/group.py +70 -44
  23. manim/cli/checkhealth/checks.py +93 -75
  24. manim/cli/checkhealth/commands.py +14 -5
  25. manim/cli/default_group.py +157 -25
  26. manim/cli/init/commands.py +32 -24
  27. manim/cli/plugins/commands.py +16 -3
  28. manim/cli/render/commands.py +72 -60
  29. manim/cli/render/ease_of_access_options.py +4 -3
  30. manim/cli/render/global_options.py +51 -15
  31. manim/cli/render/output_options.py +6 -5
  32. manim/cli/render/render_options.py +97 -32
  33. manim/constants.py +65 -19
  34. manim/gui/gui.py +2 -0
  35. manim/mobject/frame.py +0 -1
  36. manim/mobject/geometry/arc.py +112 -78
  37. manim/mobject/geometry/boolean_ops.py +32 -25
  38. manim/mobject/geometry/labeled.py +300 -77
  39. manim/mobject/geometry/line.py +132 -64
  40. manim/mobject/geometry/polygram.py +126 -30
  41. manim/mobject/geometry/shape_matchers.py +35 -15
  42. manim/mobject/geometry/tips.py +38 -29
  43. manim/mobject/graph.py +414 -133
  44. manim/mobject/graphing/coordinate_systems.py +126 -64
  45. manim/mobject/graphing/functions.py +25 -15
  46. manim/mobject/graphing/number_line.py +24 -10
  47. manim/mobject/graphing/probability.py +2 -10
  48. manim/mobject/graphing/scale.py +6 -5
  49. manim/mobject/matrix.py +17 -19
  50. manim/mobject/mobject.py +314 -165
  51. manim/mobject/opengl/opengl_compatibility.py +2 -0
  52. manim/mobject/opengl/opengl_geometry.py +30 -9
  53. manim/mobject/opengl/opengl_image_mobject.py +2 -0
  54. manim/mobject/opengl/opengl_mobject.py +509 -343
  55. manim/mobject/opengl/opengl_point_cloud_mobject.py +5 -7
  56. manim/mobject/opengl/opengl_surface.py +3 -2
  57. manim/mobject/opengl/opengl_three_dimensions.py +2 -0
  58. manim/mobject/opengl/opengl_vectorized_mobject.py +46 -79
  59. manim/mobject/svg/brace.py +63 -13
  60. manim/mobject/svg/svg_mobject.py +4 -3
  61. manim/mobject/table.py +11 -13
  62. manim/mobject/text/code_mobject.py +186 -548
  63. manim/mobject/text/numbers.py +9 -7
  64. manim/mobject/text/tex_mobject.py +23 -14
  65. manim/mobject/text/text_mobject.py +70 -24
  66. manim/mobject/three_d/polyhedra.py +98 -1
  67. manim/mobject/three_d/three_d_utils.py +4 -4
  68. manim/mobject/three_d/three_dimensions.py +62 -34
  69. manim/mobject/types/image_mobject.py +42 -24
  70. manim/mobject/types/point_cloud_mobject.py +105 -67
  71. manim/mobject/types/vectorized_mobject.py +496 -228
  72. manim/mobject/value_tracker.py +5 -4
  73. manim/mobject/vector_field.py +5 -5
  74. manim/opengl/__init__.py +3 -3
  75. manim/plugins/__init__.py +14 -1
  76. manim/plugins/plugins_flags.py +14 -8
  77. manim/renderer/cairo_renderer.py +20 -10
  78. manim/renderer/opengl_renderer.py +21 -23
  79. manim/renderer/opengl_renderer_window.py +2 -0
  80. manim/renderer/shader.py +2 -3
  81. manim/renderer/shader_wrapper.py +5 -2
  82. manim/renderer/vectorized_mobject_rendering.py +5 -0
  83. manim/scene/moving_camera_scene.py +23 -0
  84. manim/scene/scene.py +90 -43
  85. manim/scene/scene_file_writer.py +316 -165
  86. manim/scene/section.py +17 -15
  87. manim/scene/three_d_scene.py +13 -21
  88. manim/scene/vector_space_scene.py +22 -9
  89. manim/typing.py +830 -70
  90. manim/utils/bezier.py +1667 -399
  91. manim/utils/caching.py +13 -5
  92. manim/utils/color/AS2700.py +2 -0
  93. manim/utils/color/BS381.py +3 -0
  94. manim/utils/color/DVIPSNAMES.py +96 -0
  95. manim/utils/color/SVGNAMES.py +179 -0
  96. manim/utils/color/X11.py +3 -0
  97. manim/utils/color/XKCD.py +3 -0
  98. manim/utils/color/__init__.py +8 -5
  99. manim/utils/color/core.py +844 -309
  100. manim/utils/color/manim_colors.py +7 -9
  101. manim/utils/commands.py +48 -20
  102. manim/utils/config_ops.py +18 -13
  103. manim/utils/debug.py +8 -7
  104. manim/utils/deprecation.py +90 -40
  105. manim/utils/docbuild/__init__.py +17 -0
  106. manim/utils/docbuild/autoaliasattr_directive.py +234 -0
  107. manim/utils/docbuild/autocolor_directive.py +21 -17
  108. manim/utils/docbuild/manim_directive.py +50 -35
  109. manim/utils/docbuild/module_parsing.py +245 -0
  110. manim/utils/exceptions.py +6 -0
  111. manim/utils/family.py +5 -3
  112. manim/utils/family_ops.py +17 -4
  113. manim/utils/file_ops.py +26 -16
  114. manim/utils/hashing.py +9 -7
  115. manim/utils/images.py +10 -4
  116. manim/utils/ipython_magic.py +14 -8
  117. manim/utils/iterables.py +161 -119
  118. manim/utils/module_ops.py +57 -19
  119. manim/utils/opengl.py +83 -24
  120. manim/utils/parameter_parsing.py +32 -0
  121. manim/utils/paths.py +21 -23
  122. manim/utils/polylabel.py +168 -0
  123. manim/utils/qhull.py +218 -0
  124. manim/utils/rate_functions.py +74 -39
  125. manim/utils/simple_functions.py +24 -15
  126. manim/utils/sounds.py +7 -1
  127. manim/utils/space_ops.py +125 -69
  128. manim/utils/testing/__init__.py +17 -0
  129. manim/utils/testing/_frames_testers.py +13 -8
  130. manim/utils/testing/_show_diff.py +5 -3
  131. manim/utils/testing/_test_class_makers.py +33 -18
  132. manim/utils/testing/frames_comparison.py +27 -19
  133. manim/utils/tex.py +127 -197
  134. manim/utils/tex_file_writing.py +47 -45
  135. manim/utils/tex_templates.py +2 -1
  136. manim/utils/unit.py +6 -5
  137. {manim-0.18.0.post0.dist-info → manim-0.19.0.dist-info}/LICENSE.community +1 -1
  138. {manim-0.18.0.post0.dist-info → manim-0.19.0.dist-info}/METADATA +40 -39
  139. manim-0.19.0.dist-info/RECORD +221 -0
  140. {manim-0.18.0.post0.dist-info → manim-0.19.0.dist-info}/WHEEL +1 -1
  141. manim/cli/new/__init__.py +0 -0
  142. manim/cli/new/group.py +0 -189
  143. manim/plugins/import_plugins.py +0 -43
  144. manim-0.18.0.post0.dist-info/RECORD +0 -217
  145. {manim-0.18.0.post0.dist-info → manim-0.19.0.dist-info}/LICENSE +0 -0
  146. {manim-0.18.0.post0.dist-info → manim-0.19.0.dist-info}/entry_points.txt +0 -0
@@ -9,18 +9,22 @@
9
9
  from __future__ import annotations
10
10
 
11
11
  import hashlib
12
- import os
13
12
  import re
13
+ import subprocess
14
14
  import unicodedata
15
+ from collections.abc import Generator, Iterable, Sequence
15
16
  from pathlib import Path
16
- from typing import Iterable
17
+ from re import Match
18
+ from typing import Any
17
19
 
18
20
  from manim.utils.tex import TexTemplate
19
21
 
20
22
  from .. import config, logger
21
23
 
24
+ __all__ = ["tex_to_svg_file"]
22
25
 
23
- def tex_hash(expression):
26
+
27
+ def tex_hash(expression: Any) -> str:
24
28
  id_str = str(expression)
25
29
  hasher = hashlib.sha256()
26
30
  hasher.update(id_str.encode())
@@ -32,8 +36,8 @@ def tex_to_svg_file(
32
36
  expression: str,
33
37
  environment: str | None = None,
34
38
  tex_template: TexTemplate | None = None,
35
- ):
36
- """Takes a tex expression and returns the svg version of the compiled tex
39
+ ) -> Path:
40
+ r"""Takes a tex expression and returns the svg version of the compiled tex
37
41
 
38
42
  Parameters
39
43
  ----------
@@ -74,7 +78,7 @@ def generate_tex_file(
74
78
  environment: str | None = None,
75
79
  tex_template: TexTemplate | None = None,
76
80
  ) -> Path:
77
- """Takes a tex expression (and an optional tex environment),
81
+ r"""Takes a tex expression (and an optional tex environment),
78
82
  and returns a fully formed tex file ready for compilation.
79
83
 
80
84
  Parameters
@@ -112,10 +116,11 @@ def generate_tex_file(
112
116
  return result
113
117
 
114
118
 
115
- def tex_compilation_command(
119
+ def make_tex_compilation_command(
116
120
  tex_compiler: str, output_format: str, tex_file: Path, tex_dir: Path
117
- ) -> str:
118
- """Prepares the tex compilation command with all necessary cli flags
121
+ ) -> list[str]:
122
+ """Prepares the TeX compilation command, i.e. the TeX compiler name
123
+ and all necessary CLI flags.
119
124
 
120
125
  Parameters
121
126
  ----------
@@ -130,50 +135,46 @@ def tex_compilation_command(
130
135
 
131
136
  Returns
132
137
  -------
133
- :class:`str`
138
+ :class:`list[str]`
134
139
  Compilation command according to given parameters
135
140
  """
136
141
  if tex_compiler in {"latex", "pdflatex", "luatex", "lualatex"}:
137
- commands = [
142
+ command = [
138
143
  tex_compiler,
139
144
  "-interaction=batchmode",
140
- f'-output-format="{output_format[1:]}"',
145
+ f"-output-format={output_format[1:]}",
141
146
  "-halt-on-error",
142
- f'-output-directory="{tex_dir.as_posix()}"',
143
- f'"{tex_file.as_posix()}"',
144
- ">",
145
- os.devnull,
147
+ f"-output-directory={tex_dir.as_posix()}",
148
+ f"{tex_file.as_posix()}",
146
149
  ]
147
150
  elif tex_compiler == "xelatex":
148
151
  if output_format == ".xdv":
149
- outflag = "-no-pdf"
152
+ outflag = ["-no-pdf"]
150
153
  elif output_format == ".pdf":
151
- outflag = ""
154
+ outflag = []
152
155
  else:
153
156
  raise ValueError("xelatex output is either pdf or xdv")
154
- commands = [
157
+ command = [
155
158
  "xelatex",
156
- outflag,
159
+ *outflag,
157
160
  "-interaction=batchmode",
158
161
  "-halt-on-error",
159
- f'-output-directory="{tex_dir.as_posix()}"',
160
- f'"{tex_file.as_posix()}"',
161
- ">",
162
- os.devnull,
162
+ f"-output-directory={tex_dir.as_posix()}",
163
+ f"{tex_file.as_posix()}",
163
164
  ]
164
165
  else:
165
166
  raise ValueError(f"Tex compiler {tex_compiler} unknown.")
166
- return " ".join(commands)
167
+ return command
167
168
 
168
169
 
169
- def insight_inputenc_error(matching):
170
+ def insight_inputenc_error(matching: Match[str]) -> Generator[str]:
170
171
  code_point = chr(int(matching[1], 16))
171
172
  name = unicodedata.name(code_point)
172
173
  yield f"TexTemplate does not support character '{name}' (U+{matching[1]})."
173
174
  yield "See the documentation for manim.mobject.svg.tex_mobject for details on using a custom TexTemplate."
174
175
 
175
176
 
176
- def insight_package_not_found_error(matching):
177
+ def insight_package_not_found_error(matching: Match[str]) -> Generator[str]:
177
178
  yield f"You do not have package {matching[1]} installed."
178
179
  yield f"Install {matching[1]} it using your LaTeX package manager, or check for typos."
179
180
 
@@ -198,14 +199,14 @@ def compile_tex(tex_file: Path, tex_compiler: str, output_format: str) -> Path:
198
199
  result = tex_file.with_suffix(output_format)
199
200
  tex_dir = config.get_dir("tex_dir")
200
201
  if not result.exists():
201
- command = tex_compilation_command(
202
+ command = make_tex_compilation_command(
202
203
  tex_compiler,
203
204
  output_format,
204
205
  tex_file,
205
206
  tex_dir,
206
207
  )
207
- exit_code = os.system(command)
208
- if exit_code != 0:
208
+ cp = subprocess.run(command, stdout=subprocess.DEVNULL)
209
+ if cp.returncode != 0:
209
210
  log_file = tex_file.with_suffix(".log")
210
211
  print_all_tex_errors(log_file, tex_compiler, tex_file)
211
212
  raise ValueError(
@@ -216,7 +217,7 @@ def compile_tex(tex_file: Path, tex_compiler: str, output_format: str) -> Path:
216
217
  return result
217
218
 
218
219
 
219
- def convert_to_svg(dvi_file: Path, extension: str, page: int = 1):
220
+ def convert_to_svg(dvi_file: Path, extension: str, page: int = 1) -> Path:
220
221
  """Converts a .dvi, .xdv, or .pdf file into an svg using dvisvgm.
221
222
 
222
223
  Parameters
@@ -235,18 +236,16 @@ def convert_to_svg(dvi_file: Path, extension: str, page: int = 1):
235
236
  """
236
237
  result = dvi_file.with_suffix(".svg")
237
238
  if not result.exists():
238
- commands = [
239
+ command = [
239
240
  "dvisvgm",
240
- "--pdf" if extension == ".pdf" else "",
241
- "-p " + str(page),
242
- f'"{dvi_file.as_posix()}"',
243
- "-n",
244
- "-v 0",
245
- "-o " + f'"{result.as_posix()}"',
246
- ">",
247
- os.devnull,
241
+ *(["--pdf"] if extension == ".pdf" else []),
242
+ f"--page={page}",
243
+ "--no-fonts",
244
+ "--verbosity=0",
245
+ f"--output={result.as_posix()}",
246
+ f"{dvi_file.as_posix()}",
248
247
  ]
249
- os.system(" ".join(commands))
248
+ subprocess.run(command, stdout=subprocess.DEVNULL)
250
249
 
251
250
  # if the file does not exist now, this means conversion failed
252
251
  if not result.exists():
@@ -269,7 +268,6 @@ def delete_nonsvg_files(additional_endings: Iterable[str] = ()) -> None:
269
268
  additional_endings
270
269
  Additional endings to whitelist
271
270
  """
272
-
273
271
  tex_dir = config.get_dir("tex_dir")
274
272
  file_suffix_whitelist = {".svg", ".tex", *additional_endings}
275
273
 
@@ -308,7 +306,11 @@ LATEX_ERROR_INSIGHTS = [
308
306
  ]
309
307
 
310
308
 
311
- def print_tex_error(tex_compilation_log, error_start_index, tex_source):
309
+ def print_tex_error(
310
+ tex_compilation_log: Sequence[str],
311
+ error_start_index: int,
312
+ tex_source: Sequence[str],
313
+ ) -> None:
312
314
  logger.error(
313
315
  f"LaTeX compilation error: {tex_compilation_log[error_start_index][2:]}",
314
316
  )
@@ -342,8 +344,8 @@ def print_tex_error(tex_compilation_log, error_start_index, tex_source):
342
344
  context += tex_source[line_of_tex_error - 3 : line_of_tex_error + 3]
343
345
  context[-4] = "-> " + context[-4]
344
346
 
345
- context = "".join(context)
346
- logger.error(context)
347
+ context_joined = "".join(context)
348
+ logger.error(context_joined)
347
349
 
348
350
  for insights in LATEX_ERROR_INSIGHTS:
349
351
  prob, get_insight = insights
@@ -1,4 +1,5 @@
1
1
  """A library of LaTeX templates."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  __all__ = [
@@ -11,7 +12,7 @@ from .tex import *
11
12
  # This file makes TexTemplateLibrary and TexFontTemplates available for use in manim Tex and MathTex objects.
12
13
 
13
14
 
14
- def _new_ams_template():
15
+ def _new_ams_template() -> TexTemplate:
15
16
  """Returns a simple Tex Template with only basic AMS packages"""
16
17
  preamble = r"""
17
18
  \usepackage[english]{babel}
manim/utils/unit.py CHANGED
@@ -5,20 +5,21 @@ from __future__ import annotations
5
5
  import numpy as np
6
6
 
7
7
  from .. import config, constants
8
+ from ..typing import Vector3D
8
9
 
9
10
  __all__ = ["Pixels", "Degrees", "Munits", "Percent"]
10
11
 
11
12
 
12
13
  class _PixelUnits:
13
- def __mul__(self, val):
14
+ def __mul__(self, val: float) -> float:
14
15
  return val * config.frame_width / config.pixel_width
15
16
 
16
- def __rmul__(self, val):
17
+ def __rmul__(self, val: float) -> float:
17
18
  return val * config.frame_width / config.pixel_width
18
19
 
19
20
 
20
21
  class Percent:
21
- def __init__(self, axis):
22
+ def __init__(self, axis: Vector3D) -> None:
22
23
  if np.array_equal(axis, constants.X_AXIS):
23
24
  self.length = config.frame_width
24
25
  if np.array_equal(axis, constants.Y_AXIS):
@@ -26,10 +27,10 @@ class Percent:
26
27
  if np.array_equal(axis, constants.Z_AXIS):
27
28
  raise NotImplementedError("length of Z axis is undefined")
28
29
 
29
- def __mul__(self, val):
30
+ def __mul__(self, val: float) -> float:
30
31
  return val / 100 * self.length
31
32
 
32
- def __rmul__(self, val):
33
+ def __rmul__(self, val: float) -> float:
33
34
  return val / 100 * self.length
34
35
 
35
36
 
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021, the Manim Community Developers
3
+ Copyright (c) 2024, the Manim Community Developers
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,63 +1,62 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: manim
3
- Version: 0.18.0.post0
3
+ Version: 0.19.0
4
4
  Summary: Animation engine for explanatory math videos.
5
- Home-page: https://www.manim.community/
6
5
  License: MIT
7
6
  Author: The Manim Community Developers
8
7
  Author-email: contact@manim.community
9
- Requires-Python: >=3.8,<3.13
8
+ Requires-Python: >=3.9
10
9
  Classifier: Development Status :: 4 - Beta
11
10
  Classifier: License :: OSI Approved :: MIT License
12
11
  Classifier: Natural Language :: English
13
12
  Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.8
15
13
  Classifier: Programming Language :: Python :: 3.9
16
14
  Classifier: Programming Language :: Python :: 3.10
17
15
  Classifier: Programming Language :: Python :: 3.11
18
16
  Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
19
18
  Classifier: Topic :: Multimedia :: Graphics
20
19
  Classifier: Topic :: Multimedia :: Video
21
20
  Classifier: Topic :: Scientific/Engineering
22
21
  Provides-Extra: gui
23
22
  Provides-Extra: jupyterlab
24
- Requires-Dist: Pillow (>=9.1,<10.0)
25
- Requires-Dist: Pygments (>=2.10.0,<3.0.0)
26
- Requires-Dist: backports.cached-property (>=1.0.1,<2.0.0) ; python_version < "3.8"
27
- Requires-Dist: click (>=7.2,<=9.0)
28
- Requires-Dist: click-default-group (>=1.2.2,<2.0.0)
29
- Requires-Dist: cloup (>=0.13,<2.2)
30
- Requires-Dist: dearpygui (>=1.3.1,<2.0.0) ; extra == "gui"
31
- Requires-Dist: decorator (>=5.0.7,<6.0.0)
32
- Requires-Dist: importlib-metadata (>=4.10.0,<5.0.0) ; python_version < "3.8"
33
- Requires-Dist: isosurfaces (==0.1.0)
34
- Requires-Dist: jupyterlab (>=3.0,<4.0) ; extra == "jupyterlab"
23
+ Requires-Dist: Pillow (>=9.1)
24
+ Requires-Dist: Pygments (>=2.0.0)
25
+ Requires-Dist: audioop-lts (>=0.2.0) ; python_version >= "3.13"
26
+ Requires-Dist: av (>=9.0.0,<14.0.0)
27
+ Requires-Dist: beautifulsoup4 (>=4.12)
28
+ Requires-Dist: click (>=8.0)
29
+ Requires-Dist: cloup (>=2.0.0)
30
+ Requires-Dist: dearpygui (>=1.0.0) ; extra == "gui"
31
+ Requires-Dist: decorator (>=4.3.2)
32
+ Requires-Dist: importlib-metadata (>=3.6) ; python_full_version <= "3.9.0"
33
+ Requires-Dist: isosurfaces (>=0.1.0)
34
+ Requires-Dist: jupyterlab (>=3.0.0) ; extra == "jupyterlab"
35
35
  Requires-Dist: manimpango (>=0.5.0,<1.0.0)
36
- Requires-Dist: mapbox-earcut (>=1.0.0,<2.0.0)
37
- Requires-Dist: moderngl (>=5.6.3,<6.0.0)
38
- Requires-Dist: moderngl-window (>=2.3.0,<3.0.0)
39
- Requires-Dist: networkx (>=2.5,<3.3)
40
- Requires-Dist: notebook (>=6.4,<7.0) ; extra == "jupyterlab"
41
- Requires-Dist: numpy (>=1.22,<2.0) ; python_version < "3.12"
42
- Requires-Dist: numpy (>=1.26,<2.0) ; python_version >= "3.12"
43
- Requires-Dist: pycairo (>=1.21,<2.0)
44
- Requires-Dist: pydub (>=0.25.1,<0.26.0)
45
- Requires-Dist: requests (>=2.26.0,<3.0.0)
46
- Requires-Dist: rich (>=6.0,!=12.0.0)
47
- Requires-Dist: scipy (>=1.11,<2.0) ; python_version >= "3.12"
48
- Requires-Dist: scipy (>=1.7.3,<2.0.0) ; python_version < "3.12"
49
- Requires-Dist: screeninfo (>=0.8,<0.9)
50
- Requires-Dist: skia-pathops (>=0.7.0,<0.8.0) ; python_version < "3.12"
51
- Requires-Dist: skia-pathops (>=0.8.0.post1,<0.9.0) ; python_version >= "3.12"
52
- Requires-Dist: srt (>=3.5.0,<4.0.0)
53
- Requires-Dist: svgelements (>=1.8.0,<2.0.0)
54
- Requires-Dist: tqdm (>=4.62.3,<5.0.0)
55
- Requires-Dist: typing-extensions (>=4.7.1,<5.0.0)
56
- Requires-Dist: watchdog (>=2.1,<=3.0.0)
36
+ Requires-Dist: mapbox-earcut (>=1.0.0)
37
+ Requires-Dist: moderngl (>=5.0.0,<6.0.0)
38
+ Requires-Dist: moderngl-window (>=2.0.0)
39
+ Requires-Dist: networkx (>=2.6)
40
+ Requires-Dist: notebook (>=6.0.0) ; extra == "jupyterlab"
41
+ Requires-Dist: numpy (>=2.0) ; python_version < "3.10"
42
+ Requires-Dist: numpy (>=2.1) ; python_version >= "3.10"
43
+ Requires-Dist: pycairo (>=1.13,<2.0.0)
44
+ Requires-Dist: pydub (>=0.20.0)
45
+ Requires-Dist: rich (>=12.0.0)
46
+ Requires-Dist: scipy (>=1.13.0) ; python_version < "3.13"
47
+ Requires-Dist: scipy (>=1.14.0) ; python_version >= "3.13"
48
+ Requires-Dist: screeninfo (>=0.7)
49
+ Requires-Dist: skia-pathops (>=0.7.0)
50
+ Requires-Dist: srt (>=3.0.0)
51
+ Requires-Dist: svgelements (>=1.8.0)
52
+ Requires-Dist: tqdm (>=4.0.0)
53
+ Requires-Dist: typing-extensions (>=4.0.0)
54
+ Requires-Dist: watchdog (>=2.0.0)
57
55
  Project-URL: Bug Tracker, https://github.com/ManimCommunity/manim/issues
58
56
  Project-URL: Changelog, https://docs.manim.community/en/stable/changelog.html
59
57
  Project-URL: Documentation, https://docs.manim.community/
60
58
  Project-URL: Discord, https://www.manim.community/discord/
59
+ Project-URL: Homepage, https://www.manim.community/
61
60
  Project-URL: Repository, https://github.com/manimcommunity/manim
62
61
  Project-URL: Twitter, https://twitter.com/manim_community
63
62
  Description-Content-Type: text/markdown
@@ -85,7 +84,8 @@ Description-Content-Type: text/markdown
85
84
 
86
85
  Manim is an animation engine for explanatory math videos. It's used to create precise animations programmatically, as demonstrated in the videos of [3Blue1Brown](https://www.3blue1brown.com/).
87
86
 
88
- > NOTE: This repository is maintained by the Manim Community and is not associated with Grant Sanderson or 3Blue1Brown in any way (although we are definitely indebted to him for providing his work to the world). If you would like to study how Grant makes his videos, head over to his repository ([3b1b/manim](https://github.com/3b1b/manim)). This fork is updated more frequently than his, and it's recommended to use this fork if you'd like to use Manim for your own projects.
87
+ > [!NOTE]
88
+ > The community edition of Manim has been forked from 3b1b/manim, a tool originally created and open-sourced by Grant Sanderson, also creator of the 3Blue1Brown educational math videos. While Grant Sanderson’s repository continues to be maintained separately by him, he is not among the maintainers of the community edition. We recommend this version for its continued development, improved features, enhanced documentation, and more active community-driven maintenance. If you would like to study how Grant makes his videos, head over to his repository ([3b1b/manim](https://github.com/3b1b/manim)).
89
89
 
90
90
  ## Table of Contents:
91
91
 
@@ -99,7 +99,8 @@ Manim is an animation engine for explanatory math videos. It's used to create pr
99
99
 
100
100
  ## Installation
101
101
 
102
- > **WARNING:** These instructions are for the community version _only_. Trying to use these instructions to install [3b1b/manim](https://github.com/3b1b/manim) or instructions there to install this version will cause problems. Read [this](https://docs.manim.community/en/stable/faq/installation.html#why-are-there-different-versions-of-manim) and decide which version you wish to install, then only follow the instructions for your desired version.
102
+ > [!CAUTION]
103
+ > These instructions are for the community version _only_. Trying to use these instructions to install [3b1b/manim](https://github.com/3b1b/manim) or instructions there to install this version will cause problems. Read [this](https://docs.manim.community/en/stable/faq/installation.html#why-are-there-different-versions-of-manim) and decide which version you wish to install, then only follow the instructions for your desired version.
103
104
 
104
105
  Manim requires a few dependencies that must be installed prior to using it. If you
105
106
  want to try it out first before installing it locally, you can do so
@@ -0,0 +1,221 @@
1
+ manim/__init__.py,sha256=n8Pi3wEcWmuot3Rfu13SxpDHcyWUAi0GX3ANitZiOT0,3568
2
+ manim/__main__.py,sha256=IobEEXbkDcjFwNbBudW6mDgSUVFMobypbeSQyPuw9cs,2577
3
+ manim/_config/__init__.py,sha256=t368pK9GcNW6GyH53faUYTnIHGnGNKGTXqWA23BlZGE,2732
4
+ manim/_config/cli_colors.py,sha256=DaPWAjpb1IB0dtHfGyOhyTKI0j34kQC4ZsGL6RM2p84,1888
5
+ manim/_config/default.cfg,sha256=3vogz3bjSuKm7L8GqbbFfMslf1AArcylJ5s6Ev--4mY,5329
6
+ manim/_config/logger_utils.py,sha256=Ht1yI7xrSUAFn0qtktN8ehN1Gsm66Mt5zG2IusRe7k8,5569
7
+ manim/_config/utils.py,sha256=3Y3mpB7O8dy5jprJS2D9hgqkqnT73OBWgPZiwO2dAPs,62288
8
+ manim/animation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ manim/animation/animation.py,sha256=yTrNcyArdXcCNZzd1I8_Z4Qqa6Uv5VIZ5Ga-HESrxSo,24671
10
+ manim/animation/changing.py,sha256=GdksMFYiXcl_6X3Hnjfr-SNiHJ9W2hQOcuBFj1beuFk,5523
11
+ manim/animation/composition.py,sha256=WKnKfgIQf7aB2wVAdJLM4T_P_er_zKNkXq9yGlDuf9A,15519
12
+ manim/animation/creation.py,sha256=CT1hHEU095_rT9nS0PaznH9G1iP5TdSLLSG4Sf8tUqE,25923
13
+ manim/animation/fading.py,sha256=OrBrJB3fO5bmFZscU7N2mfEJxfj61nhrUSMonr_E0dw,5781
14
+ manim/animation/growing.py,sha256=pEUwKG8UPFNpi1pFJBu6dpvIQr91kXos0oQfVgsLaOI,7154
15
+ manim/animation/indication.py,sha256=1IManwFzi2YrzQNSzkn6aWBTcnwmJx1GIo-Dv6xW510,22446
16
+ manim/animation/movement.py,sha256=DYN3V3JvQB3yWvLC8k4zxh0TuwUtiIOx7hReecF8DOY,5651
17
+ manim/animation/numbers.py,sha256=FmpuRQZ6UB_IUJ8eUwHIpBz9dsZnGumIwjlLVc4wQsQ,1427
18
+ manim/animation/rotation.py,sha256=9GlsuMOQfLTiOw8-SEU8OrMot9cIgw381v-YkYYcx5s,3256
19
+ manim/animation/specialized.py,sha256=l1QSpL2rzxfv_FB8TaLliRNFu1YrZCR2EWYK_p-sdcI,2894
20
+ manim/animation/speedmodifier.py,sha256=rQ_PZQ8kDeSkHEhHyewMv0xuAMDgkguzc13UEqMfS60,9882
21
+ manim/animation/transform.py,sha256=68U0SXWH434WfdUowANBMBToRn9g7DNf-_PMiX85wnY,30631
22
+ manim/animation/transform_matching_parts.py,sha256=XqmnjQxy1EdD5a8N_SCWiL9NfHNWY7ZdDxxRp_uq0Pc,10413
23
+ manim/animation/updaters/__init__.py,sha256=jgKFveRzPwFLbVHkTfJrv3qDIrgD-yuFKYsMRkwpPJc,169
24
+ manim/animation/updaters/mobject_update_utils.py,sha256=HAM_ar0XPiovY71Bn7kqHyouekUDho-vKUcM0W5CIYY,6847
25
+ manim/animation/updaters/update.py,sha256=FDiqMrQDU6BxXa4WXfOEahIUSE2haZ6vO4j_xL_XYbM,1719
26
+ manim/camera/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ manim/camera/camera.py,sha256=i1D6zY0IuLnWB01e4bo-0cZ16V7Q1P7eoHb8fGdqSEg,45504
28
+ manim/camera/mapping_camera.py,sha256=x0xmSiSwEH2so8bAfxIUW_l6ZdfxYD1FFDktZhFCLP8,4995
29
+ manim/camera/moving_camera.py,sha256=D1EIEqnHtWodqyZtO9AMiZ-IMQP2G4ZfMe9nm9kwy_A,8102
30
+ manim/camera/multi_camera.py,sha256=IbD0O_-MQgbuXhsODB8VU-19w1ExSEVxJXMw2tRccBQ,3382
31
+ manim/camera/three_d_camera.py,sha256=a8V1W7dqa-NuNoqiRdpWYlyE65rPxvoHKonKIPG-ggM,14744
32
+ manim/cli/__init__.py,sha256=3NogRjF4vq7MiqUO0lC1zNHALo6o4qQCb_ELDWM4Z8I,343
33
+ manim/cli/cfg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ manim/cli/cfg/group.py,sha256=lG_qrneYcyR4Yl1BJLROVN8DyDrjj1jBtK3nYZHvzJQ,10442
35
+ manim/cli/checkhealth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ manim/cli/checkhealth/checks.py,sha256=TQ2-O9Qp2mSUN_xHZecgrChSmhuftZjn_6acsXGpXzM,6353
37
+ manim/cli/checkhealth/commands.py,sha256=PF_B4_zSZq1GcYfEjCwMTI93u9VEM2LiVSRv5FBeDk4,3151
38
+ manim/cli/default_group.py,sha256=5IaexVxoXIQBMri7txmRQNrXOXwH0tWeeJ6UBKpOCiM,6968
39
+ manim/cli/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ manim/cli/init/commands.py,sha256=irZ_33y24gPOvlqGAX-bCuk1cU4D7E6naCML0jalu5M,6207
41
+ manim/cli/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ manim/cli/plugins/commands.py,sha256=V-PcnrOMf2DAilAP2mxTBMy05w_uoDSOXY7mv_ZkF9Y,1080
43
+ manim/cli/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ manim/cli/render/commands.py,sha256=hVAWp3jB32olxA6aNYVQJYPN6GUfCgX9VxupkUXsFC4,5213
45
+ manim/cli/render/ease_of_access_options.py,sha256=rHc4hczj3PkC8ISSoFxqavCcdP1wcLLwg_CIGGLpWGs,1046
46
+ manim/cli/render/global_options.py,sha256=R5wmHigNvQlNBWJozHpRb5G8GonRxvbrpQsSdU8AZmQ,3824
47
+ manim/cli/render/output_options.py,sha256=j4CtQmo62h3DDHW7G1IBPuwFAMuXa2DiRscWnZYEb3w,1052
48
+ manim/cli/render/render_options.py,sha256=W-Ym_liVFF-wTIpyAxVxDOExe9_QtJuQglxbxMUFB98,5431
49
+ manim/constants.py,sha256=0FF3XJFEM6jmvHTvrxxM6Mzm--VnlXFyoxe-QhUbq9A,8432
50
+ manim/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ manim/gui/gui.py,sha256=VucH_fhq3KiR-hvSfSxTK609EJpJgHfJ_dIn2kCPsVU,2702
52
+ manim/mobject/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ manim/mobject/frame.py,sha256=BTxvCpAFyD3umEDFAmnw7twP8z3_kra2dZO_ommw8yk,877
54
+ manim/mobject/geometry/__init__.py,sha256=2coukoxKXDE6LmqDDcF_chBZPYYb6oe3y4T8duV8Lvk,191
55
+ manim/mobject/geometry/arc.py,sha256=QIivd27GZFUXDmF76FIlgA-QePCD4OSp6RK_r27eacI,43342
56
+ manim/mobject/geometry/boolean_ops.py,sha256=jZP9HWubKWdS2823v23k9_Vld35FfMMln3QCbR-DtSQ,10337
57
+ manim/mobject/geometry/labeled.py,sha256=81fFzOf9Me2Y0Zu8koYdIjqPtSHC6THKU33SnOIVDyU,12782
58
+ manim/mobject/geometry/line.py,sha256=ZXTLtU6kouOrFzPihxl3Mx_HB1Y5ATviXr37MfJSC8A,40634
59
+ manim/mobject/geometry/polygram.py,sha256=YYD7N8DNWZxenTXFhgX1qD9gWBgpMoh8E2H33zcuKtw,26942
60
+ manim/mobject/geometry/shape_matchers.py,sha256=ChJqIsVx5UctOFwrjAcg5e2LEN7MpEGKuALhiXoJQNw,6722
61
+ manim/mobject/geometry/tips.py,sha256=WCfVH53j7dhP5xj8R30K3NXNdcsdcFa4Hhs00HV4dyk,10453
62
+ manim/mobject/graph.py,sha256=36ZoG6XulIUgx--YVKgrbwlPkjB4lQr4kHhOsqtALPo,65145
63
+ manim/mobject/graphing/__init__.py,sha256=Lf9tyLlxTBckPLMI7ZACu8YxRrsMExOoqpi-657OMQ8,213
64
+ manim/mobject/graphing/coordinate_systems.py,sha256=iABtn0wxsXR3fOqGG1A6PgiQ9eYFD64SxcZnly0Rz0g,120254
65
+ manim/mobject/graphing/functions.py,sha256=2Sq-rBaVszELh_GAo_A-Zr1TbvBHsHHO2hzI62DgSr0,10935
66
+ manim/mobject/graphing/number_line.py,sha256=moL0efrhaB4t8RqwzwtWGCsx4NIXaMrqDTpW80h1eM8,24237
67
+ manim/mobject/graphing/probability.py,sha256=f0ia8znOku1hMExt7AzCBN9tRpbIkV9tTZ54q_5kzlo,17554
68
+ manim/mobject/graphing/scale.py,sha256=x96Gy093kK0dThyh47YPTPudsPbniUUDSK1ZRFYjr-Y,5205
69
+ manim/mobject/logo.py,sha256=j7qxkyAXEN9LS4rhaXW0nOrNbZ7TMG1BkyS2El1-SYo,14232
70
+ manim/mobject/matrix.py,sha256=aE_GXvDEh9_grPqIy5akQ8FB4d-1vhsFSddb4J9KUA0,19564
71
+ manim/mobject/mobject.py,sha256=j0PbiU6aD-UuAVuBQvZ9xRhvHe0mZedbqCg9_pPE_54,104253
72
+ manim/mobject/opengl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ manim/mobject/opengl/dot_cloud.py,sha256=QrsRx_nbCn6-1TsYtKyCvkhHCgJ3PNs-bRz1EHDoNeE,1474
74
+ manim/mobject/opengl/opengl_compatibility.py,sha256=y-BoiXutCuHugAnTNdv0fekL3-LTzjhoYJouB7JwpOk,1589
75
+ manim/mobject/opengl/opengl_geometry.py,sha256=jknF4dfdxRvoYhRBCPEKyWEylgQF5H0dDjUdlv9wN5k,27171
76
+ manim/mobject/opengl/opengl_image_mobject.py,sha256=Z50cZ5IzhjxMnFwfKHr67EHX8LtGEJchJXVcS2oIWbE,2493
77
+ manim/mobject/opengl/opengl_mobject.py,sha256=3DW-7mWXobw_0RPkrW9ro_9wEAcogufHRU1EXuGMTKo,103451
78
+ manim/mobject/opengl/opengl_point_cloud_mobject.py,sha256=TyLC12LTx7F2rSPX06RlCEye4Gw_W7uX5OHDqUy4caU,6255
79
+ manim/mobject/opengl/opengl_surface.py,sha256=xkHWIhtmG4j_N61fAYqqwGbJMqdngeDvvomzjvNAbYk,16156
80
+ manim/mobject/opengl/opengl_three_dimensions.py,sha256=_MfDmxNGi6F5jgMTCwV9vHxaUAM_jnTaoELL1pv0pUU,1788
81
+ manim/mobject/opengl/opengl_vectorized_mobject.py,sha256=jyE4EhHYxq1l-Ol8yM-GXZH5kZjr6k_J-dQ77mfPvks,63504
82
+ manim/mobject/svg/__init__.py,sha256=j8-PFkUAsx4E-e7AHm3CoMjo22VlKzPORQAsyFWnSd4,130
83
+ manim/mobject/svg/brace.py,sha256=Xm3gct5bk7KaPx4EXwElBUAvX5GRXr6kR7s5xPF8c0w,13870
84
+ manim/mobject/svg/svg_mobject.py,sha256=A4SG5rW5dNhbwXwTyd8ZMXBSlujN6_TlVqb90PNKrUw,21015
85
+ manim/mobject/table.py,sha256=oleF2O2-os9CkIb_xrBN-sRJ660zAF4BaA4VVNwgqLE,41871
86
+ manim/mobject/text/__init__.py,sha256=AwHG8zeX2Hycw8oG2HacdHmhpH24QQDnHXTlAmVdgU0,188
87
+ manim/mobject/text/code_mobject.py,sha256=bcILMNPYIwgv2Dla2tgWdPasoWuxFqoZ1SHT3mt9mh0,9209
88
+ manim/mobject/text/numbers.py,sha256=qe3U9KrG-NsEnOFqNJxKMiK75awy8FTFSJJ0_eIc_pw,16921
89
+ manim/mobject/text/tex_mobject.py,sha256=kqOfJJQA7b40l1LrLinzik33XVlzj8BTPBSJHTh1qmY,18400
90
+ manim/mobject/text/text_mobject.py,sha256=MqhsUm5vNr4J70YF5aeSboyY46SNW1kHFYqZzHCXrvM,58640
91
+ manim/mobject/three_d/__init__.py,sha256=yiscdLu12eEoygyGp05V789zhouqEADin7owAkC9yU4,154
92
+ manim/mobject/three_d/polyhedra.py,sha256=qokBPa-K-Kyt-0fcFNcqFML30Yv_ykxiAkeMuimzHyc,15626
93
+ manim/mobject/three_d/three_d_utils.py,sha256=l-z9K2i6-47_1InV1CUpkA1albzTTWKv5peHkceyDG4,2099
94
+ manim/mobject/three_d/three_dimensions.py,sha256=BD1DNkGvQgK1yI5DC0fHJLbEIM-NmHRfr3lQ0dXGxys,39317
95
+ manim/mobject/types/__init__.py,sha256=H-S04JNHysKk9Obs2tctXVoTyIzDL7JnZqqHt1GuWSY,172
96
+ manim/mobject/types/image_mobject.py,sha256=AjNR9eBX37AZ0VxvgwuV-BtmGBc8zQ2cysVj7yqFcYc,12094
97
+ manim/mobject/types/point_cloud_mobject.py,sha256=_Ris2WGcOFGjA8o9mpC0cPmjkmFCu1SwQs_lI1tz8KU,13690
98
+ manim/mobject/types/vectorized_mobject.py,sha256=gUo6ssHi_wsHs35XsB3kpof76AMMamO46Q6OwUoHq0E,99934
99
+ manim/mobject/utils.py,sha256=jp5aKkECeRu_0lrIhFuW7QGP4vei3vMNolruK4ik5kQ,3273
100
+ manim/mobject/value_tracker.py,sha256=qkHdydyqjxPbbSa_RapZPw1z4h7RGyffP4IsyUPq1mo,6343
101
+ manim/mobject/vector_field.py,sha256=DbjvujEzlrvZMoYUe8n7T-z_SQ6XaXIWw0m8lmgUifk,39605
102
+ manim/opengl/__init__.py,sha256=LiMb5slAGNl-aMnkUQpelSkJLjdv79PvBf6gUcsVeeo,584
103
+ manim/plugins/__init__.py,sha256=TwJlNL7XoKkczEV2KuISM-mW8YTVngxUkWvMkYt3Lqc,396
104
+ manim/plugins/plugins_flags.py,sha256=Lzu5gHTotxWvRgDMhd8m6PS1ru5fRpzyUGklMbTT1Uk,709
105
+ manim/renderer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ manim/renderer/cairo_renderer.py,sha256=0rxsadG7TAik-gkOhk0HKG-KKm5xS8ISr9Q5JKPltps,9167
107
+ manim/renderer/opengl_renderer.py,sha256=5LAzi1EkwYhVOGKO2FaopC6laFUIpSZ1d9WAEH8FfVY,20735
108
+ manim/renderer/opengl_renderer_window.py,sha256=HajngInbCVRh83Gv1HqPC6npDZGVktPRaaP2AfB12p0,4909
109
+ manim/renderer/shader.py,sha256=TZaFhmjwPkncWxZdJrGgkgXD7LIi0Wk7j9ucEMx6Xqc,14715
110
+ manim/renderer/shader_wrapper.py,sha256=tFiJyUzbjx6g7RvgrDIYlufjab3OEV8rVDZq_ZlbKrY,5944
111
+ manim/renderer/shaders/default/frag.glsl,sha256=FEQmM7RUwcZlxPu5lkDcEXoyR2EfKjNC9hpaPce_ZBE,98
112
+ manim/renderer/shaders/default/vert.glsl,sha256=0thKIk9CzuSLGLh-6RyvFZDsnoSTpVC0v2WNjryMGIM,232
113
+ manim/renderer/shaders/design.frag,sha256=drjgYTVETgocxxw1HqCK7Dc3WPS8kYMy4jmhwRy7EDY,216
114
+ manim/renderer/shaders/design_2.frag,sha256=0TbGy2iXwHeYVaevH7q3VH0AVM54KpONdl9bW4CO1iU,961
115
+ manim/renderer/shaders/design_3.frag,sha256=UlSV0TmcuYmG5EmtNZQgU4kWo0j7neByEClwbXD0h6w,1301
116
+ manim/renderer/shaders/image/frag.glsl,sha256=UZ7Yym-2tpEnnwXpD_-SIOXqt8cNTxnCzFoUUeRyRS0,200
117
+ manim/renderer/shaders/image/vert.glsl,sha256=Hfu3lyryOu5MvS0noJYlV-0vwOG7tNUFkZKMjVfg658,459
118
+ manim/renderer/shaders/include/NOTE.md,sha256=QKht_AYgi0FgRsD1HiG-AUZZPqEAloaJK64GgkuN8mY,582
119
+ manim/renderer/shaders/include/add_light.glsl,sha256=Me-idksLiLW9ORe5mmekgak1RL3m2-J_Yftcql9nDrY,1600
120
+ manim/renderer/shaders/include/camera_uniform_declarations.glsl,sha256=--B_TrdWpq6sVs-gK7yrkJYIXmSkPE_k_27NNs6mOoE,254
121
+ manim/renderer/shaders/include/finalize_color.glsl,sha256=8CeC46PTrNA3LB4SolWw_EHdz87H4pFmm3-r5iysDz8,1864
122
+ manim/renderer/shaders/include/get_gl_Position.glsl,sha256=qaeeXlQOIBZisRC3scExg1LoFpOxHXTqbZYclIPbVac,1245
123
+ manim/renderer/shaders/include/get_rotated_surface_unit_normal_vector.glsl,sha256=76EfKsK1vwuNa7_9hgw-W_Cx3iZ3zpVY4KA6Fa69Gw0,551
124
+ manim/renderer/shaders/include/get_unit_normal.glsl,sha256=bmASU8UvsWunNcj-kdtJKjhBNLvG5pUdYn4iDOzg1Tw,773
125
+ manim/renderer/shaders/include/position_point_into_frame.glsl,sha256=4KMgtO2xlaASeR6uD2GKJMfAi7fuiYL32u_rFKtF5IE,742
126
+ manim/renderer/shaders/include/quadratic_bezier_distance.glsl,sha256=ujrpryJfKH_MY5SAd4a8T4U_ZLX1o0bBu6DdmTkOxTc,2853
127
+ manim/renderer/shaders/include/quadratic_bezier_geometry_functions.glsl,sha256=pjQQjecQOugsoZgN2cXY5HKG1uME6rJ0EDqFJgCqX7k,2747
128
+ manim/renderer/shaders/manim_coords/frag.glsl,sha256=FEQmM7RUwcZlxPu5lkDcEXoyR2EfKjNC9hpaPce_ZBE,98
129
+ manim/renderer/shaders/manim_coords/vert.glsl,sha256=GMKQNT4YTWiHaeo8Vt5YfaFqJaeukEVxz4rYM1E1fRM,287
130
+ manim/renderer/shaders/quadratic_bezier_fill/frag.glsl,sha256=YTMxssSBy9Jw4-7M55L2pX0CdUW0h9cButmIuP8X9Uw,1836
131
+ manim/renderer/shaders/quadratic_bezier_fill/geom.glsl,sha256=jKXzyZ884bdmcl0SOSHD6xiRY1Oz6OTEWAcDPXUqLrc,3544
132
+ manim/renderer/shaders/quadratic_bezier_fill/vert.glsl,sha256=ZqPIgPAO_vADjfdyurk7GFDUyv85bG0nCAyYEsK4R-c,523
133
+ manim/renderer/shaders/quadratic_bezier_stroke/frag.glsl,sha256=Y5hLAhwygRIWtS-mq2kNYFae99cxRaAOfBap4gVpt3A,2683
134
+ manim/renderer/shaders/quadratic_bezier_stroke/geom.glsl,sha256=DkQZVQiOLS_-3IW02L7shkGT4DMdEwmZ5IObW3UQipE,9059
135
+ manim/renderer/shaders/quadratic_bezier_stroke/vert.glsl,sha256=tKhrGSFDRvbzE8Tuq7HBX28Po5aBpL4Imxq2lvmas-Y,743
136
+ manim/renderer/shaders/simple_vert.glsl,sha256=TbktrXHFjx_E3hh_pIhdRB49wP0lBjwVr3pVhSM9ZBE,296
137
+ manim/renderer/shaders/surface/frag.glsl,sha256=89jqCkBp-f7ulliICIBQVD-6rlXmzLEOalSvrxbLJY4,396
138
+ manim/renderer/shaders/surface/vert.glsl,sha256=I7JTYje09VTPmkQY6aYtO8oE0FjoTBeQVUgRY6MSkDo,567
139
+ manim/renderer/shaders/test/frag.glsl,sha256=vE4h2JLaY4XKgnFLZg5x07jBnLG-Z5YyzVb189yUzsA,96
140
+ manim/renderer/shaders/test/vert.glsl,sha256=_rTflweplsaDNDY0vm70K0wUtzELbeauOS7Kx_fCc3U,152
141
+ manim/renderer/shaders/textured_surface/frag.glsl,sha256=7HHOlQC0jEN1R7N0frUpPOqSHj8PZZHaOUdsd_tfF2A,956
142
+ manim/renderer/shaders/textured_surface/vert.glsl,sha256=11ZxiIDxJiOev3LRpnhH57KKHI7jZri8egaYm9RfGt0,647
143
+ manim/renderer/shaders/true_dot/frag.glsl,sha256=IN4GuJBmwr17IBgxNg-mPzkwOEQV2ggUCSxbbMft3Ec,791
144
+ manim/renderer/shaders/true_dot/geom.glsl,sha256=Dyzn7dmICA6-zH_aNATBiq_Omt6U2UF4MBG9gstogrw,1101
145
+ manim/renderer/shaders/true_dot/vert.glsl,sha256=LUYkOS-WYj8DEb0CcyWPovslevus81-cgbspJVraY_o,362
146
+ manim/renderer/shaders/vectorized_mobject_fill/frag.glsl,sha256=UFVAChopcw4nrEUnPywV9rjFohY2_RTe3qQermGhBbo,324
147
+ manim/renderer/shaders/vectorized_mobject_fill/vert.glsl,sha256=uAvuQoulD_2nJ9JxvnutM4saFke2mTpU3c46_2ZC6lw,435
148
+ manim/renderer/shaders/vectorized_mobject_stroke/frag.glsl,sha256=Rgbdwi-UVQyTmikHYQioo8vnt9hInA4TIzebBARzoX4,2720
149
+ manim/renderer/shaders/vectorized_mobject_stroke/vert.glsl,sha256=yOKnXHyDKJ805_RveoLLVJFUXRF0HKBBRfKkjjRaebY,4430
150
+ manim/renderer/shaders/vertex_colors/frag.glsl,sha256=nGY9iyvoYy9pfjtiFDsZ1TFQsXHQ2kkz0S0Imgl2kO4,93
151
+ manim/renderer/shaders/vertex_colors/vert.glsl,sha256=I1HQwwKS0pmnfVnLAMAXsUJY4ynXf7ha3CaZuSkPshI,281
152
+ manim/renderer/vectorized_mobject_rendering.py,sha256=5JwmZKGRQEZWYIkdejbJeeKhHDzdIXwRZPnND0MXnCw,9391
153
+ manim/scene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
+ manim/scene/moving_camera_scene.py,sha256=bB25qZRefbrexoiJC_2hBVI6TsRMjtRorp7rFReUdz8,4676
155
+ manim/scene/scene.py,sha256=anMd0p2EBDrLdpMKPtO75wA5kZhuev9gbMllylOubXg,62389
156
+ manim/scene/scene_file_writer.py,sha256=6YPbtR97DaRsve_FSqJLbl8NIXofb51ko7jDPka26hY,33191
157
+ manim/scene/section.py,sha256=cVcUxrKFevQXBP_-7AU5ajiww7U0p9acaa3quTVTJ5I,3725
158
+ manim/scene/three_d_scene.py,sha256=Td13SWpP9UYIOK2Z8hMzusj8ca8jluDa1bkmPC5BaeM,19708
159
+ manim/scene/vector_space_scene.py,sha256=MEC3hkWX0DnfJ5WBsrj2IAibeKhqX8h84MuL3fGHCsc,38310
160
+ manim/scene/zoomed_scene.py,sha256=eC6WO8OYOT-V7REtUlhXdqTyI9HrdPWFOnlY90blEUA,6980
161
+ manim/templates/Axes.mtp,sha256=gfMRnB0PjXF0m6u9IcbI_pm48eDqxCkylKICWdDAP-M,313
162
+ manim/templates/Default.mtp,sha256=AHqIgMY-rjIHaeuFSgi4n2KXaLORmACjTdPhUnFgZdY,547
163
+ manim/templates/MovingCamera.mtp,sha256=NLiT2ZPutKTzt8As2gDJDqXMBNB8d-7Y3PFXS0HhMas,327
164
+ manim/templates/template.cfg,sha256=XKiKX2mMT7x_3-EiPKAhHUpuiW_K4_RU6Iu1ZYOzQzw,134
165
+ manim/typing.py,sha256=6zsFV0v_qyctYBsSHhdfktMxFqbDhz-IFF_JY41RYu4,23927
166
+ manim/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
+ manim/utils/bezier.py,sha256=gU-Fgs-O6pcbSM1d2y5IckpsJVh2aqh6kmEN5pr5KAk,69427
168
+ manim/utils/caching.py,sha256=DRIPerhO6uQ9IYruFZJZpbmxhtP_SNEDiSdtpu7Y0dg,3080
169
+ manim/utils/color/AS2700.py,sha256=n9yHPR3hU0QAO6Rmb4wpkpfBRDKCjn4c3WEUBXlovSI,8743
170
+ manim/utils/color/BS381.py,sha256=F5k21QS9Jo9LBICaLM_-fmmnROOwvWBwlYH74Kmyzrw,11050
171
+ manim/utils/color/DVIPSNAMES.py,sha256=KrK8MUAW9rS-JaOeU_TSsr86LyCTSxHDj0OgTEyYqXM,2974
172
+ manim/utils/color/SVGNAMES.py,sha256=TVzp-yCbq4u9En8A9-coDZNY86N2dofL499rYbpTQOA,5852
173
+ manim/utils/color/X11.py,sha256=6BtAZW1xwqzM2L94W_wklC6JjsEDoXqRKm0DxAgbllI,17702
174
+ manim/utils/color/XKCD.py,sha256=klGcWTU9jAKINU9Pt4GDlNZ_HmfoAhyqe_1WKMvYZus,32650
175
+ manim/utils/color/__init__.py,sha256=-d2McqwdkBR5oT46Ec7weaKeONTrszgmErNJplm_YXE,1326
176
+ manim/utils/color/core.py,sha256=LSEp3EPVN9bmBqSpwl8_e60IPplTjrJ3GTonKUGoh8k,49720
177
+ manim/utils/color/manim_colors.py,sha256=NQvfPcyicNLfAehhW-ZQiHfFLOhbcnsGwmDJ58UjtgY,6805
178
+ manim/utils/commands.py,sha256=TrxwPCKJeTbnrvNp22RN6CeN8a_xZ5NLnpASYsVOlLo,2035
179
+ manim/utils/config_ops.py,sha256=jtU3peWAeFNuiP58UIjleKLDglrRWylDNA7lMp6Ky3M,2416
180
+ manim/utils/debug.py,sha256=4frD1GvDfzJS2CTmjcHvRCSCDJV-aSREqyoLD12AxC4,2359
181
+ manim/utils/deprecation.py,sha256=6URicStT9JsPzJR2HLRsAMJycf4rIis7-geNrSclme4,16207
182
+ manim/utils/docbuild/__init__.py,sha256=QPyVFDiH3EB9j2xLO1DB2ju5JB3cCY6R9ISQzrZFFJA,437
183
+ manim/utils/docbuild/autoaliasattr_directive.py,sha256=fITlbIQThlVlv0LmMgDcchZIQpJo9YtIFE0T5cHk1So,9287
184
+ manim/utils/docbuild/autocolor_directive.py,sha256=TnNnSCRxqIAs15nbiMATI-ONGj04N1NpI-y0tZ06hNA,3210
185
+ manim/utils/docbuild/manim_directive.py,sha256=uZrL8USl5SM9owtmywSHNOEHJaGK2M-DEcQZirl5Ggw,14764
186
+ manim/utils/docbuild/module_parsing.py,sha256=bmfkoxHMkWt7A0IlXtjirnEIpCbXBvCvZwl1QzCETE0,10066
187
+ manim/utils/exceptions.py,sha256=LDOIE6Vcai4Np6y83UuMWdiSITZ43Ac5BE_jPXKFr00,308
188
+ manim/utils/family.py,sha256=W1AFiPHQrFyB6TrulYnrhHSqGiA0Etg1oDL5SuTNgoE,1256
189
+ manim/utils/family_ops.py,sha256=IBMsGlWDag89Iv9kk-zLgD3Dc_TnRGWMI1XBiUJM-PE,1765
190
+ manim/utils/file_ops.py,sha256=A9EKl_aY65qLvZer-lsIHOZ1tsdRt0wtPyaIchUgGW0,8019
191
+ manim/utils/hashing.py,sha256=PvTlyh_bjy1f_NnsjIeXF44QbfNfrO9nmEsOPZIVih8,13671
192
+ manim/utils/images.py,sha256=tm7a1RXzUE4OVHVJLEXCWUez7JHcsr_Qynbexyhew5c,1836
193
+ manim/utils/ipython_magic.py,sha256=FvwoDtMSJ-GLVqEZoxzqJ2jfaCiDWNEXRg4HiVPmm7w,7995
194
+ manim/utils/iterables.py,sha256=A3Tk_QTalxBcJ44e7OG2yWF56BuvLy4vKlOM6FmAuVo,13211
195
+ manim/utils/module_ops.py,sha256=yKhYPBPR0irCeeIk0I67kZRcLS20bbfxOW3zcvldhyk,5673
196
+ manim/utils/opengl.py,sha256=giAqO_BuwIp7NGlGoE8S6VSWUTZ9sQk9gWgx0NjxiRs,4779
197
+ manim/utils/parameter_parsing.py,sha256=rcCPBtzfIDqJsEs-xSIbLJl3waOMpDGEz2RfnCaC1ds,787
198
+ manim/utils/paths.py,sha256=awneTVI0yzyFMf27_KSMCWRsy0jJATpLVvs97RRjv2U,11364
199
+ manim/utils/polylabel.py,sha256=mExnlGC6iuZmcQR2y3__h8MHh4QabDRIbNSBne6Ap_c,5360
200
+ manim/utils/qhull.py,sha256=UFGPh9YeM59k6bsnbYU_cvZ0d255bd7G5fJk6SJZlN8,7797
201
+ manim/utils/rate_functions.py,sha256=u9DgEZ4m8fswvfFLaSX2CemxNJcSyDNagD1jNC0_Egk,13735
202
+ manim/utils/simple_functions.py,sha256=ci7o4jJms7-Ka6YJBOEdfI9Y5VafGO0wAyJjndzqGX8,3636
203
+ manim/utils/sounds.py,sha256=cc56Se02nrLgW9gT3SuVhFbWe4p1Mc7jllQ5BCs-rZA,611
204
+ manim/utils/space_ops.py,sha256=cNFyFQPINBu3isbzEpxgB3gifk2UqbmE3YP4nP00XLU,23659
205
+ manim/utils/testing/__init__.py,sha256=VGuOYWP08ZEot6AQeY9ZVcZF3G5SUO51WdD5mvG9wW4,418
206
+ manim/utils/testing/_frames_testers.py,sha256=CrC6E91Xd5r0dm2Zrwrs02SyZaeFFvZ6ePbLXdzCSnM,4038
207
+ manim/utils/testing/_show_diff.py,sha256=z1QkoAyP-esRrKOWIKK_EyNMjSYl8ZN_q8jK86dMCl0,1768
208
+ manim/utils/testing/_test_class_makers.py,sha256=xBH4OqBkpWdYUYzuPgj8OY9EU5HDvbTJ8JAzp76kOXw,2828
209
+ manim/utils/testing/config_graphical_tests_monoframe.cfg,sha256=FCf168PQDrTiwv-WurqRDyL4ndwtfBvTS9Bl23MEAyE,161
210
+ manim/utils/testing/config_graphical_tests_multiframes.cfg,sha256=bzzl4TpReJ7E4JR0OazZnXp1JFvje9rbYP5p3sDF0ys,158
211
+ manim/utils/testing/frames_comparison.py,sha256=UWqB4krPVst-Q0OpjWk46EEHGZEt7I2EwMRjyFUdj_I,10583
212
+ manim/utils/tex.py,sha256=vElzX8OVISJJFFS0bVGdWfUMRhwEdSPVNGRl5jbvQO0,6787
213
+ manim/utils/tex_file_writing.py,sha256=ZHMDGz713G2xXUNH_uhwoicKpDAwoio0dxcnsQfi2CA,11454
214
+ manim/utils/tex_templates.py,sha256=4UHeVS9ZyYVsSzZUC4FZFqW8o02IMZSF4KmgqHeZ7l4,28533
215
+ manim/utils/unit.py,sha256=-Xqt9cHeYNX2Tvzu8uXUTUMVlreBX7ygMJRt95Stddc,1053
216
+ manim-0.19.0.dist-info/LICENSE,sha256=xqki_Bz67XrA-Hqh3Hfr9aPI0czFqwHaMxU_DQE78Bk,1072
217
+ manim-0.19.0.dist-info/LICENSE.community,sha256=eOh7tki98IyCfdOYoR4py990wyA5adNzjbo-sJ1cICI,1088
218
+ manim-0.19.0.dist-info/METADATA,sha256=aOqmGIb8AFQzIJFSO_Bh7ZR_o5gtu_W3O3ey6rrk7uI,11301
219
+ manim-0.19.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
220
+ manim-0.19.0.dist-info/entry_points.txt,sha256=T_f5FcXeR4Hoz6Bf4reBBM8LzwalFtW4pXXyU7rsuo0,73
221
+ manim-0.19.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
manim/cli/new/__init__.py DELETED
File without changes