SympLab

Define the science. Execute anywhere.

SympLab est une plateforme scientifique ouverte permettant de définir, d’exécuter et de partager des travaux scientifiques computationnels au moyen de spécifications sémantiques.

Plutôt que d’organiser les logiciels scientifiques autour des langages de programmation ou des bibliothèques numériques, SympLab les organise autour des connaissances scientifiques.

Les chercheurs définissent les composants scientifiques à l’aide de SympPrints, décrivent la manière dont ils échangent des informations au moyen de Contracts explicites, les regroupent sous forme de Packages réutilisables et les exécutent via des Backends interchangeables.

La définition scientifique reste stable tandis que les implémentations et les technologies d’exécution évoluent.

Vision

Les logiciels scientifiques modernes mélangent souvent définitions mathématiques, détails d’implémentation et environnements d’exécution.

SympLab sépare ces différentes préoccupations.

    flowchart TD
    SD["Définition scientifique"]
    SR["Résultats scientifiques"]


    SD --> Implementation
    Implementation --> Execution
    Execution -->SR
  

Cette séparation permet :

  • la reproductibilité de la recherche ;
  • une exécution indépendante du backend ;
  • l’interopérabilité sémantique ;
  • des composants scientifiques réutilisables ;
  • la pérennité à long terme des logiciels scientifiques.

SympLab est donc bien plus qu’une bibliothèque numérique.

C’est une plateforme de connaissances scientifiques exécutables.

Principes fondamentaux

SympLab repose sur un ensemble restreint de principes architecturaux.

La science d’abord

Les définitions scientifiques existent indépendamment des implémentations.

Contrats sémantiques

Les connaissances scientifiques sont représentées au moyen de contrats sémantiques explicites.

Composition

Les capacités scientifiques se composent au moyen de contrats déclarés plutôt que par l’intermédiaire de détails d’implémentation.

Indépendance vis-à-vis du backend

La signification scientifique ne dépend pas de la technologie d’exécution.

Reproductibilité

Chaque Result scientifique conserve sa provenance.

Architecture

La plateforme s’organise autour d’un modèle conceptuel simple.

    flowchart TD
    SP["Problème scientifique"]

    SP --> Experiment
    Experiment -->TrajectoryResult
    TrajectoryResult --> Analysis
    Analysis --> AnalysisResult
    AnalysisResult --> Solution
    Solution --> Report
  

Les définitions scientifiques sont fournies par les SympPrints.

Les implémentations exécutables sont découvertes par le Registre scientifique (Scientific Registry).

L’exécution est coordonnée par le cœur de SympLab (SympLab Core).

Architecture conceptuelle en quatre niveaux

SympLab possède une architecture conceptuelle organisée en quatre niveaux.

    flowchart  TD
    subgraph Knowledge
        direction LR
        SympPrint
        SC["Composants<br>scientifiques"]
        ST["Transformations<br>scientifiques"]
        Results

        SympPrint --> SC
        SC --> ST
        ST --> Results
    end
    subgraph Organization
        direction TB
        Registry
        Workspace
        Solution
    end
    subgraph Realization
        direction TB
        Package
        Implementation
    end
    subgraph Operation
        direction TB
        Execution
        Backend
    end

    Knowledge --> Organization
    Organization -->  Realization
    Realization --> Operation
  

Chaque niveau dépend du précédent sans jamais confondre ses responsabilités. Les connaissances scientifiques existent indépendamment de leur organisation, l’organisation indépendamment de leur réalisation logicielle, et la réalisation logicielle indépendamment de leur exécution opérationnelle.

Cette séparation constitue l’originalité de SympLab. Il ne s’agit pas simplement d’un framework de simulation, mais d’une plateforme de connaissances scientifiques exécutables, dans laquelle chaque couche possède une responsabilité conceptuelle claire, bien définie et durable.

Structure du dépôt

symplab/
├── core/
│   ├── domain/
│   │   ├── execution/
│   │   ├── ontology/
│   │   └── scientific/
│   ├── infrastructure/
│   │   ├── adapters/
│   │   └── factories/
│   ├── services/
│   ├── engines/
│   ├── events/
│   └── kernel.py
├── api/
├── cli/
├── schemas/
└── docs/

Le projet suit une approche de Domain-Driven Design (DDD) dans laquelle les concepts scientifiques définissent l’architecture.

État actuel

SympLab est actuellement en cours de développement actif.

Le premier jalon se concentre sur la mise en œuvre des fondations de SympLab-Core au travers d’un workflow scientifique complet. Le début du deuxième jalon est prévu pour Septembre 2026.

Problème de référence :

Simuler l’oscillateur harmonique à l’aide de l’intégrateur Symplectic Euler, avec un pas de temps de 0,05, pendant 200 étapes d’intégration, et produire le graphique Temps vs Énergie.

Chaque composant implémenté au cours de la Phase 1 doit contribuer directement à la résolution de ce problème scientifique.

Documentation

La documentation est organisée sous la forme d’une collection de livres architecturaux.

Livre I — Scientific Fondations

Livre II — SympLab Core

Livre III — Architecture and Development Guidelines

Livre IV — Technical Architecture (future)

Livre V — Scientific Packages (future)

Les livres I et II décrivent l’architecture conceptuelle indépendamment des détails d’implémentation. Toute la documentation est écrit en Anglais qui est la longue officielle du projet.

Vision à long terme

SympLab a pour ambition d’évoluer vers un écosystème scientifique ouvert dans lequel les chercheurs pourront :

  • publier des SympPrints ;
  • partager des Packages scientifiques ;
  • comparer des implémentations indépendantes ;
  • exécuter des expériences sur des infrastructures hétérogènes ;
  • reproduire les résultats publiés ;
  • construire des workflows scientifiques réutilisables ;
  • collaborer au sein d’une plateforme partagée de connaissances scientifiques.

Les versions futures incluront :

  • l’exécution distribuée ;
  • des backends cloud-native ;
  • des workflows scientifiques assistés par l’IA ;
  • des langages spécifiques à un domaine (DSL) ;
  • des dépôts communautaires de Packages ;
  • des publications scientifiques exécutables.

Contribution

SympLab est développé autour d’une philosophie simple :

L’architecture découle des connaissances scientifiques.

Les contributions sont encouragées non seulement dans le développement logiciel, mais également dans la modélisation scientifique, la documentation, les méthodes numériques et la conception de la plateforme. Consultez notre guide de contribution.

Licence

Ce projet est distribué sous les licences AGPL-3.0-or-later et CC-BY-SA-4.0.

Consultez les détails dans Licensing.

Define the science. Execute anywhere.