Skip to content

Latest commit

 

History

59 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atoms

Hydrogen Quantum Orbital Visualizer

Atoms is an independent web application built around a tested TypeScript scientific core. It provides hydrogen wavefunctions, probability densities, real-orbital combinations, deterministic sampling, Web Worker execution and Three.js rendering. See the scientific contract, the institutional references and the validation report for scope, formulas, conventions, sources and reproducible qualification.

Interface Atoms en thème sombre affichant l’orbitale réelle 3d_xy, issue des composantes m égales à plus ou moins 2, colorée selon la phase de psi en mode hybride avec 16 000 échantillons

3dxy · base réelle · n = 3, l = 2 · combinaison normalisée issue des composantes m = ±2 · phase de ψ · rendu hybride · 16 000 échantillons

Visualisation interactive des orbitales quantiques de l’atome d’hydrogène directement dans le navigateur.

Build Status Stars Issues Three.js


Table des matières


Présentation

Hydrogen Quantum Orbital Visualizer est un outil web interactif conçu pour explorer les orbitales quantiques de l’atome d’hydrogène. Il permet de visualiser en 3D les densités de probabilité électronique basées sur les solutions analytiques de l’équation de Schrödinger indépendante du temps.

Ce projet vise à rendre la mécanique quantique plus accessible et pédagogique, en offrant une expérience interactive directement dans un navigateur web moderne, sans besoin d’installation lourde. Il est idéal pour les étudiants, enseignants et passionnés de physique quantique.

Note : Atoms est une application web scientifique autonome conçue pour une exploration interactive et reproductible des orbitales quantiques de l’atome d’hydrogène.

Dépôt public : github.com/Giscolab/Atoms.

Démonstration en ligne : giscolab.github.io/Atoms


Fonctionnalités

  • Visualisation 3D interactive : explorez les orbitales avec rotation volontaire de la caméra, zoom et réinitialisation du cadrage dans un repère en a₀.
  • États complexes et orbitales réelles distincts : choisissez n, l, m dans la base complexe ou les combinaisons réelles p/d disponibles, sans assimiler un m isolé à pₓ ou pᵧ.
  • Nuage probabiliste : les positions sont échantillonnées selon |ψ|² dV dans un Web Worker. Les points représentent une distribution, jamais des électrons individuels ou une trajectoire.
  • Modes scientifiques : densité, phase et mode hybride, avec isosurface de densité et surface nodale ψ = 0 uniquement lorsque cette dernière est interprétable.
  • Isodensité raffinée côté rendu : extraction Marching Cubes sur subdivision trilinéaire du champ scientifique inchangé, normales issues du gradient, matériau dédié et éclairage contrôlé. Voir Rendu des isodensités.
  • Analyses latérales : courbe radiale r²|Rₙₗ|², coupe géométrique de |Yₗᵐ|², énergie du modèle à masse réduite, rayon attendu et nombres de nœuds.
  • Reproductibilité et thèmes : seed uint32 affichée, génération relançable, thèmes sombre et clair équivalents, responsive et respect de prefers-reduced-motion.
  • Snapshots scientifiques : import/export JSON v1 strict avec unités, provenance numérique, état orbital, rendu, seed et caméra, plus capture PNG de la vue 3D courante. Voir le contrat des snapshots.

Modèle quantique

La visualisation repose sur la fonction d’onde de l’atome d’hydrogène, définie par trois nombres quantiques principaux :

Symbole Nom Signification Valeurs possibles
n Nombre quantique principal Détermine le niveau d’énergie et la taille de l’orbitale Entier ≥ 1
l Nombre quantique azimutal Détermine la forme de l’orbitale Entier de 0 à n-1
m Nombre quantique magnétique Détermine l’orientation spatiale Entier de -l à +l

Densité de probabilité

La densité de probabilité affichée est calculée comme suit :

|Ψₙₗₘ(r, θ, φ)|² = |Rₙₗ(r)|² · |Yₗₘ(θ, φ)|²

Où :

  • Rₙₗ(r) est la partie radiale.
  • Yₗₘ(θ, φ) est la partie angulaire (harmoniques sphériques).

Cette quantité est une densité de probabilité volumique ; une probabilité finie s'obtient après intégration sur un volume. La mesure volumique utilisée pour le sampling est |Ψ|² r² sin(θ) dr dθ dφ, tandis que la valeur de densité stockée reste |Ψ|² sans jacobien. Les conventions et les limites du modèle sont détaillées dans le contrat scientifique.

Types d’orbitales

Explorez diverses orbitales classées par leur forme et énergie :

Type Description Exemples
s (l=0) Symétrie sphérique, sans nœuds angulaires 1s, 2s, 3s
p (l=1) Formes lobées avec un nœud plan 2p_x, 2p_y, 2p_z
d (l=2) Géométries complexes avec plusieurs lobes 3d_xy, 3d_xz, etc.
f (l=3) Structures encore plus élaborées 4f et supérieurs
États excités Orbitales de haute énergie avec nœuds radiaux multiples n ≥ 4

Pile technologique

Technologie Version Rôle
HTML5 - Structure de base de l’application
CSS3 - Styles et mise en forme responsive
TypeScript 7.0.2 Logique interactive et calculs quantiques
WebGL 2.0 Rendu 3D accéléré par GPU
Three.js r185 Bibliothèque pour la manipulation 3D et les scènes
npm - Gestion des dépendances et des commandes de développement

Three.js et les outils de développement sont installés de façon reproductible depuis package-lock.json avec npm.


Installation

Prérequis

  • Un navigateur web moderne (Chrome/Edge, Firefox ou Safari) avec support WebGL2.
  • Node.js 24.19.0 LTS et npm.

Étapes

  1. Cloner le dépôt :

    git clone https://github.com/Giscolab/Atoms.git
    cd Atoms
  2. Installer les dépendances :

    npm install
  3. Lancer un serveur local :

    npm run dev
  4. Ouvrir l’application : Accédez à http://localhost:5173 (ou au port indiqué par Vite).


Utilisation

  1. Ouvrez l’application dans votre navigateur.
  2. Choisissez la base complexe ou une orbitale réelle, puis les nombres quantiques valides.
  3. Choisissez l’observable (densité ou phase) et le mode d’affichage ; ajustez le seuil, l’opacité et le nombre de points si nécessaire.
  4. Interagissez avec la vue 3D : glisser pour orienter la caméra, molette ou pinch pour zoomer, touche 0 ou bouton dédié pour réinitialiser la vue.
  5. Pour reproduire une génération isolée, conservez la seed affichée et relancez « Générer l’état ».
  6. Pour archiver ou partager l'état complet, utilisez Exporter JSON ; Importer JSON valide strictement le snapshot avant régénération et restauration de la caméra.
  7. Utilisez Capture PNG pour exporter la frame 3D courante. Le PNG est une illustration ; le snapshot JSON reste la référence reproductible.

Captures d'écran

Ces captures documentent plusieurs usages du même pipeline orbital 3D. Elles servent à présenter l’interface et ses conventions visuelles. Les régressions scientifiques déterministes versionnées et leur protocole sont décrits dans VALIDATION.md.

Orbitale réelle 3d_xy en thème sombre, phase de psi, nuage probabiliste et isosurface de densité, avec 16 000 échantillons

Vue de référence. Orbitale réelle 3dxy · n = 3, l = 2 · combinaison normalisée issue des composantes m = ±2 · phase de ψ · mode hybride · 16 000 échantillons. Cette vue réunit le nuage probabiliste, l’isosurface de densité et les analyses radiale et angulaire.

Orbitale réelle excitée 8d x carré moins y carré en thème sombre, colorée selon la phase de psi et affichée en nuage de 16 000 échantillons

État excité étendu. Orbitale réelle 8dx²−y² · n = 8, l = 2 · combinaison normalisée issue des composantes m = ±2 · phase de ψ · nuage de points · 16 000 échantillons. Cette vue met en évidence l’extension spatiale et la structure radiale d’un état de grand n.


Contribution

Les contributions sont les bienvenues ! Suivez ces étapes :

  1. Forkez le dépôt.
  2. Créez une branche : git checkout -b feature/nouvelle-fonction.
  3. Committez vos changements : git commit -m 'Ajout de nouvelle fonction'.
  4. Poussez : git push origin feature/nouvelle-fonction.
  5. Ouvrez une Pull Request.

Consultez les Issues pour le suivi des bugs.

Idées de contributions : Ajout de support pour d’autres atomes, optimisation mobile, ou internationalisation.


Licence

Atoms est publié sous licence MIT. Les dépendances tierces conservent leurs licences respectives.


Objectifs

  • Rendre la mécanique quantique visuellement intuitive pour l’éducation.
  • Fournir un outil interactif pour la visualisation scientifique.
  • Démontrer les capacités des technologies web (WebGL, Three.js) pour des simulations complexes.
  • Encourager des expérimentations pédagogiques et des extensions communautaires.

Développé avec Three.js

Si vous appréciez ce projet, donnez une ⭐ sur GitHub ! Pour toute question, ouvrez une issue.

About

outil web interactif conçu pour explorer les orbitales quantiques de l’atome d’hydrogène.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages