Tutorials#
This section is the hands-on path through the SAMSON Developer Guide. Use it when you already know the basics of the SDK and want to build a concrete extension from start to finish.
The tutorials are organized by extension type and by the developer task they teach. Most pages assume that you already know how to generate an extension with the SAMSON Extension Generator and how to build it on your platform.
SAMSON Extension samples referenced in these tutorials can be found at SAMSON-Developer-Tutorials.
Start here#
If this is your first extension, this sequence gives the smoothest ramp:
- Programming new apps: Atom Shaker
- Programming new editors: Atom Pusher
- Importing files or Exporting files
- Creating visualizations: Van der Waals visual model
- Programming new force fields: Springs interaction model
- Programming new state updaters: Steepest descent
Core concepts and small starter projects#
- Handling units: Units Converter
- Incremental computation of the center of mass
- How to cite your research in SAMSON Extensions
Apps and external integrations#
These tutorials are a good fit if you want to add commands, small tools, or integrations without introducing a new simulation engine.
Editors and interactive tools#
Read these pages when your extension needs direct viewport interaction, mouse events, or custom node creation.
File import and export#
These tutorials focus on implementing SBIFileImporter and SBIFileExporter workflows and on wiring user-facing file options.
Visual models and rendering#
This is the longest rendering tutorial in the guide. It is the right place to learn how a visual model stores references, renders geometry, exposes properties, and serializes itself.
Modeling and simulation#
- Programming new force fields: Springs interaction model
- Programming new state updaters: Steepest descent
- Programming new state updaters: Monte Carlo
Read this group once you are comfortable with structural and dynamical models and want to implement force fields, optimizers, or simulation moves.
Python bindings#
This tutorial is specialized and assumes that you already build C++ extensions comfortably. Read it after you understand the C++ side of your extension and want to expose it to Python.