Skip to content

iceberg 0.1.1

Latest
Compare
Choose a tag to compare
@revalo revalo released this 19 Nov 09:40
· 31 commits to main since this release

Fairly big release as the library matures. Contains a major overhaul of how iceberg modules are defined, very much inspired by flax's nn.Module. Also contains a lot of changes for ease of use during my months using it.

Major Changes

  • All drawables are now dataclasses. This ensures that iceberg can automatically create new instances of objects in a predictable way. This makes it automatic to do animations. Iceberg can now interpolate between arbitrary diagram and scene trees, as long as their structures are the same.
  • All drawables can be previewed within IPython notebooks. This makes it very convenient to prototype and visualize what's going on. This is also now the preferred method of diagramming with the library, since it avoids having to call the clunky renderer every single time.
  • Everything is within the ice. namespace now, so we can now, import iceberg as ice.

Other Highlights

  • Fixed compatibility issues with rendering animations, and added tests for animations.
  • Added new convenience features on Drawable, such as drawable.pad_left() and drawable.move_to(x, y, corner).
  • Added rendering directly via pyav.
  • Setting the opacity via ice.Opacity now actually works, allowing us to create fade-ins and fade-outs.
  • Can now import matplotlib figures via ice.MatplotlibFigure without losing quality (uses the SVG backend).
  • Lots of bugfixes, and performance improvements.