Changelog
📦 v0.10.1 Unreleased¶
- Move website to tremeschin.com domain
📦 v0.10.0 March 12, 2026¶
Changes
- Decouple the project from monorepo library
- Simplify and drop bloated
Scene.mainarguments - Replace
typerwithcycloptsfor better classes as CLI support - Overhaul, rethink, port website to zensical
- Converted FFmpeg classes from pydantic to attrs
Fixes
- Fix
turbopipe.syncshouldn't be called when disabled - Fixed FFmpeg command line interface options missing
Releases will be more frequent in the future
📦 v0.9.0 June 2, 2025¶
- Add an heuristic to use the headless context when exporting videos
- Fix progress bar creation before ffmpeg command log causing a bad line
- Fix frametimer first frame being
dt=0instead of1/fps - Rename
ShaderObjecttoShaderProgramto better reflect ModernGL - Initial ground work on better metaprogramming and include system
- Partial overhaul and simplify the
ShaderTextureclass ShaderTexture.trackis now a float ratio of the scene's resolution- Drastically improve import times and consequently CLI startup times
- Speed improvements with float64 on dynamic number and optional aux vars
- (#61) Fix many (skill issue) memory leaks:
- Use
weakref.proxy()on every module's.sceneto allow for deepergc.collect()to find circular references and clean up resources properly - Release proxy render buffers that are piped to ffmpeg when done
- Release texture objects when ShaderTexture is garbage collected
- Do not recreate imgui context on every scene init
- Use
- Base duration of the scenes are now configurable (10 seconds default)
- Throw an exception when FFmpeg process stops unexpectedly
- Fix sharing a global watchdog causing errors on many initializations
- Cleanup scheduler before module setup, fixes scene reutilization bug
- Add a new 'subsample' parameter for better downsampling of SSAA>2
- Use macros for initializing structs with fixed specification from uniforms
- Bundle the
Examplesdirectory intoResourcesfor wheel releases - Support for rendering videos "in-memory" without a named file on disk
- Refactor
ExportingHelperout ofShaderScene.main - Properly catch FFmpeg's
stderrandstdout(allows in-memory render) - Convert the project into snake case, still have my differences
📦 v0.8.0 October 27, 2024¶
- (#6) Move away from pyimgui to imgui-bundle
- Fix
Scene.tauoverlooked calculation, it was half right! - Add optional frameskipping disabling on
Scene.main - Add optional progress callback on
Scene.main - The
Camera.zoomis now the distance from the center to the top - Add
Camera.fovbound toCamera.zoom, a simple tan atan relation - Use
numpy.dtypeinstead of spaghetti methods onTexture - Add many
Scene.log_*methods for DRY 'who module's logging - Do not fit rendering resolutions every frame (slow)
- Add a
Uniformclass for convenience than the wholeVariable - Fix bug ensure the parent directory exists when exporting
- Revert
vflip's duty to FFmpeg than on the final sampling shader - Renamed
Scene.main(benchmark=)tofreewheel(exporting mode) - Internal code simplification and bug fixes