Skip to content

Releases: unibas-gravis/scalismo

Scalismo release 0.92

04 Jul 08:48
Compare
Choose a tag to compare

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

12 May 15:21
914a33c
Compare
Choose a tag to compare

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

22 Dec 14:26
3f775cb
Compare
Choose a tag to compare

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

06 Mar 16:42
Compare
Choose a tag to compare

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

22 Feb 16:08
Compare
Choose a tag to compare

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 to EuclideanVector, 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

05 Jul 12:36
Compare
Choose a tag to compare

Update to latest scala and sbt version for java 9 and 10 compatibility.

Scalismo 0.16.0

14 Dec 14:36
Compare
Choose a tag to compare

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 of scalismo.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.