‹‹‹ Blog Overview

'bewegung' 0.0.6 released
A versatile video renderer

0.0.6 release of bewegung, a versatile video renderer and pleiszenburg.de open source project. Major overhaul of linear algebra functionality, better package structure and a test suite.

  • Python
  • Python Package
  • Release
  • animated-gif
  • animation
  • animation-framework
  • compositor
  • h264
  • renderer
  • rendering
  • rendering-engine
  • scientific-visualization
  • video
  • visualization


bewegung is a versatile video renderer, primarily targeting scientific visualizations of large quantities of data. Its core concepts are sequences and layers. Sequences describe a certain time span within a video and can overlap. Each sequence can hold multiple layers. Layers can be generated with cairo, Pillow, datashader, matplotlib and bewegung's internal drawing system DrawingBoard. Final compositing of every video frame and video effects are implemented via Pillow. Video encoding is handled by ffmpeg. bewegung also includes a simple vector algebra system and a "camera" for 3D to 2D projections. bewegung is developed with ease of use, compute time and memory efficiency in mind.


  • FEATURE: All vector and vector array classes expose ndim, number of dimensions.
  • FEATURE: Common base class, Vector, for all vector classes.
  • FEATURE: Common base class, VectorArray, for all vector array classes.
  • FEATURE: Vector arrays are iterators.
  • FEATURE: Added missing right-hand-side operators to Vector and VectorArray classes.
  • FEATURE: Tuple export of VectorArray types can optionally provide direct access to underlying ndarrays, i.e. new copy parameter can be set to False.
  • FEATURE: 3D vectors and vector arrays can export geographic coordinates.
  • FEATURE: The Color class, using RGBA internally, can now import HSV values.
  • FEATURE: Added equality check, "is close" check, tuple export and copy to Matrix.
  • FEATURE: Added new MatrixArray class.
  • FEATURE: New dedicated sub-module for core animation engine named bewegung.animation.
  • FEATURE: New dedicated sub-module for DrawingBoard named bewegung.drawingboard, now allowing direct import.
  • FEATURE: New dedicated sub-module for linear algebra named bewegung.lingalg.
  • FEATURE: All linear algebra classes have consistent dtype and error handling.
  • FEATURE: Cleanup of internal type hierarchy.
  • FEATURE: Added test suite with some initial tests, based on pytest, hypothesis and coverage.
  • API CHANGE: Vector array method update_from_vector renamed to update_from_vectorarray.
  • API CHANGE: Vector2Ddist and VectorArray2Ddist removed in favor of meta data dictionaries within all vector, vector array, matrix and matrix array classes.
  • FIX: Development dependency switched from unmaintained python-language-server to maintained fork python-lsp-server.
  • FIX: Imports in contrib were broken.
  • FIX: test target in makefile was broken.
  • FIX: typeguard was not really an optional dependency.


Installation instructions are available on Github.

Further Information

‹‹‹ Blog Overview