ManimCommunity / ManimCommunity/manim
Angle does not change value when line updates
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 40.9k
- Forks
- 3.1k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 25
Description
## Description of bug / unexpected behavior
When an Angle is initialized on two lines (even with `always_redraw`) and one of the lines changes the value of the angle doesn't reflect that change.
Might be a duplicate of #3698, if so, can someone please explain?
## Expected behavior
Running `angle.get_value()` should reflect the change in rotation of the lines.
## How to reproduce the issue
Code for reproducing the problem
Minimal example that just prints the angles to the console while rendering
```py
from manim import *
class Main(Scene):
def construct(self):
l1 = Line(LEFT, RIGHT)
l2 = Line(DOWN, UP)
a = always_redraw(lambda: Angle(l1, l2))
print(a.get_value())
l1.rotate(PI / 4)
print(a.get_value())
```
Example with something on the screen
```py
from manim import *
class Main(Scene):
def construct(self):
rotation = ValueTracker(0)
l1 = Line(LEFT, RIGHT)
l2 = always_redraw(lambda: Line(DOWN, UP).rotate(rotation.get_value()))
a = always_redraw(lambda: Angle(l1, l2))
text = always_redraw(lambda: Tex(str(a.get_value())).shift(2 * UP))
self.add(l1, l2, a, text)
self.play(rotation.animate.set_value(PI / 4))
self.wait()
```
## Additional media files
Images/GIFs
[a render of the second example: manim -qh main.py Main](https://github.com/user-attachments/assets/18db1071-f8d7-4589-94a4-e0273fb49b1b)
## Logs
Terminal output
```
~> manim -v DEBUG main.py
Manim Community v0.19.1
1.5707963267948966
[12/14/25 17:37:53] DEBUG Hashing ... hashing.py:360
DEBUG Hashing done in 0.018946 s. hashing.py:372
DEBUG Hash generated : hashing.py:375
3544663784_359959684_1130657173
DEBUG List of the first few animation cairo_renderer.py:103
hashes of the scene:
['3544663784_359959684_1130657173'
]
[12/14/25 17:37:55] INFO Animation 0 : Partial movie scene_file_writer.py:590
file written in
'/home/user/Projects/testing_Ma
nim/media/videos/main/1080p60/p
artial_movie_files/Main/3544663
784_359959684_1130657173.mp4'
1.5707963267948966
INFO Combining to Movie file. scene_file_writer.py:740
DEBUG Partial movie files to combine scene_file_writer.py:624
(1 files):
['/home/user/Projects/testing_M
anim/media/videos/main/1080p60/
partial_movie_files/Main/354466
3784_359959684_1130657173.mp4']
INFO scene_file_writer.py:887
File ready at
'/home/user/Projects/testing_Ma
nim/media/videos/main/1080p60/M
ain.mp4'
INFO Rendered Main scene.py:279
Played 1 animations
```
## System specifications
System Details
- OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)): Debian 6.12.57-1 (2025-11-05) x86_64 GNU/Linux
- RAM: 64 GB DDR 5
- Python version (`python/py/python3 --version`): Python 3.12.12
- I use UV for a virtual environment: uv 0.9.9
- Installed modules (provide output from `pip list`):
- I used uv pip list, as I don't have a global installation of pip
```
Package Version
----------------- -------
av 13.1.0
beautifulsoup4 4.14.3
click 8.3.1
cloup 3.0.8
decorator 5.2.1
glcontext 3.0.0
isosurfaces 0.1.2
manim 0.19.1
manimpango 0.6.1
mapbox-earcut 2.0.0
markdown-it-py 4.0.0
mdurl 0.1.2
moderngl 5.12.0
moderngl-window 3.1.1
networkx 3.6
numpy 2.3.5
pillow 12.0.0
pycairo 1.29.0
pydub 0.25.1
pyglet 2.1.11
pyglm 2.8.3
pygments 2.19.2
rich 14.2.0
scipy 1.16.3
screeninfo 0.8.1
skia-pathops 0.9.0
soupsieve 2.8
srt 3.5.3
svgelements 1.9.6
tqdm 4.67.1
typing-extensions 4.15.0
watchdog 6.0.0
```
LaTeX details
+ LaTeX distribution (e.g. TeX Live 2020): texlive-full (from the apt repos)
+ Installed LaTeX packages:
None:
```
(running on Debian, switching to user mode!)
(see /usr/share/doc/texlive-base/README.tlmgr-on-Debian.md)
TLPDB: not a directory, not loading: /home/user/texmf
tlmgr: user mode not initialized, please read the documentation!
```
## Additional comments
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Angle implementation and the always_redraw behavior used in the reproductions. Run the minimal example, then verify that get_value() changes after one of the input lines rotates and that the rendered example updates consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100