A community-maintained Python framework for creating mathematical animations.
This report presents the forensic synthetic code analysis of ManimCommunity/manim, a Python project with 39,515 GitHub stars. SynthScan v2.0 examined 96,311 lines of code across 402 source files, recording 1465 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 16.4 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1465 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_linear_transformation_scene.py | 6 | def test_ghost_vectors_len_and_types(): | CODE |
| LOW | tests/test_camera.py | 6 | def test_movingcamera_auto_zoom(): | CODE |
| LOW | tests/conftest.py | 57 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW | tests/assert_utils.py | 109 | def assert_shallow_dict_compare(a: dict, b: dict, message_start: str) -> None: | CODE |
| LOW | tests/test_code_mobject.py | 8 | def test_code_initialization_from_string(): | CODE |
| LOW | tests/test_code_mobject.py | 26 | def test_code_initialization_from_file(): | CODE |
| LOW | tests/test_code_mobject.py | 37 | def test_line_heights_initial_whitespace(): | CODE |
| LOW | tests/test_code_mobject.py | 51 | def test_code_initialization_style_correct_color(): | STRING |
| LOW | tests/test_config.py | 46 | def test_resolve_file_extensions(config, format, expected_file_extension): | CODE |
| LOW | tests/test_config.py | 77 | def test_transparent_by_background_opacity(config, dry_run): | CODE |
| LOW | tests/test_config.py | 213 | def test_dry_run_with_png_format(config, dry_run): | CODE |
| LOW | tests/test_config.py | 222 | def test_dry_run_with_png_format_skipped_animations(config, dry_run): | CODE |
| LOW | tests/test_config.py | 249 | def test_from_to_animations_only_first_animation(config): | STRING |
| LOW | tests/interface/test_commands.py | 28 | def test_manim_cfg_subcommand(): | CODE |
| LOW | tests/interface/test_commands.py | 52 | def test_manim_plugins_subcommand(): | STRING |
| LOW | tests/interface/test_commands.py | 72 | def test_manim_checkhealth_subcommand(): | STRING |
| LOW | tests/interface/test_commands.py | 84 | def test_manim_checkhealth_failing_subcommand(): | STRING |
| LOW | tests/interface/test_commands.py | 103 | def test_manim_init_subcommand(): | STRING |
| LOW | tests/test_scene_rendering/simple_scenes.py | 75 | def increment_mobject_update_count(mob, dt): | CODE |
| LOW | tests/test_scene_rendering/simple_scenes.py | 78 | def increment_scene_update_count(dt): | CODE |
| LOW | tests/test_scene_rendering/conftest.py | 46 | def force_window_config_write_to_movie(config): | CODE |
| LOW | tests/test_scene_rendering/test_file_writer.py | 150 | def test_scene_with_non_raw_or_wav_audio(config, manim_caplog): | CODE |
| LOW | tests/test_scene_rendering/test_file_writer.py | 162 | def test_unicode_partial_movie(config, tmpdir, simple_scenes_path): | CODE |
| LOW | tests/test_scene_rendering/test_play_logic.py | 45 | def test_t_values_with_skip_animations(using_temp_config, disabling_caching): | CODE |
| LOW | tests/test_scene_rendering/test_play_logic.py | 58 | def test_static_wait_detection(using_temp_config, disabling_caching): | CODE |
| LOW | tests/test_scene_rendering/test_play_logic.py | 67 | def test_non_static_wait_detection(using_temp_config, disabling_caching): | CODE |
| LOW | tests/test_scene_rendering/test_play_logic.py | 78 | def test_wait_with_stop_condition(using_temp_config, disabling_caching): | CODE |
| LOW | tests/test_scene_rendering/test_play_logic.py | 101 | def test_t_values_with_cached_data(using_temp_config): | CODE |
| LOW | tests/test_scene_rendering/test_play_logic.py | 115 | def test_t_values_save_last_frame(config, using_temp_config): | CODE |
| LOW | tests/test_scene_rendering/test_play_logic.py | 124 | def test_animate_with_changed_custom_attribute(using_temp_config): | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 23 | def test_basic_scene_with_default_values(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 119 | def test_s_flag_no_animations(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 167 | def test_s_flag_opengl_renderer(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 281 | def test_custom_output_name_gif(tmp_path, simple_scenes_path): | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 455 | def test_videos_not_created_when_png_format_set( | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 493 | def test_images_are_created_when_png_format_set( | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 520 | def test_images_are_created_when_png_format_set_for_opengl( | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 549 | def test_images_are_zero_padded_when_zero_pad_set( | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 583 | def test_images_are_zero_padded_when_zero_pad_set_for_opengl( | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 653 | def test_default_format_output_for_transparent_flag( | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 690 | def test_mov_can_be_set_as_output_format(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 724 | def test_reproducible_animation(tmp_path: Path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 795 | def test_dry_run_via_config_file_no_output(tmp_path, simple_scenes_path): | STRING |
| LOW | tests/test_scene_rendering/test_cairo_renderer.py | 24 | def test_skipping_status_with_from_to_and_up_to(using_temp_config, disabling_caching): | CODE |
| LOW | tests/test_scene_rendering/test_cairo_renderer.py | 42 | def test_when_animation_is_cached(using_temp_config): | CODE |
| LOW | tests/test_scene_rendering/test_cairo_renderer.py | 66 | def test_hash_logic_is_not_called_when_caching_is_disabled( | CODE |
| LOW | tests/test_scene_rendering/test_cairo_renderer.py | 77 | def test_hash_logic_is_called_when_caching_is_enabled(using_temp_config): | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 21 | def test_basic_scene_with_default_values(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 126 | def test_s_flag_no_animations(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 152 | def test_image_output_for_static_scene(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 177 | def test_no_image_output_with_interactive_embed( | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 207 | def test_no_default_image_output_with_non_static_scene( | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 236 | def test_image_output_for_static_scene_with_write_to_movie( | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 481 | def test_videos_not_created_when_png_format_set( | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 521 | def test_images_are_created_when_png_format_set( | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 550 | def test_images_are_zero_padded_when_zero_pad_set( | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 622 | def test_default_format_output_for_transparent_flag( | CODE |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 662 | def test_mov_can_be_set_as_output_format(tmp_path, manim_cfg_file, simple_scenes_path): | CODE |
| LOW | …/test_scene_rendering/opengl/test_play_logic_opengl.py | 42 | def test_t_values_with_skip_animations(using_temp_opengl_config, disabling_caching): | CODE |
| LOW | …/test_scene_rendering/opengl/test_play_logic_opengl.py | 55 | def test_static_wait_detection(using_temp_opengl_config, disabling_caching): | CODE |
| 526 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_ipython_magic.py | 1 | CODE | |
| LOW | tests/test_camera.py | 1 | CODE | |
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/assert_utils.py | 1 | CODE | |
| LOW | tests/test_config.py | 1 | CODE | |
| LOW | tests/template_generate_graphical_units_data.py | 1 | CODE | |
| LOW | tests/template_generate_graphical_units_data.py | 3 | CODE | |
| LOW | tests/interface/test_commands.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/infallible_scenes.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/simple_scenes.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/simple_scenes.py | 5 | CODE | |
| LOW | tests/test_scene_rendering/conftest.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/test_play_logic.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/test_caching_related.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/test_caching_related.py | 9 | CODE | |
| LOW | tests/test_scene_rendering/test_sections.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/test_cli_flags.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/test_cairo_renderer.py | 1 | CODE | |
| LOW | tests/test_scene_rendering/test_cairo_renderer.py | 7 | CODE | |
| LOW | tests/test_scene_rendering/test_cairo_renderer.py | 10 | CODE | |
| LOW | …s/test_scene_rendering/opengl/test_cli_flags_opengl.py | 1 | CODE | |
| LOW | …/test_scene_rendering/opengl/test_play_logic_opengl.py | 1 | CODE | |
| LOW | …ts/test_scene_rendering/opengl/test_opengl_renderer.py | 1 | CODE | |
| LOW | …ts/test_scene_rendering/opengl/test_opengl_renderer.py | 11 | CODE | |
| LOW | …_scene_rendering/opengl/test_caching_related_opengl.py | 1 | CODE | |
| LOW | tests/module/animation/test_transform.py | 1 | CODE | |
| LOW | tests/module/animation/test_animate.py | 1 | CODE | |
| LOW | tests/module/animation/test_animation.py | 1 | CODE | |
| LOW | tests/module/animation/test_creation.py | 1 | CODE | |
| LOW | tests/module/animation/test_composition.py | 1 | CODE | |
| LOW | tests/module/animation/test_updaters.py | 1 | CODE | |
| LOW | tests/module/animation/test_override_animation.py | 1 | CODE | |
| LOW | tests/module/utils/test_deprecation.py | 1 | CODE | |
| LOW | tests/module/utils/test_manim_color.py | 1 | CODE | |
| LOW | tests/module/utils/test_file_ops.py | 1 | CODE | |
| LOW | tests/module/utils/test_file_ops.py | 5 | CODE | |
| LOW | tests/module/utils/test_file_ops.py | 7 | CODE | |
| LOW | tests/module/utils/test_color_helpers.py | 1 | CODE | |
| LOW | tests/module/utils/test_units.py | 1 | CODE | |
| LOW | tests/module/utils/test_color.py | 1 | CODE | |
| LOW | tests/module/utils/test_hashing.py | 1 | CODE | |
| LOW | tests/module/utils/test_space_ops.py | 1 | CODE | |
| LOW | tests/module/utils/test_space_ops.py | 6 | CODE | |
| LOW | tests/module/utils/test_bezier.py | 1 | CODE | |
| LOW | tests/module/scene/test_auto_zoom.py | 1 | CODE | |
| LOW | tests/module/scene/test_auto_zoom.py | 3 | CODE | |
| LOW | tests/module/scene/test_sound.py | 1 | CODE | |
| LOW | tests/module/scene/test_scene.py | 1 | CODE | |
| LOW | tests/module/mobject/test_boolean_ops.py | 1 | CODE | |
| LOW | tests/module/mobject/test_table.py | 3 | CODE | |
| LOW | tests/module/mobject/test_matrix.py | 1 | CODE | |
| LOW | tests/module/mobject/test_value_tracker.py | 1 | CODE | |
| LOW | tests/module/mobject/test_graph.py | 1 | CODE | |
| LOW | tests/module/mobject/svg/test_svg_mobject.py | 1 | CODE | |
| LOW | tests/module/mobject/svg/test_svg_mobject.py | 3 | CODE | |
| LOW | …module/mobject/types/vectorized_mobject/test_stroke.py | 1 | CODE | |
| LOW | tests/module/mobject/graphing/test_coordinate_system.py | 1 | CODE | |
| LOW | tests/module/mobject/graphing/test_ticks.py | 1 | CODE | |
| LOW | tests/module/mobject/graphing/test_axes_shift.py | 1 | CODE | |
| LOW | tests/module/mobject/graphing/test_number_line.py | 1 | CODE | |
| 407 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_scene_rendering/simple_scenes.py | 7 | __all__ = [ | CODE |
| LOW | tests/module/mobject/geometry/test_unit_geometry.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | manim/constants.py | 14 | __all__ = [ | CODE |
| LOW | manim/typing.py | 35 | __all__ = [ | CODE |
| LOW | manim/renderer/cairo_renderer.py | 23 | __all__ = ["CairoRenderer"] | CODE |
| LOW | manim/renderer/cairo_renderer.py | 247 | def update_skipping_status(self) -> None: | CODE |
| LOW | manim/renderer/shader.py | 31 | __all__ = [ | CODE |
| LOW | manim/renderer/shader.py | 327 | def set_uniforms(self, renderer: OpenGLRenderer) -> None: | CODE |
| LOW | manim/renderer/shader.py | 421 | def set_uniform(self, name: str, value: Any) -> None: | CODE |
| LOW | manim/renderer/opengl_renderer_window.py | 15 | __all__ = ["Window"] | CODE |
| LOW | manim/renderer/vectorized_mobject_rendering.py | 20 | __all__ = [ | CODE |
| LOW | manim/renderer/shader_wrapper.py | 23 | __all__ = ["ShaderWrapper"] | CODE |
| LOW | manim/renderer/opengl_renderer.py | 65 | __all__ = ["OpenGLCamera", "OpenGLRenderer"] | CODE |
| LOW | manim/renderer/opengl_renderer.py | 786 | def update_skipping_status(self) -> None: | CODE |
| LOW | manim/renderer/opengl_renderer.py | 917 | def update_frame(self, scene: Scene) -> None: | CODE |
| LOW | manim/plugins/__init__.py | 6 | __all__ = [ | CODE |
| LOW | manim/plugins/plugins_flags.py | 10 | __all__ = ["list_plugins"] | CODE |
| LOW | manim/camera/moving_camera.py | 10 | __all__ = ["MovingCamera"] | CODE |
| LOW | manim/camera/three_d_camera.py | 5 | __all__ = ["ThreeDCamera"] | CODE |
| LOW⚡ | manim/camera/three_d_camera.py | 218 | def set_phi(self, value: float) -> None: | CODE |
| LOW⚡ | manim/camera/three_d_camera.py | 228 | def set_theta(self, value: float) -> None: | CODE |
| LOW⚡ | manim/camera/three_d_camera.py | 238 | def set_focal_distance(self, value: float) -> None: | CODE |
| LOW⚡ | manim/camera/three_d_camera.py | 248 | def set_gamma(self, value: float) -> None: | CODE |
| LOW⚡ | manim/camera/three_d_camera.py | 258 | def set_zoom(self, value: float) -> None: | CODE |
| LOW | manim/camera/multi_camera.py | 5 | __all__ = ["MultiCamera"] | CODE |
| LOW | manim/camera/multi_camera.py | 62 | def update_sub_cameras(self) -> None: | CODE |
| LOW | manim/camera/camera.py | 5 | __all__ = ["Camera", "BackgroundColoredVMobjectDisplayer"] | CODE |
| LOW | manim/camera/camera.py | 443 | def set_frame_to_background(self, background: PixelArray) -> None: | CODE |
| LOW | manim/camera/mapping_camera.py | 5 | __all__ = ["MappingCamera", "OldMultiCamera", "SplitScreenCamera"] | CODE |
| LOW | manim/animation/speedmodifier.py | 20 | __all__ = ["ChangeSpeed"] | CODE |
| LOW | manim/animation/speedmodifier.py | 282 | def update_mobjects(self, dt: float) -> None: | CODE |
| LOW | manim/animation/speedmodifier.py | 295 | def _setup_scene(self, scene) -> None: | CODE |
| LOW | manim/animation/creation.py | 60 | __all__ = [ | STRING |
| LOW | manim/animation/creation.py | 537 | def update_submobject_list(self, index: int) -> None: | STRING |
| LOW | manim/animation/creation.py | 645 | def update_submobject_list(self, index: int) -> None: | CODE |
| LOW | manim/animation/creation.py | 767 | def update_submobject_list(self, index: int) -> None: | CODE |
| LOW | manim/animation/transform_matching_parts.py | 5 | __all__ = ["TransformMatchingShapes", "TransformMatchingTex"] | CODE |
| LOW | manim/animation/numbers.py | 5 | __all__ = ["ChangingDecimal", "ChangeDecimalToValue"] | CODE |
| LOW | manim/animation/movement.py | 5 | __all__ = [ | CODE |
| LOW | manim/animation/animation.py | 14 | __all__ = ["Animation", "Wait", "Add", "override_animation"] | CODE |
| LOW | manim/animation/animation.py | 244 | def _setup_scene(self, scene: Scene) -> None: | CODE |
| LOW | manim/animation/animation.py | 289 | def update_mobjects(self, dt: float) -> None: | CODE |
| LOW | manim/animation/animation.py | 503 | def set_default(cls, **kwargs) -> None: | CODE |
| LOW | manim/animation/animation.py | 634 | def update_mobjects(self, dt: float) -> None: | STRING |
| LOW | manim/animation/animation.py | 718 | def update_mobjects(self, dt: float) -> None: | STRING |
| LOW | manim/animation/specialized.py | 3 | __all__ = ["Broadcast"] | CODE |
| LOW | manim/animation/transform.py | 5 | __all__ = [ | CODE |
| LOW | manim/animation/indication.py | 30 | __all__ = [ | CODE |
| LOW | manim/animation/composition.py | 24 | __all__ = ["AnimationGroup", "Succession", "LaggedStart", "LaggedStartMap"] | CODE |
| LOW | manim/animation/composition.py | 98 | def _setup_scene(self, scene: Scene) -> None: | CODE |
| LOW | manim/animation/composition.py | 117 | def update_mobjects(self, dt: float) -> None: | CODE |
| LOW⚡ | manim/animation/composition.py | 250 | def update_mobjects(self, dt: float) -> None: | CODE |
| LOW⚡ | manim/animation/composition.py | 254 | def _setup_scene(self, scene: Scene | None) -> None: | CODE |
| LOW⚡ | manim/animation/composition.py | 264 | def update_active_animation(self, index: int) -> None: | CODE |
| LOW | manim/animation/changing.py | 5 | __all__ = ["AnimatedBoundary", "TracedPath"] | CODE |
| LOW | manim/animation/changing.py | 67 | def update_boundary_copies(self, dt: float) -> None: | CODE |
| LOW | manim/animation/changing.py | 161 | def update_path(self, mob: Mobject, dt: float) -> None: | CODE |
| LOW | manim/animation/rotation.py | 5 | __all__ = ["Rotating", "Rotate"] | CODE |
| LOW | manim/animation/growing.py | 26 | __all__ = [ | CODE |
| LOW | manim/animation/fading.py | 17 | __all__ = [ | CODE |
| 138 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 76 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 111 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 122 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 124 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 146 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 165 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 167 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 183 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 185 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 200 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 202 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/utils/test_color_helpers.py | 241 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/module/utils/test_color_helpers.py | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/module/utils/test_color_helpers.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/mobject/text/test_texmobject.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/module/mobject/text/test_texmobject.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | manim/utils/tex_templates.py | 153 | # ----------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/release.py | 42 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 44 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 58 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 60 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 177 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 179 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 213 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 215 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 289 | # ============================================================================= | STRING |
| MEDIUM | scripts/release.py | 291 | # ============================================================================= | STRING |
| MEDIUM | scripts/release.py | 326 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 328 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 534 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/release.py | 536 | # ============================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manim/renderer/shader.py | 380 | CODE | |
| LOW | manim/renderer/opengl_renderer_window.py | 115 | CODE | |
| LOW | manim/utils/deprecation.py | 264 | CODE | |
| LOW | manim/utils/deprecation.py | 481 | CODE | |
| LOW | manim/utils/bezier.py | 716 | CODE | |
| LOW | manim/utils/bezier.py | 1967 | CODE | |
| LOW | manim/utils/file_ops.py | 195 | CODE | |
| LOW | manim/utils/qhull.py | 178 | CODE | |
| LOW | manim/utils/hashing.py | 177 | CODE | |
| LOW | manim/utils/tex_file_writing.py | 118 | CODE | |
| LOW | manim/utils/color/core.py | 163 | CODE | |
| LOW | manim/utils/docbuild/autoaliasattr_directive.py | 100 | CODE | |
| LOW | manim/utils/docbuild/module_parsing.py | 62 | CODE | |
| LOW | manim/cli/init/commands.py | 100 | CODE | |
| LOW | manim/cli/render/commands.py | 71 | CODE | |
| LOW | manim/cli/cfg/group.py | 167 | CODE | |
| LOW | manim/scene/three_d_scene.py | 211 | CODE | |
| LOW | manim/scene/scene_file_writer.py | 627 | CODE | |
| LOW | manim/scene/scene_file_writer.py | 733 | CODE | |
| LOW | manim/scene/scene.py | 1386 | CODE | |
| LOW | manim/scene/scene.py | 1496 | CODE | |
| LOW | manim/scene/scene.py | 1620 | CODE | |
| LOW | manim/mobject/vector_field.py | 726 | CODE | |
| LOW | manim/mobject/graph.py | 319 | CODE | |
| LOW | manim/mobject/svg/svg_mobject.py | 264 | CODE | |
| LOW | manim/mobject/svg/svg_mobject.py | 322 | CODE | |
| LOW | manim/mobject/svg/svg_mobject.py | 561 | CODE | |
| LOW | manim/mobject/types/vectorized_mobject.py | 2181 | CODE | |
| LOW | manim/mobject/types/vectorized_mobject.py | 2857 | CODE | |
| LOW | manim/mobject/three_d/three_dimensions.py | 234 | CODE | |
| LOW | manim/mobject/three_d/polyhedra.py | 429 | CODE | |
| LOW | manim/mobject/graphing/number_line.py | 568 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 640 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 1189 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 3214 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 3334 | CODE | |
| LOW | manim/mobject/geometry/boolean_ops.py | 63 | CODE | |
| LOW | manim/mobject/geometry/boolean_ops.py | 112 | CODE | |
| LOW | manim/mobject/text/text_mobject.py | 179 | CODE | |
| LOW | manim/mobject/text/text_mobject.py | 425 | CODE | |
| LOW | manim/mobject/text/text_mobject.py | 732 | CODE | |
| LOW | manim/mobject/text/text_mobject.py | 1145 | CODE | |
| LOW | manim/mobject/text/typst_mobject.py | 688 | CODE | |
| LOW | manim/mobject/text/tex_mobject.py | 351 | CODE | |
| LOW | manim/mobject/text/tex_mobject.py | 465 | CODE | |
| LOW | manim/mobject/text/code_mobject.py | 124 | CODE | |
| LOW | manim/mobject/opengl/opengl_surface.py | 298 | CODE | |
| LOW | manim/mobject/opengl/opengl_mobject.py | 2590 | CODE | |
| LOW | manim/mobject/opengl/opengl_vectorized_mobject.py | 626 | CODE | |
| LOW | .github/scripts/ci_build_cairo.py | 112 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manim/renderer/opengl_renderer.py | 95 | CODE | |
| LOW | manim/camera/three_d_camera.py | 40 | CODE | |
| LOW | manim/camera/camera.py | 83 | CODE | |
| LOW | manim/animation/creation.py | 606 | CODE | |
| LOW | manim/animation/animation.py | 128 | CODE | |
| LOW | manim/animation/specialized.py | 52 | CODE | |
| LOW | manim/animation/indication.py | 613 | CODE | |
| LOW | manim/utils/bezier.py | 2050 | CODE | |
| LOW | manim/utils/config_ops.py | 72 | CODE | |
| LOW | manim/scene/zoomed_scene.py | 76 | CODE | |
| LOW | manim/scene/vector_space_scene.py | 642 | CODE | |
| LOW | manim/mobject/matrix.py | 165 | CODE | |
| LOW | manim/mobject/vector_field.py | 552 | CODE | |
| LOW | manim/mobject/vector_field.py | 726 | CODE | |
| LOW | manim/mobject/graph.py | 563 | CODE | |
| LOW | manim/mobject/table.py | 189 | CODE | |
| LOW | manim/mobject/mobject.py | 2608 | CODE | |
| LOW | manim/mobject/svg/svg_mobject.py | 97 | CODE | |
| LOW | manim/mobject/types/vectorized_mobject.py | 109 | CODE | |
| LOW | manim/mobject/types/vectorized_mobject.py | 396 | CODE | |
| LOW | manim/mobject/three_d/three_dimensions.py | 113 | CODE | |
| LOW | manim/mobject/graphing/number_line.py | 141 | CODE | |
| LOW | manim/mobject/graphing/probability.py | 269 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 1189 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 1612 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 1931 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 2446 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 2761 | CODE | |
| LOW | manim/mobject/graphing/coordinate_systems.py | 3032 | CODE | |
| LOW | manim/mobject/graphing/scale.py | 173 | CODE | |
| LOW | manim/mobject/geometry/line.py | 977 | CODE | |
| LOW | manim/mobject/text/text_mobject.py | 425 | CODE | |
| LOW | manim/mobject/text/text_mobject.py | 1145 | CODE | |
| LOW | manim/mobject/text/typst_mobject.py | 218 | CODE | |
| LOW | manim/mobject/text/numbers.py | 83 | CODE | |
| LOW | manim/mobject/text/tex_mobject.py | 57 | CODE | |
| LOW | manim/mobject/text/tex_mobject.py | 133 | CODE | |
| LOW | manim/mobject/text/code_mobject.py | 124 | CODE | |
| LOW | manim/mobject/opengl/opengl_geometry.py | 662 | CODE | |
| LOW | manim/mobject/opengl/opengl_surface.py | 68 | CODE | |
| LOW | manim/mobject/opengl/opengl_mobject.py | 152 | CODE | |
| LOW | manim/mobject/opengl/opengl_mobject.py | 1065 | CODE | |
| LOW | manim/mobject/opengl/opengl_vectorized_mobject.py | 95 | CODE | |
| LOW | manim/mobject/opengl/opengl_vectorized_mobject.py | 295 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/module/animation/test_updaters.py | 9 | # Create a simple mobject and animation | COMMENT |
| MEDIUM | tests/module/mobject/mobject/test_mobject.py | 252 | # Define a rotation matrix (90 degrees rotation around z-axis) | COMMENT |
| MEDIUM | tests/test_logging/basic_scenes_write_stuff.py | 5 | # This module is used in the CLI tests in tests_CLi.py. | COMMENT |
| MEDIUM | tests/test_logging/basic_scenes_square_to_circle.py | 5 | # This module is used in the CLI tests in tests_CLi.py. | COMMENT |
| MEDIUM | tests/test_logging/basic_scenes_error.py | 5 | # This module is intended to raise an error. | COMMENT |
| MEDIUM | manim/renderer/cairo_renderer.py | 248 | """This method is used internally to check if the current | STRING |
| MEDIUM | manim/utils/hashing.py | 178 | """This method is used to serialize objects to JSON format. | STRING |
| MEDIUM | manim/utils/color/core.py | 273 | """This function is used as a proxy for constructing a color with an internal | STRING |
| MEDIUM | manim/utils/color/core.py | 785 | """This method is intended to be overwritten by custom color space classes | STRING |
| MEDIUM | manim/utils/color/core.py | 961 | """This method is currently not implemented. Refer to :func:`color_gradient` for | STRING |
| MEDIUM | manim/utils/testing/frames_comparison.py | 252 | # Create the directory if not existing. | COMMENT |
| MEDIUM | manim/scene/zoomed_scene.py | 111 | """This method is used internally by Manim to | STRING |
| MEDIUM | manim/scene/zoomed_scene.py | 140 | """This method is used to activate the zooming for the zoomed_camera. | STRING |
| MEDIUM | manim/scene/scene_file_writer.py | 640 | fp.write("# This file is used internally by FFMPEG.\n") | CODE |
| MEDIUM | manim/mobject/graph.py | 332 | # The following code is SageMath's tree layout implementation, taken from | COMMENT |
| MEDIUM | manim/mobject/svg/svg_mobject.py | 201 | # Create a temporary svg file to dump modified svg to be parsed | COMMENT |
| MEDIUM | manim/mobject/types/vectorized_mobject.py | 1795 | # Create a null path at the very end | STRING |
| MEDIUM | manim/mobject/opengl/opengl_vectorized_mobject.py | 1229 | # Create a null path at the very end | COMMENT |
| MEDIUM | example_scenes/customtex.py | 25 | # Create a new template | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 19 | except Exception as e: | CODE |
| MEDIUM | tests/conftest.py | 14 | def pytest_report_header(config): | CODE |
| LOW | agents/typst_selector.md | 189 | except Exception: | CODE |
| LOW | manim/renderer/opengl_renderer.py | 551 | except Exception: | CODE |
| LOW | manim/utils/module_ops.py | 43 | except Exception as e: | CODE |
| LOW | manim/utils/testing/frames_comparison.py | 123 | except Exception: | CODE |
| LOW | manim/utils/docbuild/manim_directive.py | 310 | except Exception as e: | STRING |
| LOW | manim/cli/render/render_options.py | 54 | except Exception: | CODE |
| LOW | manim/cli/render/render_options.py | 59 | except Exception: | CODE |
| LOW | manim/cli/render/render_options.py | 98 | except Exception: | CODE |
| LOW | manim/cli/render/global_options.py | 49 | except Exception: | CODE |
| LOW | manim/cli/render/commands.py | 117 | except Exception: | CODE |
| LOW | manim/cli/render/commands.py | 126 | except Exception: | CODE |
| LOW | manim/cli/render/commands.py | 149 | except Exception: | CODE |
| LOW | manim/scene/three_d_scene.py | 137 | except Exception as e: | CODE |
| LOW | manim/scene/three_d_scene.py | 155 | except Exception as e: | CODE |
| LOW | manim/mobject/svg/svg_mobject.py | 287 | except Exception: | CODE |
| LOW | manim/mobject/svg/svg_mobject.py | 317 | except Exception as e: | CODE |
| LOW | manim/mobject/geometry/arc.py | 425 | except Exception: | STRING |
| LOW | manim/_config/utils.py | 810 | except Exception: | CODE |
| LOW | .github/scripts/ci_build_cairo.py | 160 | except Exception: | CODE |
| LOW | example_scenes/advanced_tex_fonts.py | 130 | except Exception: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/module/mobject/text/test_numbers.py | 0 | test that scale produces the same results as .scale() | STRING |
| HIGH | tests/module/mobject/text/test_texmobject.py | 0 | test that scale produces the same results as .scale() | STRING |
| HIGH | tests/opengl/test_texmobject_opengl.py | 0 | test that scale produces the same results as .scale() | STRING |
| HIGH | tests/opengl/test_numbers_opengl.py | 0 | test that scale produces the same results as .scale() | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | manim/scene/scene_file_writer.py | 693 | graph.push(frame) | CODE |
| HIGH | manim/scene/scene_file_writer.py | 695 | graph.push(None) # EOF: https://github.com/PyAV-Org/PyAV/issues/886. | CODE |
| HIGH | manim/mobject/vector_field.py | 882 | If undefined, it will be selected so that the total animation length is 1.5 times the run time of each strea | STRING |
| HIGH | manim/mobject/vector_field.py | 885 | If undefined, the virtual time of the stream lines is used as run time. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mypy.ini | 21 | # | COMMENT |
| LOW | mypy.ini | 41 | # allow_redefinition = False | COMMENT |
| LOW | manim/animation/indication.py | 421 | # their amplitudes in opposing directions (first ripple from 0 to 1 to 0, | COMMENT |
| LOW | manim/utils/bezier.py | 361 | COMMENT | |
| LOW | manim/utils/bezier.py | 981 | current_number_of_curves, nppc, dim = bezier_tuples.shape | COMMENT |
| LOW | manim/utils/tex_templates.py | 81 | """An instance of a simple TeX template with only basic AMS packages loaded""" | COMMENT |
| LOW | manim/utils/tex_templates.py | 101 | # american_typewriter : "American Typewriter" | COMMENT |
| LOW | manim/utils/tex_templates.py | 121 | # ecf_webster : "ECF Webster (with TX fonts)" | COMMENT |
| LOW | manim/utils/tex_templates.py | 141 | # palatino : "Palatino (Symbol Greek)" | COMMENT |
| LOW | manim/mobject/graphing/coordinate_systems.py | 2161 | # If there's a single coord (coords = [[x y z]]), extract it so that | COMMENT |
| LOW | manim/_config/default.cfg | 1 | # manim.cfg | COMMENT |
| LOW | example_scenes/opengl.py | 421 | self.play(circle.animate.shift(2 * RIGHT).scale(0.25)) | COMMENT |
| LOW | example_scenes/opengl.py | 441 | COMMENT | |
| LOW | example_scenes/basic.py | 1 | #!/usr/bin/env python | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manim/utils/space_ops.py | 432 | # If it's also too aligned to the Z axis, just return DOWN | COMMENT |
| MEDIUM | manim/utils/space_ops.py | 763 | # Closest point of the detached rings to the aforementioned | COMMENT |
| LOW | manim/utils/hashing.py | 133 | # types. Hence, we simply return the object. | COMMENT |
| LOW | manim/mobject/mobject.py | 3061 | # If empty, simply add n point mobjects | COMMENT |
| LOW | manim/mobject/mobject.py | 3460 | # just return a function that will add the updater | COMMENT |
| LOW | manim/mobject/types/vectorized_mobject.py | 1026 | # TODO remove the value error and just add two parameters with one optional | STRING |
| LOW | manim/mobject/opengl/opengl_mobject.py | 2640 | # If empty, simply add n point mobjects | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | docs/source/_static/manim-binder.min.js | 2 | (()=>{var __webpack_modules__={5067:(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActivityMo | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agents/typst_selector.md | 181 | ### Step 1: Extend `SVGMobject.get_mobjects_from()` to Track Labels | COMMENT |
| LOW | agents/typst_selector.md | 201 | ### Step 2: Pre-Processing `{{ ... }}` in Typst Source | COMMENT |
| LOW | agents/typst_selector.md | 218 | ### Step 4: Compatibility with `TransformMatchingTex` (future) | COMMENT |
| LOW | docs/source/installation/uv.md | 57 | ### Step 1: Installing Python | COMMENT |
| LOW | docs/source/installation/uv.md | 138 | ### Step 3: Installing Manim | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manim/renderer/shader_wrapper.py | 33 | # Check if what was passed in is already a valid path to a file | COMMENT |
| LOW | manim/utils/deprecation.py | 429 | # Check if decorator is used without parenthesis | COMMENT |
| LOW | manim/utils/docbuild/module_parsing.py | 162 | # Check if this node is a TypeAlias (type <name> = <value>) | COMMENT |
| LOW | manim/utils/docbuild/module_parsing.py | 203 | # Check if it is a typing.TypeVar (<target> = TypeVar(...)). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manim/mobject/text/text_mobject.py | 1110 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | CODE |
| LOW | manim/mobject/text/text_mobject.py | 1110 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | CODE |
| LOW | docs/source/_static/manim-binder.min.js | 2 | (()=>{var __webpack_modules__={5067:(e,t,i)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActivityMo | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manim/utils/tex_templates.py | 87 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manim/utils/color/core.py | 964 | # TODO: implement proper gradient, research good implementation for this or look at 3b1b implementation | COMMENT |