[Symmetry Home] | [Simulacrum Project Home] | [Gitlab Home]

Update: new builds of Simulacrum & Symmetry are available.


Simulacrum Library

Back in 2012, in my spare time, I started working on a free-software library called Simulacrum. Its goal was to be an aggressively cross-platform, object oriented, lightweight and highly flexible library for loading, organising, manipulating and rendering N-dimensional datasets with additional support for the easy creation of (highly-parallel) processing algorithms over such datasets. A sister library, Simulacrum-GUI also provides a set of QT based widgets for interacting with the various archives, data structures and rendered images that are generated.

Screenshot

Key facts:

  • Purpose: Volume and image space interaction
  • Philosophy: Cross-platform, light-weight, extensible (incl. plugins)
  • Licence: LGPL
  • Languages: Modern C++, with built in LUA extensibility and SWIG wrapping for most other scripting langauges
  • GUI extensions: Large suite of QT wigets provided
  • Platforms: Windows, Linux, MacOSX, Android, iOS, Raspian ...

The initial focus was on the DICOM format (with a custom high performance DICOM reader implementation) for medical imaging data, but the entire architecture of the library is agnostic of the underlying data format and can easily be extended to support new types of data, thanks to a resource abstraction layer. This makes is very useful for general image processing, physics simulations etc.

You can find out more about Simulacrum on its project page here.

Symmetry Application

What's the use of a library without a nice demo application? Symmetry started as such a demo application but became a full-blown data browser, editor and visualisation workstation for all of the resources types of Simulacrum (and its extensions/plugins).

Again, the primary resource for which Symmetry is currently used is medical imaging data, but a variety of formats are supported out-of-the-box (DICOM, XML, JPEG, PNG ...) and any plugin/extension created for the Simulacrum library is implicitly supported by Symmetry without further modification. This means all of the functionality of Symmetry can be used for your own volumetric data just by created a new resource type.

Symmetry is available for Windows, Linux, MacOSX and Android (via Play store).

Checkout Symmetry on its homepage.