All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project is planned to adhere to Semantic Versioning when it reaches version 1.0.
0.6.0 - 2022-08-02
- References and links to ts_algorithms were added to the readme
- Changed the Tomosipo autograd operators made by the tomosipo.torch_support.to_autograd function. By default they now expect the same input shape (3 dimensions) as a normal Tomosipo operator. New arguments have been added to also support the input shapes expected in Pytorch neural networks.
0.5.1 - 2022-06-15
Small bugfix to the to_autograd operator. (Pull request 16)
- Fixed to_autograd operator to always output 32 bit results, also with a 64 bit input just like the normal operator. Before the fix it only worked with 32 bit inputs.
0.5.0 - 2022-02-01
This release is mostly about maintaining existing functionality. The tomosipo paper and Astra toolbox 2 were released, there is a new maintainer, and some bugs were fixed. The conda package is now the default installation option.
- Added information and Bibtex entry of the tomosipo paper to the readme
- Changed repository maintainer from Allard Hendriksen to Dirk Schut
- The conda package is now the default installation option, instead of cloning from Github with pip. This is changed in the readme
- Astra toolbox 2 was released so it is now the required version. There were no API changes compared to the recent development version that was required before.
- Removed cupy and odl packages from the environment presented in the documentation. Cupy was removed because of cudatoolkit error messages ODL was removed because it changes the global numpy formatting options
- Replaced usage of np.int which was deprecated in numpy 1.20 with int
- Replaced the usage of collect_ignore in setup.cfg because it was removed from pytest
- Licence information was updated to show GPLv3
0.4.1 - 2021-07-18
Bug fix release for ts.rotate
(again)..
ts.rotate
: the rotation matrix had become transposed while fixing #7. This has now been fixed.
0.4.0 - 2021-07-15
Bug fix release for ts.rotate
. Minor bump for automatic torch and cupy
linking.
NOTE: ts.rotate
is broken in this release. Please use v0.4.1.
- It is no longer necessary to import
tomosipo.torch_support
ortomosipo.cupy
to enable support for linking torch and cupy arrays. Support for these arrays is now added automatically when the packages are installed in the host environment.
ts.rotate
can now correctly deal with a changing axis of rotation over time. #7
- The
ts.forward
andts.backward
top-level bindings have been removed. They are still available asts.astra.forward
andts.astra.backward
. - The
ts.fdk
top-level binding has been removed. It is still available asts.astra.fdk
.
0.3.1 - 2021-06-17
ts.operator
: making an operator with a volume vector geometry would fail. This has been fixed.
0.3.0 - 2021-06-17
In this release, mostly small things have been polished for consistency. In addition, the transforms functions have gained some added functionality to easily move and scale things over time.
- All geometry classes implement
len()
, which returns the number of steps in the geometry. - Convenience methods
Transform.transform_vec
andTransform.transform_point
ts.svg()
: Render geometries to an animated SVG (no dependencies required(!)).ts.svg()
: Added progress bar.ts.svg()
: Optionally show z,y,x-axes in top-left corner withshow_axes=True
.ts.reflect()
: Add reflection geometrical transform.ts.from_perspective()
/ts.to_perspective()
: Addignore_scale
parameter, which isTrue
by default.ts.scale()
: Add alpha parameter so that object can easily be scaled in certain directions over time.ts.translate()
: Add alpha parameter so that object can easily be translated along a certain axis over time.
ts.svg()
: Removebase64
keyword parameter. This functionality has been moved to the_repr_markdown_
method.ts.rotate()
: Disallow passingpos
andaxis
by position. All parameters are now keyword-only.ts.rotate()
: Deprecaterad
anddeg
parameters in favor ofangles
. This makests.rotate
more consistent withts.parallel()
, etc.ts.from_perspective()
/ts.to_perspective()
: All parameters are now keyword-only.ts.from_perspective()
/ts.to_perspective()
: Thebox
parameter has been renamed tovol
..to_box()
: Rename the.to_box()
method on projection geometries to.to_vol()
.
0.2.0 - 2020-10-13
This is a major release. It introduces two features that define tomosipo in its current form:
- Geometric transformations such as rotation, translation, and scaling are introduced. They can be composed and applied to all supported geometries.
- Automatic linking of arrays, both for NumPy arrays and arrays on the GPU.
This enables a paradigm shift in programming for ASTRA in Python, because it
is no longer necessary to create
astra.data3d
objects. This greatly simplifies coding and makes the whole experience of using ASTRA considerably more pleasant.
- Support for parallel geometries (both parameterized and vector geometries)
- Volume vector geometry: this is a non-axis aligned version of the standard ASTRA volume geometry and replaces the Box object.
- PyTorch support
- CuPy support
tomosipo.qt.animate
: inline videos of geometries in Jupyter notebooks, which can also be saved to disk in.mp4
format.- Support for import ODL geometries
ts.operator
: this creates a wrapper for an ASTRA projector and can forward project arbitrary arrays. Note: This function might be renamed tots.projector
.ts.to_astra
andts.from_astra
: generic conversion functions that convert geometry objects to and from their ASTRA representation.
- Almost all APIs have been changed in some way or form. I will be more careful going forward.
- Moved from unittest to pytest framework for testing.
0.0.1 - 2018-09-25
- Initial support for cone and volume geometries
- Initial support for displaying data and geometries
- Conversion to and from astra geometry format