ManimCommunity / manim

A community-maintained Python framework for creating mathematical animations.
https://www.manim.community
MIT License
20.13k stars 1.49k forks source link

Error when applying a linear transformation `NoneType object is not Iterable` #1334

Closed dhruvmanila closed 2 years ago

dhruvmanila commented 3 years ago

Description of bug / unexpected behavior

I am trying to create a video to showcase a simple linear transformation using the LinearTransformationScene class but it fails. I debugged a lot and here's what I found:

class LinearTransformAnimation(LinearTransformationScene):
    def construct(self):
        self.play(Create(self.plane, run_time=3, lag_ratio=0.1))
        self.wait()
        self.apply_transposed_matrix([[1, 0], [1, 1]])
        self.wait()

Running the above code results in the error as showcased in the logs section.

Removing the self.wait() in between the creation part and applying the linear transformation does not error out but it also does not apply any linear transformation.

class LinearTransformAnimation(LinearTransformationScene):
    def construct(self):
        self.play(Create(self.plane, run_time=3, lag_ratio=0.1))
        # self.wait()
        self.apply_transposed_matrix([[1, 0], [1, 1]])
        self.wait()

Using the Scene class along with the method LinearTransformationScene.get_transposed_matrix_transformation and it works:

def get_transposed_matrix_transformation(transposed_matrix):
        """
        Returns a function corresponding to the linear
        transformation represented by the transposed
        matrix passed.

        Parameters
        ----------
        matrix : np.ndarray, list, tuple
            The matrix.
        """
        transposed_matrix = np.array(transposed_matrix)
        if transposed_matrix.shape == (2, 2):
            new_matrix = np.identity(3)
            new_matrix[:2, :2] = transposed_matrix
            transposed_matrix = new_matrix
        elif transposed_matrix.shape != (3, 3):
            raise ValueError("Matrix has bad dimensions")
        return lambda point: np.dot(point, transposed_matrix)

class LinearTransformation(Scene):
    def construct(self):
        grid = NumberPlane()
        self.add(grid)
        self.play(Create(grid, run_time=3, lag_ratio=0.1))
        self.wait()
        self.play(
            grid.animate.apply_function(
                get_transposed_matrix_transformation([[1, 0], [1, 1]])
            ),
            run_time=3,
        )
        self.wait()

Using the below code, I found out that self.moving_mobjects was being set to None as showed in the traceback, but why is that happening, that I have no idea.

class LinearTransformAnimation(LinearTransformationScene):
    def construct(self):
        console.print(self.moving_mobjects)
        self.play(Create(self.plane, run_time=3, lag_ratio=0.1))
        console.print(self.moving_mobjects)
        self.wait()
        console.print(self.moving_mobjects)
        self.apply_transposed_matrix([[1, 0], [1, 1]])
        self.wait()

Output after running the above code:

+ ❯ manim  -p -ql manim_play.py
Manim Community v0.5.0
[]        <-------------- Empty list as expected
[04/15/21 12:00:51] INFO     Animation 0 : Partial movie file written in { scene_file_writer.py:395
                             '/Users/dhruvmanilawala/playground/python/med
                             ia/videos/manim_play/480p15/partial_movie_fil
                             es/LinearTransformAnimation/3163782288_211467
                             3804_870238517.mp4'}
[
    NumberPlane(VGroup of 0 submobject, VGroup of 32 submobjects, NumberLine, NumberLine),
    VGroup(),
    VGroup(Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line,
Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line, Line,
Line, Line),
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    Line,
    NumberLine,
    NumberLine,
    VGroup(Vector, Vector),
    Vector,
    ArrowTriangleFilledTip,
    Vector,
    ArrowTriangleFilledTip
]           <------------------------ Filled with the necessary objects as expected
                    INFO     Animation 1 : Partial movie file written in { scene_file_writer.py:395
                             '/Users/dhruvmanilawala/playground/python/med
                             ia/videos/manim_play/480p15/partial_movie_fil
                             es/LinearTransformAnimation/1495979052_143840
                             5273_591707300.mp4'}
None         <---------------------------- it got set to None after applying self.wait()
Traceback (most recent call last):
...

Expected behavior

The linear transformation should take place and it should not error out. The self.moving_mobjects got reseted to None which is an unexpected behavior.

How to reproduce the issue

Code for reproducing the problem ```py class LinearTransformAnimation(LinearTransformationScene): def construct(self): self.play(Create(self.plane, run_time=3, lag_ratio=0.2)) self.wait() self.apply_transposed_matrix([[1, 0], [1, 1]]) self.wait() ```

Additional media files

Images/GIFs

Logs

Terminal output ``` + ❯ manim -v DEBUG -p -ql manim_play.py Manim Community v0.5.0 [04/15/21 12:06:20] DEBUG Hashing ... hashing.py:239 DEBUG Hashing done in 0.077425 s. hashing.py:252 DEBUG Hash generated : 3163782288_3116803332_1998279409 hashing.py:256 DEBUG List of the first few animation hashes of the cairo_renderer.py:107 scene: ['3163782288_3116803332_1998279409'] INFO Animation 0 : Partial movie file written in { scene_file_writer.py:395 '/Users/dhruvmanilawala/playground/python/med ia/videos/manim_play/480p15/partial_movie_fil es/LinearTransformAnimation/3163782288_311680 3332_1998279409.mp4'} DEBUG creating dummy animation animation.py:66 DEBUG Hashing ... hashing.py:239 DEBUG Hashing done in 0.072428 s. hashing.py:252 DEBUG Hash generated : 1495979052_1438405273_3615078467 hashing.py:256 DEBUG List of the first few animation hashes of the cairo_renderer.py:107 scene: ['3163782288_3116803332_1998279409', '1495979052_1438405273_3615078467'] INFO Animation 1 : Partial movie file written in { scene_file_writer.py:395 '/Users/dhruvmanilawala/playground/python/med ia/videos/manim_play/480p15/partial_movie_fil es/LinearTransformAnimation/1495979052_143840 5273_3615078467.mp4'} Traceback (most recent call last): ╭──────────────────────────────────────────────────────────────────────────────────────╮ │ File "/Users/dhruvmanilawala/.pyenv/versions/3.9.1/envs/python-play/lib/python3.9/sit│ │e-packages/manim/__main__.py", line 76, in main │ │ 73 for SceneClass in scene_classes_from_file(input_file): │ │ 74 try: │ │ 75 scene = SceneClass() │ │ ❱ 76 scene.render() │ │ 77 except Exception: │ │ 78 console.print_exception() │ │ 79 │ │ File "/Users/dhruvmanilawala/.pyenv/versions/3.9.1/envs/python-play/lib/python3.9/sit│ │e-packages/manim/scene/scene.py", line 183, in render │ │ 180 """ │ │ 181 self.setup() │ │ 182 try: │ │ ❱ 183 self.construct() │ │ 184 except EndSceneEarlyException: │ │ 185 pass │ │ 186 self.tear_down() │ │ File "/Users/dhruvmanilawala/playground/python/manim_play.py", line 83, in construct │ │ 80 def construct(self): │ │ 81 self.play(Create(self.plane, run_time=3, lag_ratio=0.1)) │ │ 82 self.wait() │ │ ❱ 83 self.apply_transposed_matrix([[1, 0], [1, 1]]) │ │ 84 self.wait() │ │ 85 │ │ 86 │ │ File "/Users/dhruvmanilawala/.pyenv/versions/3.9.1/envs/python-play/lib/python3.9/sit│ │e-packages/manim/scene/vector_space_scene.py", line 1027, in apply_transposed_matrix │ │ 1024 [angle_of_vector(func(RIGHT)), angle_of_vector(func(UP)) - np│ │ 1025 ) │ │ 1026 kwargs["path_arc"] = net_rotation │ │ ❱ 1027 self.apply_function(func, **kwargs) │ │ 1028 │ │ 1029 def apply_inverse_transpose(self, t_matrix, **kwargs): │ │ 1030 """ │ │ File "/Users/dhruvmanilawala/.pyenv/versions/3.9.1/envs/python-play/lib/python3.9/sit│ │e-packages/manim/scene/vector_space_scene.py", line 1090, in apply_function │ │ 1087 + [ │ │ 1088 self.get_vector_movement(function), │ │ 1089 self.get_transformable_label_movement(), │ │ ❱ 1090 self.get_moving_mobject_movement(function), │ │ 1091 ] │ │ 1092 + [Animation(f_mob) for f_mob in self.foreground_mobjects] │ │ 1093 + added_anims │ │ File "/Users/dhruvmanilawala/.pyenv/versions/3.9.1/envs/python-play/lib/python3.9/sit│ │e-packages/manim/scene/vector_space_scene.py", line 930, in │ │get_moving_mobject_movement │ │ 927 Animation │ │ 928 The animation of the movement. │ │ 929 """ │ │ ❱ 930 for m in self.moving_mobjects: │ │ 931 if m.target is None: │ │ 932 m.target = m.copy() │ │ 933 target_point = func(m.get_center()) │ ╰──────────────────────────────────────────────────────────────────────────────────────╯ TypeError: 'NoneType' object is not iterable ```

System specifications

System Details - OS (with version, e.g Windows 10 v2004 or macOS 10.15 (Catalina)): macOS 11.2.1 (Big Sur) - RAM: 16 GB - Python version (`python/py/python3 --version`): 3.9.1 - Installed modules (provide output from `pip list`): ``` Package Version ---------------------- ----------- appnope 0.1.2 argon2-cffi 20.1.0 async-generator 1.10 attrs 20.3.0 backcall 0.2.0 bleach 3.3.0 cffi 1.14.5 colorama 0.4.4 colour 0.1.5 commonmark 0.9.1 cycler 0.10.0 Cython 0.29.22 decorator 4.4.2 defusedxml 0.7.1 entrypoints 0.3 fixit 0.1.3 flake8 3.9.0 glcontext 2.3.3 ipykernel 5.5.3 ipython 7.22.0 ipython-genutils 0.2.0 jedi 0.18.0 Jinja2 2.11.3 jsonschema 3.2.0 jupyter-client 6.1.12 jupyter-console 6.4.0 jupyter-core 4.7.1 jupyterlab-pygments 0.1.2 jupyterthemes 0.20.0 kiwisolver 1.3.1 lesscpy 0.14.0 libcst 0.3.18 manim 0.5.0 manimgl 1.0.0 ManimPango 0.2.5.post0 mapbox-earcut 0.12.10 MarkupSafe 1.1.1 matplotlib 3.4.1 mccabe 0.6.1 mistune 0.8.4 moderngl 5.6.4 moderngl-window 2.3.0 mpmath 1.2.1 multipledispatch 0.6.0 mypy 0.812 mypy-extensions 0.4.3 nbclient 0.5.3 nbconvert 6.0.7 nbformat 5.1.3 nest-asyncio 1.5.1 networkx 2.5.1 notebook 6.3.0 numpy 1.20.2 packaging 20.9 pandocfilters 1.4.3 parso 0.8.2 pexpect 4.8.0 pickleshare 0.7.5 Pillow 8.2.0 pip 21.0.1 ply 3.11 progressbar 2.5 prometheus-client 0.10.1 prompt-toolkit 3.0.18 ptyprocess 0.7.0 pycairo 1.20.0 pycodestyle 2.7.0 pycparser 2.20 pydub 0.25.1 pyflakes 2.3.1 pyglet 1.5.16 Pygments 2.8.1 pyobjc-core 7.1 pyobjc-framework-Cocoa 7.1 PyOpenGL 3.1.5 pyparsing 2.4.7 pyrr 0.10.3 pyrsistent 0.17.3 python-dateutil 2.8.1 PyYAML 5.4.1 pyzmq 22.0.3 rich 6.2.0 scipy 1.6.2 screeninfo 0.6.7 Send2Trash 1.5.0 setuptools 54.1.1 six 1.15.0 sympy 1.8 terminado 0.9.4 testpath 0.4.4 tornado 6.1 tqdm 4.60.0 traitlets 5.0.5 tree-sitter 0.19.0 typed-ast 1.4.2 typing-extensions 3.7.4.3 typing-inspect 0.6.0 validators 0.18.2 wcwidth 0.2.5 webencodings 0.5.1 wheel 0.36.2 ```
LaTeX details + LaTeX distribution (e.g. TeX Live 2020): TeX Live 2021 + Installed LaTeX packages: ``` + ❯ tlmgr list --only-installed i ae: Virtual fonts for T1 encoded CMR-fonts i amscls: AMS document classes for LaTeX i amsfonts: TeX fonts from the American Mathematical Society i amsmath: AMS mathematical facilities for LaTeX i anysize: A simple package to set up document margins i arabxetex: An ArabTeX-like interface for XeLaTeX i atbegshi: Execute stuff at \shipout time i attachfile2: Attach files into PDF i attachfile2.universal-darwin: universal-darwin files of attachfile2 i atveryend: Hooks at the very end of a document i automata: Finite state machines, graphs and trees in MetaPost i auxhook: Hooks for auxiliary files i awesomebox: Draw admonition blocks in your documents, illustrated with FontAwesome i cons i babel: Multilingual support for Plain TeX or LaTeX i babel-basque: Babel contributed support for Basque i babel-czech: Babel support for Czech i babel-danish: Babel contributed support for Danish i babel-dutch: Babel contributed support for Dutch i babel-english: Babel support for English i babel-finnish: Babel support for Finnish i babel-french: Babel contributed support for French i babel-german: Babel support for documents written in German i babel-hungarian: Babel support for Hungarian (Magyar) i babel-italian: Babel support for Italian text i babel-norsk: Babel support for Norwegian i babel-polish: Babel support for Polish i babel-portuges: Babel support for Portuges i babel-spanish: Babel support for Spanish i babel-swedish: Babel support for typesetting Swedish i babelbib: Multilingual bibliographies i bbcard: Bullshit bingo, calendar and baseball-score cards i beamer: A LaTeX class for producing presentations and slides i bibtex: Process bibliographies for LaTeX, etc i bibtex.universal-darwin: universal-darwin files of bibtex i bidi-atbegshi: Bidi-aware shipout macros i bidicontour: Bidi-aware coloured contour around text i bidipagegrid: Bidi-aware page grid in background i bidipresentation: Experimental bidi presentation i bidishadowtext: Bidi-aware shadow text i bigintcalc: Integer calculations on very large numbers i bitset: Handle bit-vector datatype i blockdraw_mp: Block diagrams and bond graphs, with MetaPost i bookmark: A new bookmark (outline) organization for hyperref i booktabs: Publication quality tables in LaTeX i bpolynomial: Drawing polynomial functions of up to order 3 i breqn: Automatic line breaking of displayed equations i businesscard-qrcode: Business cards with QR-Code i caption: Customising captions in floating environments i carlisle: David Carlisle's small packages i cite: Improved citation handling in LaTeX i cm: Computer Modern fonts i cm-super: CM-Super family of fonts i cmap: Make PDF files searchable and copyable i cmarrows: MetaPost arrows and braces in the Computer Modern style i collection-basic: Essential programs and files i collection-latex: LaTeX fundamental packages i collection-latexrecommended: LaTeX recommended packages i collection-metapost: MetaPost and Metafont packages i collection-xetex: XeTeX and packages i colorprofiles: Collection of free ICC profiles i colortbl: Add colour to LaTeX tables i cqubeamer: LaTeX Beamer Template for Chongqing University i crop: Support for cropmarks i ctable: Flexible typesetting of table and figure floats using key/value directives i ctablestack: Catcode table stable support i dehyph: German hyphenation patterns for traditional orthography i doublestroke: Typeset mathematical double stroke symbols i drv: Derivation trees with MetaPost i dviincl: Include a DVI page into MetaPost output i dvipdfmx: An extended version of dvipdfm i dvipdfmx.universal-darwin: universal-darwin files of dvipdfmx i dvips: A DVI to PostScript driver i dvips.universal-darwin: universal-darwin files of dvips i dvisvgm: Convert DVI, EPS, and PDF files to Scalable Vector Graphics format (SVG) i dvisvgm.universal-darwin: universal-darwin files of dvisvgm i ec: Computer modern fonts in T1 and TS1 encodings i emp: "Encapsulate" MetaPost figures in a document i enctex: A TeX extension that translates input on its way into TeX i epsincl: Include EPS in MetaPost figures i epstopdf-pkg: Call epstopdf "on the fly" i eso-pic: Add picture commands (or backgrounds) to every page i etex: An extended version of TeX, from the NTS project i etex-pkg: E-TeX support package i etexcmds: Avoid name clashes with e-TeX commands i etoolbox: e-TeX tools for LaTeX i euenc: Unicode font encoding definitions for XeTeX i euler: Use AMS Euler fonts for math i eurosym: Metafont and macros for Euro sign i everysel: Provides hooks into \selectfont i everyshi: Take action at every \shipout i expressg: Diagrams consisting of boxes, lines, and annotations i exteps: Include EPS figures in MetaPost i extsizes: Extend the standard classes' size options i fancybox: Variants of \fbox and other games with boxes i fancyhdr: Extensive control of page headers and footers in LaTeX2e i fancyref: A LaTeX package for fancy cross-referencing i fancyvrb: Sophisticated verbatim text i featpost: MetaPost macros for 3D i feynmf: Macros and fonts for creating Feynman (and other) diagrams i feynmp-auto: Automatic processing of feynmp graphics i filehook: Hooks for input files i firstaid: First aid for external LaTeX files and packages that need updating i fix2col: Fix miscellaneous two column mode features i fixlatvian: Improve Latvian language support in XeLaTeX i fiziko: A MetaPost library for physics textbook illustrations i float: Improved interface for floating objects i font-change-xetex: Macros to change text and mathematics fonts in plain XeTeX i fontbook: Generate a font book i fontspec: Advanced font selection in XeLaTeX and LuaLaTeX i fontwrap: Bind fonts to specific unicode blocks i footnotehyper: hyperref aware footnote.sty i fp: Fixed point arithmetic i fundus-calligra: Support for the calligra font in LaTeX documents i garrigues: MetaPost macros for the reproduction of Garrigues' Easter nomogram i geometry: Flexible and complete interface to document dimensions i gettitlestring: Clean up title references i glyphlist: Adobe Glyph List and TeX extensions i gmp: Enable integration between MetaPost pictures and LaTeX i graphics: The LaTeX standard graphics bundle i graphics-cfg: Sample configuration files for LaTeX color and graphics i graphics-def: Colour and graphics option files i grfext: Manipulate the graphics package's list of extensions i grffile: Extended file name support for graphics (legacy package) i hatching: MetaPost macros for hatching interior of closed paths i hologo: A collection of logos with bookmark support i hopatch: Load patches for packages i hycolor: Implements colour for packages hyperref and bookmark i hyperref: Extensive support for hypertext in LaTeX i hyph-utf8: Hyphenation patterns expressed in UTF-8 i hyphen-base: core hyphenation support files i hyphen-basque: Basque hyphenation patterns. i hyphen-czech: Czech hyphenation patterns. i hyphen-danish: Danish hyphenation patterns. i hyphen-dutch: Dutch hyphenation patterns. i hyphen-english: English hyphenation patterns. i hyphen-finnish: Finnish hyphenation patterns. i hyphen-french: French hyphenation patterns. i hyphen-german: German hyphenation patterns. i hyphen-hungarian: Hungarian hyphenation patterns. i hyphen-italian: Italian hyphenation patterns. i hyphen-norwegian: Norwegian Bokmal and Nynorsk hyphenation patterns. i hyphen-polish: Polish hyphenation patterns. i hyphen-portuguese: Portuguese hyphenation patterns. i hyphen-spanish: Spanish hyphenation patterns. i hyphen-swedish: Swedish hyphenation patterns. i hyphenex: US English hyphenation exceptions file i ifplatform: Conditionals to test which platform is being used i iftex: Am I running under pdfTeX, XeTeX or LuaTeX? i index: Extended index for LaTeX including multiple indexes i infwarerr: Complete set of information/warning/error message macros i intcalc: Expandable arithmetic operations with integers i interchar: Managing character class schemes in XeTeX i jknapltx: Miscellaneous packages by Joerg Knappen i knuth-lib: Core TeX and Metafont sources from Knuth i knuth-local: Knuth's local information i koma-script: A bundle of versatile classes and packages i kpathsea: Path searching library for TeX-related files i kpathsea.universal-darwin: universal-darwin files of kpathsea i kvdefinekeys: Define keys for use in the kvsetkeys package i kvoptions: Key value format for package options i kvsetkeys: Key value parser with default handler support i l3backend: LaTeX3 backend drivers i l3experimental: Experimental LaTeX3 concepts i l3kernel: LaTeX3 programming conventions i l3packages: High-level LaTeX3 concepts i latex: A TeX macro package that defines LaTeX i latex-base-dev: Development pre-release of the LaTeX kernel i latex-bin: LaTeX executables and man pages i latex-bin.universal-darwin: universal-darwin files of latex-bin i latex-fonts: A collection of fonts used in LaTeX distributions i latexbug: Bug-classification for LaTeX related bugs i latexconfig: configuration files for LaTeX-related formats i latexmp: Interface for LaTeX-based typesetting in MetaPost i letltxmacro: Let assignment for LaTeX macros i lineno: Line numbers on paragraphs i listings: Typeset source code listings using LaTeX i lm: Latin modern fonts in outline formats i lm-math: OpenType maths fonts for Latin Modern i ltxcmds: Some LaTeX kernel commands for general use i ltxmisc: Miscellaneous LaTeX packages, etc i lua-alt-getopt: Process application arguments the same way as getopt_long i luahbtex: LuaTeX with HarfBuzz library for glyph shaping i luahbtex.universal-darwin: universal-darwin files of luahbtex i lualibs: Additional Lua functions for LuaTeX macro programmers i luaotfload: OpenType 'loader' for Plain TeX and LaTeX i luaotfload.universal-darwin: universal-darwin files of luaotfload i luatex: The LuaTeX engine i luatex.universal-darwin: universal-darwin files of luatex i luatexbase: Basic resource management for LuaTeX code i lwarp: Converts LaTeX to HTML i lwarp.universal-darwin: universal-darwin files of lwarp i makecmds: The new \makecommand command always (re)defines a command i makeindex: Makeindex development sources i makeindex.universal-darwin: universal-darwin files of makeindex i mathspec: Specify arbitrary fonts for mathematics in XeTeX i mathtools: Mathematical tools to use with amsmath i mcf2graph: Draw chemical structure diagrams with Metafont/MetaPost i mdwtools: Miscellaneous tools by Mark Wooding i memoir: Typeset fiction, non-fiction and mathematical books i metafont: A system for specifying fonts i metafont.universal-darwin: universal-darwin files of metafont i metago: MetaPost output of Go positions i metalogo: Extended TeX logo macros i metaobj: MetaPost package providing high-level objects i metaplot: Plot-manipulation macros for use in MetaPost i metapost: A development of Metafont for creating graphics i metapost-colorbrewer: An implementation of the colorbrewer2.org colours for MetaPost i metapost.universal-darwin: universal-darwin files of metapost i metauml: MetaPost library for typesetting UML diagrams i mflogo: LaTeX support for Metafont logo fonts i mfnfss: Packages to typeset oldgerman and pandora fonts in LaTeX i mfpic: Draw Metafont/post pictures from (La)TeX commands i mfpic4ode: Macros to draw direction fields and solutions of ODEs i mfware: Supporting tools for use with Metafont i mfware.universal-darwin: universal-darwin files of mfware i microtype: Subliminal refinements towards typographical perfection i modes: A collection of Metafont mode_def's i mp3d: 3D animations i mparrows: MetaPost module with different types of arrow heads i mpattern: Patterns in MetaPost i mpcolornames: Extend list of predefined colour names for MetaPost i mpgraphics: Process and display MetaPost figures inline i mptopdf: mpost to PDF, native MetaPost graphics inclusion i mptopdf.universal-darwin: universal-darwin files of mptopdf i mptrees: Probability trees with MetaPost i ms: Various LaTeX packages by Martin Schroder i na-position: Tables of relative positions of curves and asymptotes or tangents in Ar abic documents i natbib: Flexible bibliography support i newfloat: Define new floating environments i ntgclass: "European" versions of standard classes i oberdiek: A bundle of packages submitted by Heiko Oberdiek i pagesel: Select pages of a document for output i parskip: Layout with zero \parindent, non-zero \parskip i pdfescape: Implements pdfTeX's escape features using TeX or e-TeX i pdflscape: Make landscape pages display as landscape i pdfmanagement-testphase: LaTeX PDF management testphase bundle i pdfpages: Include PDF documents in LaTeX i pdftex: A TeX extension for direct creation of PDF i pdftex.universal-darwin: universal-darwin files of pdftex i pdftexcmds: LuaTeX support for pdfTeX utility functions i pgf: Create PostScript and PDF graphics in TeX i philokalia: A font to typeset the Philokalia Books i physics: Macros supporting the Mathematics of Physics i piechartmp: Draw pie-charts using MetaPost i plain: The Plain TeX format i polyglossia: An alternative to babel for XeLaTeX and LuaLaTeX i preview: Extract bits of a LaTeX source for output i psfrag: Replace strings in encapsulated PostScript figures i pslatex: Use PostScript fonts by default i psnfss: Font support for common PostScript fonts i pspicture: PostScript picture support i ptext: A 'lipsum' for Persian i ragged2e: Alternative versions of "ragged"-type commands i rcs: Use RCS (revision control system) tags in LaTeX documents i realscripts: Access OpenType subscript and superscript glyphs i refcount: Counter operations with label references i relsize: Set the font size relative to the current font size i repere: Diagrams for school mathematics i rerunfilecheck: Checksum based rerun checks on auxiliary files i revtex: Styles for various Physics Journals i roex: Metafont-PostScript conversions i roundrect: MetaPost macros for highly configurable rounded rectangles (optionally wi th text) i rsfs: Ralph Smith's Formal Script font i sansmath: Maths in a sans font i scheme-basic: basic scheme (plain and latex) i scheme-infraonly: infrastructure-only scheme (no TeX at all) i scheme-minimal: minimal scheme (plain only) i scheme-small: small scheme (basic + xetex, metapost, a few languages) i section: Modifying section commands in LaTeX i seminar: Make overhead slides i sepnum: Print numbers in a "friendly" format i setspace: Set space between lines i shapes: Draw polygons, reentrant stars, and fractions in circles with MetaPost i simple-resume-cv: Template for a simple resume or curriculum vitae (CV), in XeLaTeX i simple-thesis-dissertation: Template for a simple thesis or dissertation (Ph.D. or m aster's degree) or technical report, in XeLaTeX i slideshow: Generate slideshow with MetaPost i splines: MetaPost macros for drawing cubic spline interpolants i standalone: Compile TeX pictures stand-alone or as part of a document i stringenc: Converting a string between different encodings i suanpan: MetaPost macros for drawing Chinese and Japanese abaci i subfig: Figures broken into subfigures i symbol: URW "Base 35" font pack for LaTeX i synctex: engine-level feature synchronizing output and source i synctex.universal-darwin: universal-darwin files of synctex i tetragonos: Four-Corner codes of Chinese characters i tex: A sophisticated typesetting engine i tex-ini-files: Model TeX format creation files i tex.universal-darwin: universal-darwin files of tex i texlive-common: TeX Live documentation (common elements) i texlive-docindex: top-level TeX Live doc.html, etc. i texlive-en: TeX Live manual (English) i texlive-msg-translations: translations of the TeX Live installer and TeX Live Manage r i texlive-scripts: TeX Live infrastructure programs i texlive-scripts.universal-darwin: universal-darwin files of texlive-scripts i texlive.infra: basic TeX Live infrastructure i texlive.infra.universal-darwin: universal-darwin files of texlive.infra i textcase: Case conversion ignoring mathematics, etc i textpath: Setting text along a path with MetaPost i threeddice: Create images of dice with one, two, or three faces showing, using MetaP ost i thumbpdf: Thumbnails for pdfTeX and dvips/ps2pdf i thumbpdf.universal-darwin: universal-darwin files of thumbpdf i times: URW "Base 35" font pack for LaTeX i tipa: Fonts and macros for IPA phonetics characters i tlshell: GUI frontend (tcl/tk-based) for tlmgr i tlshell.universal-darwin: universal-darwin files of tlshell i tools: The LaTeX standard tools bundle i translator: Easy translation of strings in LaTeX i typehtml: Typeset HTML directly from LaTeX i ucharcat: Implementation of the (new in 2015) XeTeX \Ucharcat command in lua, for Lu aTeX i ucharclasses: Font actions in XeTeX according to what is being processed i ulem: Package for underlining i underscore: Control the behaviour of "_" in text i unicode-bidi: Experimental unicode bidi package for XeTeX i unicode-data: Unicode data and loaders for TeX i unicode-math: Unicode mathematics support for XeTeX and LuaTeX i uniquecounter: Provides unlimited unique counter i unisugar: Define syntactic sugar for Unicode LaTeX i upquote: Show "realistic" quotes in verbatim i url: Verbatim with URL-sensitive line breaks i wasy: The wasy fonts (Waldi symbol fonts) i wasysym: LaTeX support for the wasy fonts i xcolor: Driver-independent color extensions for LaTeX and pdfLaTeX i xdvi: A DVI previewer for the X Window System i xdvi.universal-darwin: universal-darwin files of xdvi i xebaposter: Create beautiful scientific Persian/Latin posters using TikZ i xechangebar: An extension of package changebar that can be used with XeLaTeX i xecjk: Support for CJK documents in XeLaTeX i xecolor: Support for color in XeLaTeX i xecyr: Using Cyrillic languages in XeTeX i xeindex: Automatic index generation for XeLaTeX i xelatex-dev: (shortdesc missing) i xelatex-dev.universal-darwin: universal-darwin files of xelatex-dev i xesearch: A string finder for XeTeX i xespotcolor: Spot colours support for XeLaTeX i xetex: An extended variant of TeX for use with Unicode sources i xetex-itrans: Itrans input maps for use with XeLaTeX i xetex-pstricks: Running PSTricks under XeTeX i xetex-tibetan: XeTeX input maps for Unicode Tibetan i xetex.universal-darwin: universal-darwin files of xetex i xetexconfig: crop.cfg for XeLaTeX i xetexfontinfo: Report font features in XeTeX i xetexko: Typeset Korean with Xe(La)TeX i xevlna: Insert non-breakable spaces using XeTeX i xkeyval: Extension of the keyval package i xltxtra: "Extras" for LaTeX users of XeTeX i xunicode: Generate Unicode characters from accented glyphs i zapfding: URW "Base 35" font pack for LaTeX i zbmath-review-template: Template for a zbMATH Open review ```
FFMPEG Output of `ffmpeg -version`: ``` + ❯ ffmpeg -version ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers built with Apple clang version 12.0.0 (clang-1200.0.32.29) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --ena ble-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-li bdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband - -enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-li bvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable -libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enab le-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-lib opencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 ```

Additional comments

dhruvmanila commented 3 years ago

So, doing a bit of digging it seems that the problem is coming from the below code where self.moving_mobjects is set to None and in my code above it was expected be a Iterable object. https://github.com/ManimCommunity/manim/blob/e032f90f8c68cad8dae4224972dd06404958b765/manim/scene/scene.py#L847

Setting it to an empty list fixes the problem but I am not sure whether that is the correct solution as I am quite unfamiliar with the code.

ad-chaos commented 2 years ago

This issue has been fixed at some point (v0.15.0). Closing.