Welcome¶
Welcome to the home page of the Simulacrum Project. Here you can find the high-level documentation and help/guides for Simulacrum and several of its core applications. Documentation is currently a work in progress, with new items added frequently!
Want to get started immediately? Visit Get Simulacrum. Looking for the Symmetry application? Visit Symmetry.
What is Simulacrum?¶
Simulacrum is a library suite for volume and image space interaction. It is designed to be lightweight, easy-to-use, portable, scalable and extensible. The core of Simulacrum is written in C++ with integrated Lua scripting, providing flexibility in programming solutions. A closely coupled tertiary library, Simulacrum-gui, provides a framework for visual tools, including advanced rendering techniques built around the cross-platform Qt libraries.
Feature Overview¶
Simulacrum is a libarary engineered to provide object-oriented abstractions over many of the key aspects of a volume/image analysis toolkit. These include generic frameworks to easily make use of the following:
N-Dimensional volume Spaces, including time-series, tensor fields, sparse domains etc, with run-time generic reimplementable Element structures
Algorithms operating over such spaces, including simplified parallelism with minimal parallel programming skills
Data Resources, including complex data/archive trees, from which to load the above spaces, with existing implementations for common data formats (particularly DICOM) but easily extendable to new data sources
Integrated primitives for library independence, including optimised vectors and basic linear algebra operations
Connectable components for building pipelines
Integrated off-screen rendering operations
Associated GUI Widgets for the above, including Viewports and advanced interactions tools, archive/data data browsers – built around Qt
Toolbox of useful methods and structures for: run-time parallelism, file-system abstraction, logging, network transparency, command-line use
Plugin interface for all core components
Full and integrated Lua interface
Compatibility with existing libraries (VTK & ITK)
And many more, including:
A fast, C++, user-friendly implementation of large parts of the DICOM protocol:
Most common transfer syntaxes (including JPEG 2000, lossless JPEG…)
Disk object reading & writing
Networking (store/receive, query/retrieve, WADO … )
Fast, parameterisable indexing, sorting and archiving of large DICOM data sets
On which platforms can Simulacrum be run?¶
Currently there are binary builds of Simulacrum available for the following platforms:
Windows (64-bit, Visual Studio 12.0)
Linux
Android
Raspberry Pi
OSX / iOS (coming soon)
However, Simulacrum can be built from source for almost any platform providing a working C and C++ compiler; i.e. most modern operating systems. The tertiary GUI library can be built for any platform on which the Qt 5.0 framework operates.
Who are Simulacrum’s target users?¶
Users likely to be interested in Simulacrum include, but are not limited to:
Developers looking for a free library on which to deploy their application to many platforms, with the possibility of proprietary components
Researchers, currently particularly in medical image analysis/visualisation
Under what licence is Simulacrum supplied?¶
Simulacrum is distrubuted under the “GNU Lesser General Public License (LGPL)” version 3. This means you can use and extend the library in commercial applications, so long as changes to the interior of the library are themselves released under the same license. Combined with the plugin facilities of Simulacrum, this provides developers with a high degree of flexibility.
Where is the Simulacrum API Reference?¶
The source-code level documentation can be found here .
Contact the Developer¶
The lead developer of Simulacrum is Michael A. Hicks. You can contact him here.