ManimCommunity / ManimCommunity/manim
config.quality value affects renderer.time math
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
A `Wait` of 0.25s results in a `scene.renderer.time` delta of _0.2s_ when `config.quality = low_quality`.
When `config.quality` is not set resulting time delta is 0.25s.
## Expected behavior
I expect for the elapsed video time of a 0.25s wait to be 0.25s.
## How to reproduce the issue
Code for reproducing the problem
```py
from manim import *
config.quality = "low_quality"
scene = Scene()
start_time = scene.renderer.time
scene.wait(0.25)
print(scene.renderer.time - start_time)
```
On my system, the above prints "0.2". If the `config.quality` line is commented out, it prints "0.25".
## Additional media files
Images/GIFs
## Logs
Terminal output
```
PASTE HERE OR PROVIDE LINK TO https://pastebin.com/ OR SIMILAR
```
## System specifications
System Details
- OS (with version, e.g Windows 10 v2004 or macOS 10.15 (Catalina)): Big Sur 11.6.2 (20G314)
- RAM:
- Python version (`python/py/python3 --version`): 3.9.9
- Installed modules (provide output from `pip list`):
```
Package Version Editable project location
------------------------------------------------- ------------- ---------------------------
aiohttp 3.8.1
aiosignal 1.2.0
alabaster 0.7.12
apipkg 1.5
appdirs 1.4.4
appnope 0.1.2
asttokens 2.0.5
async-timeout 4.0.1
asynctest 0.13.0
attrs 21.2.0
Babel 2.9.1
backcall 0.2.0
base58 2.1.1
bitarray 1.2.2
black 21.11b1
butterfly 3.2.5
cached-property 1.5.2
cachetools 4.2.4
certifi 2021.10.8
cffi 1.14.6
chardet 4.0.0
charset-normalizer 2.0.9
click 8.0.3
click-default-group 1.2.2
cloup 0.7.1
colorama 0.4.4
colour 0.1.5
commonmark 0.9.1
cryptography 3.4.7
Cython 0.29.26
cytoolz 0.11.2
dataclassy 0.11.1
decorator 5.0.9
docutils 0.17.1
eip712 0.1.0
eth-abi 2.1.1
eth-account 0.5.6
eth-bloom 1.0.4
eth-event 1.2.3
eth-hash 0.3.2
eth-keyfile 0.5.1
eth-keys 0.3.3
eth-rlp 0.2.1
eth-tester 0.6.0b4
eth-typing 2.2.2
eth-utils 1.10.0
execnet 1.9.0
frozenlist 1.2.0
gitdb 4.0.9
GitPython 3.1.26
glcontext 2.3.4
google-api-core 2.3.2
google-auth 2.3.3
google-cloud-texttospeech 2.9.0
googleapis-common-protos 1.54.0
grpcio 1.43.0
grpcio-status 1.43.0
hexbytes 0.2.2
hypothesis 6.27.3
idna 3.3
imagesize 1.3.0
importlib-metadata 4.8.2
inflection 0.5.0
iniconfig 1.1.1
ipdb 0.13.9
ipfshttpclient 0.8.0a2
ipython 7.24.0
ipython-genutils 0.2.0
isosurfaces 0.1.0
jedi 0.18.0
Jinja2 3.0.3
jsonschema 3.2.0
lazy-object-proxy 1.6.0
lru-dict 1.1.7
manim 0.14.0
ManimPango 0.4.0.post0
mapbox-earcut 0.12.11
MarkupSafe 2.0.1
matplotlib-inline 0.1.2
mnemonic 0.20
moderngl 5.6.4
moderngl-window 2.4.1
mpmath 1.2.1
multiaddr 0.0.9
multidict 5.2.0
multipledispatch 0.6.0
mutagen 1.45.1
mypy-extensions 0.4.3
mythx-models 1.9.1
netaddr 0.8.0
networkx 2.6.3
numpy 1.22.0
packaging 21.3
parsimonious 0.8.1
parso 0.8.2
pathspec 0.9.0
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.0.0
pip 21.3.1
platformdirs 2.4.0
pluggy 1.0.0
prompt-toolkit 3.0.23
proto-plus 1.19.8
protobuf 3.19.1
psutil 5.8.0
ptyprocess 0.7.0
pudb 2021.1
py 1.11.0
py-ecc 4.1.0
py-evm 0.5.0a1
py-geth 3.7.0
py-solc-ast 1.2.9
py-solc-x 1.1.1
pyasn1 0.4.8
pyasn1-modules 0.2.8
pycairo 1.20.1
pycoin 0.91.20210515
pycparser 2.20
pycrypto 2.6.1
pycryptodome 3.12.0
pydub 0.25.1
pyethash 0.1.27
pyglet 1.5.21
Pygments 2.10.0
pygments-lexer-solidity 0.7.0
PyJWT 1.7.1
pyobjc 8.1
pyobjc-core 8.1
pyobjc-framework-Accessibility 8.1
pyobjc-framework-Accounts 8.1
pyobjc-framework-AddressBook 8.1
pyobjc-framework-AdServices 8.1
pyobjc-framework-AdSupport 8.1
pyobjc-framework-AppleScriptKit 8.1
pyobjc-framework-AppleScriptObjC 8.1
pyobjc-framework-ApplicationServices 8.1
pyobjc-framework-AppTrackingTransparency 8.1
pyobjc-framework-AudioVideoBridging 8.1
pyobjc-framework-AuthenticationServices 8.1
pyobjc-framework-AutomaticAssessmentConfiguration 8.1
pyobjc-framework-Automator 8.1
pyobjc-framework-AVFoundation 8.1
pyobjc-framework-AVKit 8.1
pyobjc-framework-BusinessChat 8.1
pyobjc-framework-CalendarStore 8.1
pyobjc-framework-CallKit 8.1
pyobjc-framework-CFNetwork 8.1
pyobjc-framework-ClassKit 8.1
pyobjc-framework-CloudKit 8.1
pyobjc-framework-Cocoa 8.1
pyobjc-framework-Collaboration 8.1
pyobjc-framework-ColorSync 8.1
pyobjc-framework-Contacts 8.1
pyobjc-framework-ContactsUI 8.1
pyobjc-framework-CoreAudio 8.1
pyobjc-framework-CoreAudioKit 8.1
pyobjc-framework-CoreBluetooth 8.1
pyobjc-framework-CoreData 8.1
pyobjc-framework-CoreHaptics 8.1
pyobjc-framework-CoreLocation 8.1
pyobjc-framework-CoreMedia 8.1
pyobjc-framework-CoreMediaIO 8.1
pyobjc-framework-CoreMIDI 8.1
pyobjc-framework-CoreML 8.1
pyobjc-framework-CoreMotion 8.1
pyobjc-framework-CoreServices 8.1
pyobjc-framework-CoreSpotlight 8.1
pyobjc-framework-CoreText 8.1
pyobjc-framework-CoreWLAN 8.1
pyobjc-framework-CryptoTokenKit 8.1
pyobjc-framework-DeviceCheck 8.1
pyobjc-framework-DictionaryServices 8.1
pyobjc-framework-DiscRecording 8.1
pyobjc-framework-DiscRecordingUI 8.1
pyobjc-framework-DiskArbitration 8.1
pyobjc-framework-DVDPlayback 8.1
pyobjc-framework-EventKit 8.1
pyobjc-framework-ExceptionHandling 8.1
pyobjc-framework-ExecutionPolicy 8.1
pyobjc-framework-ExternalAccessory 8.1
pyobjc-framework-FileProvider 8.1
pyobjc-framework-FileProviderUI 8.1
pyobjc-framework-FinderSync 8.1
pyobjc-framework-FSEvents 8.1
pyobjc-framework-GameCenter 8.1
pyobjc-framework-GameController 8.1
pyobjc-framework-GameKit 8.1
pyobjc-framework-GameplayKit 8.1
pyobjc-framework-ImageCaptureCore 8.1
pyobjc-framework-IMServicePlugIn 8.1
pyobjc-framework-InputMethodKit 8.1
pyobjc-framework-InstallerPlugins 8.1
pyobjc-framework-InstantMessage 8.1
pyobjc-framework-Intents 8.1
pyobjc-framework-IOSurface 8.1
pyobjc-framework-iTunesLibrary 8.1
pyobjc-framework-KernelManagement 8.1
pyobjc-framework-LatentSemanticMapping 8.1
pyobjc-framework-LaunchServices 8.1
pyobjc-framework-libdispatch 8.1
pyobjc-framework-LinkPresentation 8.1
pyobjc-framework-LocalAuthentication 8.1
pyobjc-framework-MapKit 8.1
pyobjc-framework-MediaAccessibility 8.1
pyobjc-framework-MediaLibrary 8.1
pyobjc-framework-MediaPlayer 8.1
pyobjc-framework-MediaToolbox 8.1
pyobjc-framework-Metal 8.1
pyobjc-framework-MetalKit 8.1
pyobjc-framework-MetalPerformanceShaders 8.1
pyobjc-framework-MetalPerformanceShadersGraph 8.1
pyobjc-framework-MLCompute 8.1
pyobjc-framework-ModelIO 8.1
pyobjc-framework-MultipeerConnectivity 8.1
pyobjc-framework-NaturalLanguage 8.1
pyobjc-framework-NetFS 8.1
pyobjc-framework-Network 8.1
pyobjc-framework-NetworkExtension 8.1
pyobjc-framework-NotificationCenter 8.1
pyobjc-framework-OpenDirectory 8.1
pyobjc-framework-OSAKit 8.1
pyobjc-framework-OSLog 8.1
pyobjc-framework-PassKit 8.1
pyobjc-framework-PencilKit 8.1
pyobjc-framework-Photos 8.1
pyobjc-framework-PhotosUI 8.1
pyobjc-framework-PreferencePanes 8.1
pyobjc-framework-PushKit 8.1
pyobjc-framework-Quartz 8.1
pyobjc-framework-QuickLookThumbnailing 8.1
pyobjc-framework-ReplayKit 8.1
pyobjc-framework-SafariServices 8.1
pyobjc-framework-SceneKit 8.1
pyobjc-framework-ScreenSaver 8.1
pyobjc-framework-ScreenTime 8.1
pyobjc-framework-ScriptingBridge 8.1
pyobjc-framework-SearchKit 8.1
pyobjc-framework-Security 8.1
pyobjc-framework-SecurityFoundation 8.1
pyobjc-framework-SecurityInterface 8.1
pyobjc-framework-ServiceManagement 8.1
pyobjc-framework-Social 8.1
pyobjc-framework-SoundAnalysis 8.1
pyobjc-framework-Speech 8.1
pyobjc-framework-SpriteKit 8.1
pyobjc-framework-StoreKit 8.1
pyobjc-framework-SyncServices 8.1
pyobjc-framework-SystemConfiguration 8.1
pyobjc-framework-SystemExtensions 8.1
pyobjc-framework-UniformTypeIdentifiers 8.1
pyobjc-framework-UserNotifications 8.1
pyobjc-framework-UserNotificationsUI 8.1
pyobjc-framework-VideoSubscriberAccount 8.1
pyobjc-framework-VideoToolbox 8.1
pyobjc-framework-Virtualization 8.1
pyobjc-framework-Vision 8.1
pyobjc-framework-WebKit 8.1
pyOpenSSL 20.0.1
pyparsing 3.0.6
PyQt5 5.15.6
PyQt5-Qt5 5.15.2
PyQt5-sip 12.9.0
pyrr 0.10.3
pyrsistent 0.18.0
pysha3 1.0.2
pytest 6.2.5
pytest-forked 1.3.0
pytest-xdist 1.34.0
python-dateutil 2.8.1
python-dotenv 0.16.0
pythx 1.6.1
pytz 2021.3
PyYAML 5.4.1
regex 2021.11.10
requests 2.26.0
rich 10.16.2
rlp 2.0.1
rsa 4.8
scipy 1.7.3
screeninfo 0.6.7
secp256k1 0.14.0
semantic-version 2.8.5
setuptools 56.0.0
six 1.16.0
skia-pathops 0.7.2
smmap 5.0.0
snowballstemmer 2.2.0
sortedcontainers 2.4.0
Sphinx 4.3.1
sphinx-rtd-theme 1.0.0
sphinxcontrib-applehelp 1.0.2
sphinxcontrib-devhelp 1.0.2
sphinxcontrib-htmlhelp 2.0.0
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 1.0.3
sphinxcontrib-serializinghtml 1.1.5
srt 3.5.0
svgwrite 1.4.1
sympy 1.9
toml 0.10.2
tomli 1.2.2
toolz 0.11.2
tornado 6.1
tqdm 4.62.3
traitlets 5.0.5
trie 2.0.0a5
typed-ast 1.5.1
typing-extensions 3.10.0.2
urllib3 1.26.7
urwid 2.1.2
varint 1.0.2
vvm 0.1.0
vyper 0.3.1
watchdog 2.1.6
wcwidth 0.2.5
websockets 9.1
wheel 0.37.0
wrapt 1.13.3
yarl 1.7.2
zipp 3.6.0
```
LaTeX details
+ LaTeX distribution (e.g. TeX Live 2020): pdfTeX 3.141592653-2.6-1.40.22 (TeX Live 2021)
+ Installed LaTeX packages:
FFMPEG
Output of `ffmpeg -version`:
```
ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers
built with Apple clang version 13.0.0 (clang-1300.0.29.3)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4.1_5 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-avresample --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
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
Reproduce the difference using Scene, Scene.wait, config.quality, and renderer.time from the issue. Trace how the low-quality setting determines the wait's elapsed time and compare it with the default configuration. Done means a 0.25s wait reports a 0.25s renderer-time delta in both cases, with a regression test covering the behavior.
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
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100