Changelog¶
v0.11.0 - Unreleased¶
v0.10.0 - 2020-07-10¶
Standard Library¶
Add new definition
arlunio.shape.Triangle
, also add newarlunio.math.Barycentric
definition which serves as the Triangle’s base. (#187)Add
arlunio.image.load
andarlunio.image.decode
functions to mirror the existing save and encode functions.Update
arlunio.image.Image
to now be a class in its own right, wrapping a Pillow image object to add additional functionalityMake the
arlunio.image.fill
andarlunio.image.colorramp
functions return RGBA images to make image composition easier. (#247)Moved
arlunio.pattern.Grid
,arlunio.pattern.Map
andarlunio.pattern.Pixelize
intoarlunio.mask
. AlsoGrid
has been renamed toRepeat
. (#249)
v0.0.7 - 2020-06-18¶
Fixes¶
Add missing return type annotation to
MaskXXX
operators, this should allow combining multiple definition instances together. (#223)
Docs¶
Standard Library¶
Moved the “expression” based code out of core into the
arlunio.math
module.New
arlunio.image
module. This contains the image code that was originally part of “core” arlunio. (#228)New
arlunio.raytrace
module based on the Ray Tracing in One Weekend book. Currently only supports diffuse materials and spheres, will probably need a few revisions before it becomes useful. (#230)Refine the concept of a
Mask
A Mask is now a sub-class of a
numpy.ndarray
that is geared towards manipulating boolean numpy arrays. They can be added (a OR b
), subtracted (a AND (NOT b)
), multiplied (a AND b
) and negated (NOT a
). (#231)Rename all standard library modules from
arlunio.lib.X
toarlunio.X
(#233)
v0.0.6 - 2020-04-18¶
Features¶
Introduce the concept of operators. Operators are definitions that can provide implementations of the arithmetic operators in Python like
+
and-
. Depending on the type a definition produces different operators can be defined that allow them to be combined in some way. The standard library has been updated to incorporate a few operators for working with masks. (#207)Generalise definitions to accept any “regular” value as an input, not just
width
andheight
. In a similar way to attributes, when deriving from other definitions any inputs will be automatically inherited. (#216)
Docs¶
Added some documentation around the CI build for the blog. Also updated the blog build to run every day. (#177)
Tidied up and updated existing changelog, started using towncrier for changelog entries going forward. (#204)
Flatten structure of the User Guide section and add placeholder first tutorial (#205)
v0.0.5 - 2020-03-18¶
Added¶
Empty
andFull
definitionsnormalise
,clamp
andlerp
functions
Changed¶
Definitions now have a
produces
classmethod that will report the type of object they produce - assuming that the type annotation has been given of course.The
ar.definition
decorator now accurately reports the module a definition was defined in.
v0.0.4 - 2020-02-15¶
Added¶
The concept of a
Definition
.This incorporates the existing concept of a
Shape
and expands on it to cover input parameters and moreDefinitions can be derived from other definitions by passing in existing definitions as positional arguments. Derived definitions will inherit all attributes from their “parent” definitions.
Removed¶
The “magic” shape entry point, shapes should now be imported like regular Python classes.
v0.0.3 - 2019-12-30¶
Added¶
Pixelize
shape that can take another shape and and render a lower res version of that shape giving it a pixel art vibeMap
shape that can take a grid of values representing some layout and a dictionary that maps those values to shapes that should be drawn there.Proof of concept notebook importer
Changed¶
Add
mkdirs
flag to the :code`Image.save` function to have the option of automatically creating any required parent directoriesTweak the
find_notebook
function to handle the way we are using it in the gallery
v0.0.2 - 2019-09-04¶
Release to test new CI/CD setup