Our Application SDK
With our modular Application SDK (Software Development Kit), we offer highly customizable solutions for business customers in the field of medical and industrial imaging. Its components are designed to support various application demands, ranging from pure backend tasks to full-blown graphical user interfaces (GUI) applications or customer workstation components.
The Chimaera SDK components can either be integrated into existing customer software or used to build stand-alone applications.
- Prototyping and application development
- High performance processing (CPU, GPU)
- Design of algorithms and processing pipelines
- Mixed C++ / Python development
- Software components for creating apps
- Tools for visual programming and profiling
- Architecture for mixed-hardware processing (Cuda, CPU, Python)
- Containerized remote processing (Docker, Kubernetes)
- Multi-platform support (Windows, Linux)
- Scalable and extendable via plugin system
- Flexible GUI styling for corporate look-and-feel
- Modern package-based build system
- Dedicated processing on mixed hardware
The Chimaera SDK provides an extensive list of features of which some are briefly highlighted:
- Visual programming editor and profiler
- Modern multi-platform build system (conan, CMake)
- Built-in support for mixed hardware components (e.g. CUDA, OpenGL, OpenCL)
- Python scripting engine for mixed C++ / Python development
- Visualization modules (e.g. slice viewing, MPR, volume rendering)
- Image processing algorithms (e.g. segmentation, registration)
- Property system with serialization (useful in configuration management)
- Crash reporting and debugging support (e.g. Visual Studio Source Link)
- Customer-specific software components for integration into large platforms
In addition, Chimaera provides services and support for developing customer-specific software components based on the SDK for seamless integration into existing systems.
Development Components and Tools
A developer license for the Chimaera SDK contains access to various components and tools. Software based on the Chimaera SDK components may be written in C++, in Python or a mixture of both languages.
Chimaera Build System
Managing mixed dependencies is challenging and which programmer has not been confronted with dependency problems where the colleague just shrugs and says: "But it works on my machine!".
This now belongs to the past, as our build system applies a package-based approach (conan) with our specific build system extensions (writting in CMake).
We can thus greatly simplify everyday (unpopular) developer tasks like:
- project setup and IDE integration (apps, plugins, libraries)
- adding library dependencies (greatly reduced CMake integration)
- keeping track of shared libraries (synchronization as needed)
- installation of Python dependencies (app-specific Python environments)
- creating installers for deployment (bundling)
Processing parts and app components are designed as data flow graphs, which we call process networks.
The Process Network Editor is a visual programming tool that we developed to create such networks and interact with them in a live-view.
Although intended to be used only during development, it may even be configured to be accessible from distributed applications, for example by a service technician.
Analysis and Profiling
After having developed the app logic and computational parts of the software, our Profiling and Editor Tools can be applied during runtime to:
- inspect parameters / intermediate results in a live application setting
- collect processing times and analyse bottlenecks
- visualize hardware processing (e.g. dedicated GPU devices)
- tune resource management (e.g. memory consumption, caching)
This helps to accelerate the development from prototype to product.
Advanced Processing and Visualization
Developers using our SDK can choose from a range of available advanced processing and visualization components, such as:
- processing algorithms (e.g. image enhancement)
- registration (rigid, non-rigid) and segmentation (manual, AI-assisted, AI)
- viewing modes (slice, MPR, volume rendering)
- configurable view layouts and GUI integration