Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Line and subclasses fail to render when given both a buff and path_arc in v0.19.0 #4132

Open
overegneered opened this issue Jan 22, 2025 · 2 comments

Comments

@overegneered
Copy link

Description of bug / unexpected behavior

Upon upgrading from v0.18.1 to v0.19.0, Line and its subclases no longer display when they have a both a non-zero buff and non-zero path_arc.

Expected behavior

Line should display bent with a buff to its ends.

How to reproduce the issue

Code for reproducing the problem
class ArrowTest(Scene):
    def construct(self):
        l = Line(
            LEFT,
            RIGHT,
            path_arc=60*DEGREES,
            buff=SMALL_BUFF,
        )
        self.add(Dot(LEFT), Dot(RIGHT), l)

Additional media files

Images/GIFs

Image

Logs

Terminal output
Manim Community v0.19.0

[01/22/25 12:15:55] INFO                                                                                                                                  scene_file_writer.py:886
                             File ready at '/Users/[REDACTED]/dev/manim/manim-eng/media/images/scene/ArrowTest_ManimCE_v0.19.0.png'                                                
                                                                                                                                                                                  
                    INFO     Rendered ArrowTest                                                                                                                       scene.py:255
                             Played 0 animations                                                                                                                                  
                    INFO     Previewed File at: '/Users/[REDACTED]/dev/manim/manim-eng/media/images/scene/ArrowTest_ManimCE_v0.19.0.png'                            file_ops.py:237

System specifications

System Details
  • OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)): macOS 15.2 (Sequoia)
  • RAM: 32 GB
  • Python version (python/py/python3 --version): 3.11.9
  • Installed modules (provide output from pip list): (note: this is actually output from poetry show, as I am in a Poetry-managed environment)
alabaster                     1.0.0       A light, configurable Sphinx theme
anyio                         4.8.0       High level compatibility layer for multiple asynchronous event loop implementations
av                            13.1.0      Pythonic bindings for FFmpeg's libraries.
babel                         2.16.0      Internationalization utilities
beautifulsoup4                4.12.3      Screen-scraping library
certifi                       2024.12.14  Python package for providing Mozilla's CA Bundle.
cfgv                          3.4.0       Validate configuration and produce human readable error messages.
charset-normalizer            3.4.1       The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
click                         8.1.8       Composable command line interface toolkit
cloup                         3.0.5       Adds features to Click: option groups, constraints, subcommand sections and help themes.
colorama                      0.4.6       Cross-platform colored terminal text.
cython                        3.0.11      The Cython compiler for writing C extensions in the Python language.
decorator                     5.1.1       Decorators for Humans
distlib                       0.3.9       Distribution utilities
docutils                      0.21.2      Docutils -- Python Documentation Utilities
filelock                      3.17.0      A platform independent file lock.
furo                          2024.8.6    A clean customisable Sphinx documentation theme.
glcontext                     3.0.0       Portable Headless OpenGL Context
h11                           0.14.0      A pure-Python, bring-your-own-I/O implementation of HTTP/1.1
identify                      2.6.6       File identification library for Python
idna                          3.10        Internationalized Domain Names in Applications (IDNA)
imagesize                     1.4.1       Getting image size from png/jpeg/jpeg2000/gif file
iniconfig                     2.0.0       brain-dead simple config-ini parsing
isosurfaces                   0.1.2       Construct isolines/isosurfaces over a 2D/3D scalar field defined by a function (not a uniform grid)
jinja2                        3.1.5       A very fast and expressive template engine.
manim                         0.19.0      Animation engine for explanatory math videos.
manimpango                    0.6.0       Bindings for Pango for using with Manim.
mapbox-earcut                 1.0.3       Python bindings for the mapbox earcut C++ polygon triangulation library
markdown-it-py                3.0.0       Python port of markdown-it. Markdown parsing, done right!
markupsafe                    3.0.2       Safely add untrusted strings to HTML/XML markup.
mdurl                         0.1.2       Markdown URL utilities
moderngl                      5.12.0      ModernGL: High performance rendering for Python 3
moderngl-window               3.1.1       A cross platform helper library for ModernGL making window creation and resource loading simple
mypy                          1.14.1      Optional static typing for Python
mypy-extensions               1.0.0       Type system extensions for programs checked with the mypy type checker.
networkx                      3.4.2       Python package for creating and manipulating graphs and networks
nodeenv                       1.9.1       Node.js virtual environment builder
numpy                         2.2.2       Fundamental package for array computing in Python
packaging                     24.2        Core utilities for Python packages
pillow                        11.1.0      Python Imaging Library (Fork)
platformdirs                  4.3.6       A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.
pluggy                        1.5.0       plugin and hook calling mechanisms for python
pre-commit                    3.8.0       A framework for managing and maintaining multi-language pre-commit hooks.
pycairo                       1.27.0      Python interface for cairo
pydub                         0.25.1      Manipulate audio with an simple and easy high level interface
pyglet                        2.1.1       pyglet is a cross-platform games and multimedia package.
pyglm                         2.7.3       OpenGL Mathematics library for Python
pygments                      2.19.1      Pygments is a syntax highlighting package written in Python.
pyobjc-core                   11.0        Python<->ObjC Interoperability Module
pyobjc-framework-cocoa        11.0        Wrappers for the Cocoa frameworks on macOS
pytest                        8.3.4       pytest: simple powerful testing with Python
pyyaml                        6.0.2       YAML parser and emitter for Python
requests                      2.32.3      Python HTTP for Humans.
rich                          13.9.4      Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal
ruff                          0.5.7       An extremely fast Python linter and code formatter, written in Rust.
scipy                         1.15.1      Fundamental algorithms for scientific computing in Python
screeninfo                    0.8.1       Fetch location and size of physical screens.
skia-pathops                  0.8.0.post2 Python access to operations on paths using the Skia library
sniffio                       1.3.1       Sniff out which async library your code is running under
snowballstemmer               2.2.0       This package provides 29 stemmers for 28 languages generated from Snowball algorithms.
soupsieve                     2.6         A modern CSS selector implementation for Beautiful Soup.
sphinx                        8.1.3       Python documentation generator
sphinx-autobuild              2024.10.3   Rebuild Sphinx documentation on changes, with hot reloading in the browser.
sphinx-basic-ng               1.0.0b2     A modern skeleton for Sphinx themes.
sphinxcontrib-applehelp       2.0.0       sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books
sphinxcontrib-devhelp         2.0.0       sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents
sphinxcontrib-htmlhelp        2.1.0       sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files
sphinxcontrib-jsmath          1.0.1       A sphinx extension which renders display math in HTML via JavaScript
sphinxcontrib-qthelp          2.0.0       sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents
sphinxcontrib-serializinghtml 2.0.0       sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle)
srt                           3.5.3       A tiny library for parsing, modifying, and composing SRT files.
starlette                     0.45.2      The little ASGI library that shines.
svgelements                   1.9.6       Svg Elements Parsing
tqdm                          4.67.1      Fast, Extensible Progress Meter
typing-extensions             4.12.2      Backported and Experimental Type Hints for Python 3.8+
urllib3                       2.3.0       HTTP library with thread-safe connection pooling, file post, and more.
uvicorn                       0.34.0      The lightning-fast ASGI server.
virtualenv                    20.29.1     Virtual Python Environment builder
watchdog                      6.0.0       Filesystem events monitoring
watchfiles                    1.0.4       Simple, modern and high performance file watching and code reload in python.
websockets                    14.2        An implementation of the WebSocket Protocol (RFC 6455 & 7692)

LaTeX details
  • LaTeX distribution (e.g. TeX Live 2020): MacTeX 2024.0312
  • Installed LaTeX packages: excluded as it overflowed the character limit and this issue is not related to LaTeX

Additional comments

This was not an issue in v0.18.1

@Dabada
Copy link

Dabada commented Feb 8, 2025

Same here

@uwezi
Copy link
Contributor

uwezi commented Feb 8, 2025

Interesting - I never knew a Line could do this, but indeed, this is the output from ManimCE 0.18.1

Image

overegneered added a commit to overegneered/manim-eng that referenced this issue Feb 11, 2025
See ManimCommunity/manim#4132 for details of issue. Workaround manually calculates end points for a buff to avoid passing a buff to `Arrow`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants