Releases: unibas-gravis/scalismo
Scalismo release 0.92
This release is an step in making Scalismo future-proof. The most important change is that we no longer write Point Distribution Models as native HDF5 files, but use the more lightweight hdf5-json format. This made it possible to drop the dependency on the native hdf libraries. This also makes it possible to provide full support for Mac M1 and M2 processors.
Other notable changes
- New method to join 2 triangle meshes
- Replace spray-json dependency with ujson
- Update to Scala 3.3.
- Various bugfixes and usability improvements
Scalismo release 0.91
Overview and release highlights
This release is an important step in making Scalismo future-proof and a big milestone towards version 1.0. The most important changes in this respect are the update to Scala 3 and VTK 9.1. Furthermore, it fixes various bugs in the image classes, which caused niftii images with non-standard direction vectors to be loaded using wrong coordinates, or prevented loading them altogether. We also worked on improving the numerical stability of GP computations and to make the api more consistent. The release should not break any existing code.
This release also introduced a few new features:
- A new DSL for building up proposals is introduced. The DSL makes it much more convenient to define proposals for own parameter classes.
- It is now possible to specify missign values and partial observations in Gaussian process regression and posterior computations.
- Intensity models defined on images and tetrahederal meshes can now be written and loaded using the standard hdf5 format.
Detailed changes:
For detailed changes, see the Full Changelog: v0.90.0...v0.91.0
New Contributors
- @phoeft670 made their first contribution in #362
- Various contributions to improve the stability of GP computations were made by @JonathanAellen
Scalismo 0.90
Overview and release highlights
After we have introduced experimental support for tetrahedral meshes in the last Scalismo release, in this release we focused on reworking the foundational concepts, such that everything fits seamlessly into the library. To this end we have reworked our implementation of statistical mesh models, discrete fields and transformations. We also introduced a new class PointDistributionModel
, which generalizes StatisticalMeshModel
in the sense that it works over any dataset defined on a discrete domain. This includes triangle meshes, tetrahedral meshes, line meshes and unstructured points in 2D and 3D. Furthermore we removed most subclasses of DiscreteField
, such as DiscreteImage
, ScalarField
or VectorField
and treat them now as a special instance of the class DiscreteField
. This leads to a simpler and more unified API. Finally, we refactored the transformation classes with the goal of making the creating and composition of transformation more intuitive.
Breaking changes
Due to the changes at the core classes of Scalismo described above, there are many breaking changes in this release. The areas that are most effected are
- StatisticalMeshModels
- Discrete images
- Transformations
Please refer to the Scalismo tutorials to see how these classes should now be used.
The changes are also detailed in the following blog post:
Contributors
The following people have contributed to this release
- Patrick Kahr
- Dennis Madsen
- Jonathan Aellen
- Andreas Morel-Forster
- Marcel Lüthi
(see git shortlog v0.18.0..v0.90.0 --no-merges for details)
Obtaining Scalismo
In order to use this version of Scalismo, bump the Scalismo version in your sbt-based project.
Scalismo 0.18
Release highlights
- Support for Tetrahedral meshes, Statistical models of tetrahedral meshes as well as intensity models
- Functionality for decimating the number of vertices in StatisticalMeshModels and TriangleMeshes
- Greatly improved efficiency for computing PCA Models from large datasets with the possibility to specify a given accuracy of the computations
- Possibility to write deformation models
- New variant of the Metropolis-Hastings algorithm with efficiency improvement on multicore systems through prefetching
Breaking changes
- The class
ScalarImage
now takes the scalar type as a type parameter
Contributors
The following people contributed to this release:
- Andreas Forster
- Dana Rahbani
- Jean-Rassaire Fouefack
- Patrick Kahr
- Dennis Madsen
- Sandro Schönborn
- Thomas Gerig
- Marcel Lüthi
Use git shortlog v0.17.0..v0.18.0 --no-merges for a detailed overview of the individual commits
Obtaining Scalismo
In order to use this version of Scalismo, bump the Scalismo version in your sbt-based project.
Scalismo 0.17
Release highlights
- New datastructure
VertexColorMesh3D
, which represents a triangle mesh with vertex colors - Added reader/writer for ply mesh format
- New approximation method for computing a low-rank Gaussian process, based on the Pivoted Cholesky decomposition.
- Renamed
Vector
toEuclideanVector
, in order to avoid name clashes with Scala's vector class
Breaking changes
The class Vector
was renamed to EuclideanVector
. The same applies to the concrete instances such as Vector1D
, Vector2D
and Vector3D
. A simple search/replace will make everything work again.
Bugfixes and minor changes
- New object
StatisticalModelIO
with more intuitive names for reading/writing IO (fixes #249) - Correct computation of closest point for degenerated triangles (fixes #262)
- Computation of mesh metric based on closest point to surface rather than closest vertex (fixes #252)
- Made Domain of DiscreteScalarField contravariant (fixes #241)
- Fixed various warnings
Contributors
The following people contributed to this release:
- Andreas Morel-Forster (several bugfixes)
- Dennis Madsen (Bugfix Meshmetrics (#253)
- Ghazi Bouabene (Vertexcolormesh3D and PLY readers/writer (#244))
- Marcel Lüthi (Approximation method for GPs (based on work by T Gerig, #246), several bugfixes)
Use git shortlog v0.16.0..v0.17.0 --no-merges
for a detailed overview of the individual commits
Obtaining Scalismo
In order to use this version of Scalismo, bump the Scalismo version in your sbt-based project.
Scalismo 0.16.1
Update to latest scala and sbt version for java 9 and 10 compatibility.
Scalismo 0.16.0
Release highlights
- Simplified registration interface (#213)
- New registration metrics and improved metric interface (#200)
- Mutual information metric for image to image registration (#214)
- Robust metrics
- More flexible interpolation scheme for DiscreteField and DiscreteGaussianProcess (#220) (#216) (#219)
- Linear interpolation for GaussianProcesses and DiscreteFields which are defined on an image domain. (#221)
Breaking changes
For improving the registration and to be able to add the mutual information metric, a number of breaking changes were necessary:
- The steps for setting up the registration pipeline have changed.
- DiscreteGaussianProcess and DiscreteFields now take the domain as a type parameter.
- To guarantee that all the random computations can be made deterministic by seeding a random generator,
we have made it necessary to define an implicit val with a properly seeded instance ofscalismo.util.Random
or to import an implicit.
A working example that includes all the breaking changes can be found in the quickstart guide.
Bugfixes and minor changes
- Corrected computation of covariance matrix in MultivariateNormalDistribution (fixes #204)
- Removed implicit random value from sampling interface. Fixes #211 (#226)
- Corrected inconsistent DiscreteDomain.hashCode (#209)
- Changed GPA alignement, such that it does not change the reference. (#202)
- Implicit Random needs now explicit import for the default value (#210)
- run vtk garbage collector on initialization (#207)
- remove requirement that transformationspaces have to be differentiable for registration (#206)
- Return InterpolatedLowRankGP in DiscreteLowRankGP.interpolate (#219)
- Changed hierarchy of ClosestPoint classes (see Issue #201) (#203)
Contributors
The following people contributed to this release:
- Anna Smolinski (Mutual information)
- Andreas Forster (several bugfixes)
- Thomas Gerig (Linear interpolation)
- Sandro Schönborn (several bugfixes)
- Marcel Lüthi (Metric interface, Registration interface, Interpolation of DiscreteGaussianProcesses, several bugfixes)
Use git shortlog v0.15.0..v0.16.0 --no-merges
for a detailed overview of the individual commits
Obtaining Scalismo
In order to use this version of Scalismo, bump the Scalismo version in your sbt-based project.
See the the setup guide for details.