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.