Getting Started#
This page gives the minimum mental model you need before creating a SAMSON Extension.
Read this page when you are new to the SDK, when you need to explain SAMSON's architecture to another developer, or when you are deciding where your own code should live.
For end-user onboarding, see the User Guide: Getting Started. This developer page focuses on extension development.
What SAMSON is#
SAMSON is a software platform for computational nanoscience with an open architecture. Most user-visible functionality is provided by installable modules called SAMSON Extensions.
Extensions can add new tools, editors, importers, exporters, models, simulators, renderers, and other domain-specific features. In practice, that means you extend SAMSON by shipping code that integrates with the platform rather than by modifying the SAMSON executable itself.
Common extension families include:
- Apps for commands, workflows, connectors, and general tools
- Editors for interactive viewport tools
- Controllers for control surfaces attached to data graph objects
- Importers and exporters for file formats
- Models and simulators for scientific computation and visualization

What is SAMSON SDK?#
The SAMSON SDK is the developer toolkit used to build those extensions.
It includes:
- the SAMSON C++ API, exposed through headers and libraries
- a developer build of SAMSON used to run and debug extensions
- helper extensions and tools that speed up common tasks
- this documentation and the accompanying tutorials
The SDK also ships helper extensions that are useful during development:
- Extension Generator that automatically generates compilable source code for new SAMSON Extensions.
- UUID Generator that generates random UUIDs.
- Extension packager that wraps your SAMSON Extensions into containers that are easy to upload and share on SAMSON Connect.
- Exposed functionality viewer that shows classes and functions exposed from SAMSON Extensions via the introspection mechanism.
Use the SDK Organization page when you want a library-level map of the API.
SAMSON software platform#
At a high level, SAMSON is organized into three layers:
- SAMSON Base is the platform core. It contains the main executable and seven library groups: Core, DataModel, Modeling, Simulation, IO, GUI, and Facade.
- SAMSON SDK is the developer-facing layer. It gives you headers, libraries, helper tools, and documentation.
- SAMSON Extensions are the modules you build with the SDK and load into SAMSON.

SAMSON can start without extensions, but it becomes intentionally minimal. Extensions are what make the platform useful in practice.
What you do as an extension developer#
Most extension work follows the same loop:
- Generate a new extension project with the Extension Generator.
- Build and run it against the developer build of SAMSON.
- Add one or more extension classes such as an app, editor, importer, exporter, or model.
- Interact with the data graph, expose functionality through introspection, and persist state through serialization.
- Package and distribute the result when it is ready.
That is why the rest of this guide is organized around extension types and core runtime concepts.
Current version of SAMSON#
The current version of SAMSON and its SDK is 11.0.0. See Versioning if you need to understand SDK compatibility and version numbers.
Supported platforms#
See the User Guide: Supported platforms for the platform matrix used by current SAMSON releases.
For extension development, the practical takeaway is that you should align your compiler, Qt installation, and build tooling with the SDK version you are targeting. The Installation page lists the current developer requirements.
Requirements#
See the User Guide: Requirements for the end-user installation prerequisites.
For developing SAMSON Extensions with SAMSON 11.0.0, you also need:
- CMake 4.0 or newer
- Qt 6.10.2
- a supported compiler and IDE for your platform
Next steps:
- Go to Installation to install the SDK and verify your environment.
- Go to Extension Generator when you are ready to create your first project.