Web Analytics Made Easy - Statcounter
Skip to content

Changelog for SDK 2026 R1 (v.11.0.x)#

This changelog is intended for developers who build apps, editors, importers, exporters, models, and other extensions with the SAMSON SDK. Internal implementation work inside SAMSON is mentioned only when it affects public SDK APIs or the behavior seen by SDK-based extensions.

Changelog for SDK v.11.0.1#

This patch release does not introduce new public SDK headers or new extension APIs compared to v.11.0.0. For external SDK developers, it mainly brings runtime fixes in the SAMSON application and built-in components that ship with the SDK.

SDK-facing fixes#

  • Safer neighbor-search behavior when an SBSNeighborSearchParticleSystem is associated with a missing underlying SBParticleSystem object.
  • Built-in default animations no longer flood the undo stack.
  • Other 11.0.1 changes are application-level fixes in the bundled SAMSON GUI, including platform / GPU information reporting and some built-in structural-model actions. These do not require source changes in SDK extensions.

Changelog for SDK v.11.0.0#

This release brings major SDK additions for extension developers, especially around introspection, parameter passing, unit-cell / PBC support, and extension-facing GUI APIs.

Main changes:

  • Now uses Qt v6.10.2.
  • Simplified the descriptors used by the Introspection mechanism, and added documentation support for exposed constructors and functions shown in the Exposed Functionality Viewer.
  • Added SBValueMap and propagated it through importer / exporter APIs, SAMSON::importFromFile, SAMSON::exportToFile, and the SAMSON::make* creation paths.
  • Added SBUnitCell, structural-model, and path APIs for periodic boundary conditions (PBC), unit-cell data, and minimum-image operations.
  • Added public GUI job-management classes for extensions that need to integrate job tracking, downloads, and results.
  • Added targeted SDK cleanups, including print(std::ostream&) overloads in multiple classes, SBGWindow::centerOnSAMSON, mesh memory-management fixes, and a fix in SBMDynamicalModelParticleSystem::removeAtom.

Core library group#

Class library#

The changes in the Class library are primarily aimed at improving the Introspection mechanism:

  • Exposed constructors and functions can now carry documentation (brief description, parameters, return value, etc.), which is displayed in the Exposed Functionality Viewer. See:

  • SB_CONSTRUCTOR_0_BEGIN, SB_CONSTRUCTOR_N_BEGIN, SB_CONSTRUCTOR_END

  • SB_FUNCTION_0_BEGIN, SB_FUNCTION_N_BEGIN, SB_FUNCTION_END
  • SB_CONST_FUNCTION_0_BEGIN, SB_CONST_FUNCTION_N_BEGIN, SB_CONST_FUNCTION_END
  • SB_STATIC_FUNCTION_0_BEGIN, SB_STATIC_FUNCTION_N_BEGIN, SB_STATIC_FUNCTION_END

  • Class descriptors were simplified: there is no longer a need to repeat the class name when exposing class members within the class descriptor. Remove the class name from SB_FACTORY_BEGIN, SB_CONSTRUCTOR_*, SB_INTERFACE_BEGIN, SB_FUNCTION_*, SB_ATTRIBUTE_BEGIN, etc.

  • Factories and interfaces can now be omitted from descriptors when they are not needed.

A new base class SBCClassCallableMember describes a common base for callable members such as SBCClassConstructor and SBCClassFunction.

A new class SBCClassCallableMemberDoc stores documentation for callable members.

Other additions and changes:

  • Improved SBCClassFunction::signature
  • SBCClassProxy::deleteInstance
  • SBCClassFactory::getNumberOfConstructors
  • SBCClassFactory::deleteInstance
  • SBCClassInterface::getNumberOfFunctions
  • SBCClassInterface::getNumberOfAttributes

Container library#

  • SBCContainerHashMap now has a constructor from std::initializer_list.
  • SBCContainerHashMap::toStdUnorderedMap converts a hash map into std::unordered_map.
  • SBCContainerIndexer now has a constructor from std::initializer_list.
  • SBCContainerIndexer::print(std::ostream&)
  • SBCContainerString::print(std::ostream&)
  • SBCContainerString::removeWhiteSpaces was renamed to SBCContainerString::removeWhitespaces.

Meta library#

More types are now registered directly in SAMSON, which makes them available through the introspection system without additional extension-side registration work.

Added SBCMetaValue::empty for convenience.

A new class SBCMetaValueMap (short name: SBValueMap) provides a convenience wrapper around a map from std::string to SBValue, so parameter maps can be passed into functions and constructors as SAMSON values.

Reference library#

SBCReferenceIndexer now has a constructor from an std::initializer_list.

DataModel library group#

Controller library#

The SBDController class now has a constructor that accepts SBValueMap. Implement the same constructor in derived classes if you want them to be used by SAMSON via SAMSON::makeController.

DataGraph library#

New constructors for SBDDataGraphNodeIndexer: from std::initializer_list, std::set, and std::vector.

The SBDDataGraphNodeSelector class now has a constructor that accepts SBValueMap. Implement the same constructor in derived classes if you want them to be used by SAMSON via SAMSON::makeSelector.

Document library#

The SBDDocumentAnimation class now has a constructor that accepts SBValueMap. Implement the same constructor in derived classes if you want them to be used by SAMSON via SAMSON::makeAnimation.

Quantity library#

Added registered types for the default non-SI quantities.

A new function in SBQuantity: print(std::ostream&).

Type library#

New functions:

  • SBDTypeColor::getRGBString
  • SBDTypeUnitCell::toPythonCode
  • print(std::ostream&) for various types

Fixed SBDTypeUnitCell::setShapeType.

New in SBUnitCell:

  • The SBUnitCell class type can now be exposed in the Inspector.
  • Periodicity management:

  • SBUnitCell::Periodicity, SBUnitCell::getPeriodicity, SBUnitCell::setPeriodicity

  • SBUnitCell::isFinite, SBUnitCell::isPeriodic, SBUnitCell::isPeriodicX, SBUnitCell::isPeriodicY, SBUnitCell::isPeriodicZ

  • Additional unit-cell helpers:

  • SBUnitCell::getInverseMatrix, SBUnitCell::getReciprocalMatrix

  • SBUnitCell::getVectorA, SBUnitCell::getVectorB, SBUnitCell::getVectorC
  • SBUnitCell::getCenter
  • SBUnitCell::getFractionalCoordinates
  • SBUnitCell::getCartesianCoordinates
  • SBUnitCell::getWrappedFractionalCoordinates
  • SBUnitCell::getWrappedPosition
  • SBUnitCell::getNearestPeriodicImage
  • SBUnitCell::getMinimumImageDisplacement
  • SBUnitCell::getMinimumImageSquaredDistance
  • SBUnitCell::getMinimumImageDistance
  • SBUnitCell::contains
  • SBUnitCell::canUseMinimumImageConvention

Facade library group#

SAMSON library#

Changed signatures of the following functions to use SBValueMap:

  • SAMSON::importFromFile
  • SAMSON::exportToFile
  • SAMSON::makeController
  • SAMSON::makeInteractionModel
  • SAMSON::makeNeighborSearch
  • SAMSON::makeStateUpdater
  • SAMSON::makeSimulator
  • SAMSON::makeVisualModel
  • SAMSON::makePropertyModel
  • SAMSON::makeAnimation
  • SAMSON::makeSelector

GUI library group#

The base GUI factory classes now declare their create functions as pure virtual: SBGDocumentAnimationFactory, SBGDynamicalModelParticleSystemFactory, SBGInteractionModelParticleSystemFactory, SBGPropertyModelFactory, SBGStructuralModelFactory, and SBGVisualModelFactory. If you derive from one of these GUI factory classes, implement the corresponding create function to keep factory-based construction working.

Job library#

If your extension integrates with jobs, downloads, or fetched results, the following public GUI classes now provide a job-management API set:

  • SBGJobManager
  • SBGJobView
  • SBGJobListModel
  • SBGJobResultsManager
  • SBGJobDownloadMonitorDialog

These classes provide:

  • centralized job-state tracking and filtering;
  • local status tracking for logs and results;
  • result and log download workflows, including download monitoring;
  • import / open workflows for downloaded job results.

Action library#

The type of the SBGAction class is now registered directly in SAMSON.

Window library#

A new function SBGWindow::centerOnSAMSON centers a window on SAMSON.

IO library group#

Changed signatures of SBIFileImporter::importFromFile and SBIFileExporter::exportToFile to use SBValueMap instead of std::unordered_map, which makes it possible to pass parameter maps whose values are stored in SBValue.

Modeling library group#

InteractionModel library#

The base class SBMInteractionModelParticleSystem now also has a constructor that accepts SBValueMap. If you derive from this class and want to pass parameters via its constructor, for example when using SAMSON::makeInteractionModel or SAMSON::makeSimulator, implement the same constructor in your derived class and expose it via the Introspection mechanism.

PropertyModel library#

The base classes SBMPropertyModel, SBMPropertyModelBaseFunction, SBMPropertyModelFunction, SBMPropertyModelScalarField, and SBMPropertyModelVectorField now also have constructors that accept SBValueMap. If you derive from these classes and want to pass parameters via their constructors, for example when using SAMSON::makePropertyModel, implement the same constructor in your derived class and expose it via the Introspection mechanism.

StructuralModel library#

New functions in the SBMStructuralModel class:

  • SBStructuralModel::transformNonHierarchicalModel
  • SBStructuralModel::isValidSMARTS
  • SBStructuralModel::findSubstructureMatchesWithSMARTS

SBStructuralModel now stores SBUnitCell, which you can access via SBStructuralModel::getUnitCell and SBStructuralModel::setUnitCell. New functions related to unit cells (SBUnitCell) and PBC include:

  • SBStructuralModel::hasFiniteUnitCell
  • SBStructuralModel::isPeriodic
  • SBStructuralModel::getMinimumImageDisplacement
  • SBStructuralModel::getMinimumImageDistance
  • SBStructuralModel::wrapToUnitCell
  • SBStructuralModel::makeWhole
  • SBStructuralModel::centerInUnitCell
  • SBStructuralModel::createSupercell
  • SBStructuralModel::getCommonStructuralModel
  • SBStructuralModel::getCommonUnitCell

New structural-model event type: SBStructuralEvent::Type::UnitCellChanged.

New functionality in SBPath:

  • Mass data: SBPath::getMassData, SBPath::setMassData, SBPath::getMass, SBPath::setMass
  • Unit-cell related functions:

  • SBPath::getUnitCellData, SBPath::setUnitCellData

  • SBPath::getUnitCell, SBPath::setUnitCell
  • SBPath::getUnwrappedPosition
  • SBPath::wrapStep
  • SBPath::wrapAllSteps
  • SBPath::makeWholeStep
  • SBPath::makeWholeAllSteps
  • SBPath::unwrap

New functions in the SBMStructuralModelNodeAtom class:

  • SBAtom::getMinimumBondLength
  • SBAtom::getMaximumBondLength

New functions in the SBMStructuralModelNodeGroup class:

  • SBStructuralGroup::getNameWithoutID

New functions in the SBMStructuralModelNodeResidue class:

  • SBResidue::moveBackboneAtomsFromSideChains
  • SBResidue::fixTerminal

VisualModel library#

The base class SBMVisualModel now also has a constructor that accepts SBValueMap. If you derive from this class and want to pass parameters via its constructor, for example when using SAMSON::makeVisualModel, implement the same constructor in your derived class and expose it via the Introspection mechanism.

Fixed the memory management of meshes (SBMesh).

DynamicalModel library#

Fixed SBMDynamicalModelParticleSystem::removeAtom.

Simulation library group#

StateUpdater library#

The base class SBSStateUpdaterParticleSystem now also has a constructor that accepts SBValueMap. If you derive from this class and want to pass parameters via its constructor, for example when using SAMSON::makeStateUpdater or SAMSON::makeSimulator, implement the same constructor in your derived class and expose it via the Introspection mechanism.