Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Quantum App : Plateforme de Formation en Programmation Quantique 3D

Quantum App est une application interactive alliant la rigueur des simulations physiques réelles à la puissance visuelle de la 3D. Elle permet d'apprendre la programmation quantique pas à pas grâce à un programme progressif de 10 modules synchronisés (Cours Théoriques $\to$ Travaux Pratiques Python $\to$ Visualisations 3D interactives).

L'application repose sur un découplage strict :

  1. Simulation Quantique (Backend) : Un serveur Python motorisé par Qiskit et FastAPI.
  2. Visualisation Interactive (Frontend) : Une application native Tauri avec React et React Three Fiber (Three.js).

Les trois premiers modules sont actuellement intégrés dans l'application : préparation libre d'un qubit avec les angles $\theta$ et $\phi$, choix des six états remarquables, visualisation sur la sphère de Bloch, puis application séquentielle des portes $X$, $Y$, $Z$, $H$, $S$ et $T$. Le Module 3 ajoute les rotations paramétriques $R_x(\gamma)$, $R_y(\gamma)$ et $R_z(\gamma)$, leur trajectoire animée, la phase relative ainsi que des analyseurs de mesure selon $X$, $Y$ et $Z$. Le bandeau du contrôleur conserve l'ordre des opérations et permet de réinitialiser le circuit dans $|0\rangle$.


Prérequis Système

Avant de commencer, assurez-vous d'avoir installé les outils suivants sur votre machine :

1. Pour le Backend Quantique

  • Python 3.10+
  • Un gestionnaire d'environnement virtuel (conseillé : venv)

2. Pour le Frontend & l'Application Native

  • Node.js 18+ (avec npm, yarn ou pnpm)
    • le site pédagogique Quartz 5 demande Node.js 22+ ; cette version convient également à l'application ;
  • Rust Toolchain (nécessaire pour la compilation native de Tauri) :
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Dépendances système pour Tauri (sur Linux/Ubuntu) :
    sudo apt-get update
    sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev

Installation et Démarrage rapide

Méthode recommandée : commandes simplifiées

Depuis la racine du projet, l'installation initiale se fait avec :

make install

Pour le développement quotidien :

make dev

Cette commande lance le moteur Python et l'interface web. Ouvrez ensuite http://127.0.0.1:5173. Un seul Ctrl+C arrête les deux services.

Il est également possible de les lancer en arrière-plan :

make up
make status
make logs
make down

make logs se quitte avec Ctrl+C sans arrêter l'application. Pour ouvrir la version native Tauri, utilisez make desktop. La liste complète des commandes est disponible avec make help.

Site pédagogique navigable

Les cours restent rédigés dans cours/ et peuvent toujours être lus dans Obsidian. Quartz leur ajoute une interface web avec recherche, graphe de connaissances, sommaires, backlinks, aperçus au survol et rendu LaTeX.

Après installation de Node.js 22 ou d'une version ultérieure :

make docs-install
make docs-up

Le site est alors disponible sur http://127.0.0.1:8080. Utilisez make docs-down pour l'arrêter, make docs-status pour vérifier son état et make docs-build pour contrôler sa construction.

Le dossier site/content/ relie les documents canoniques du projet : il ne constitue pas une seconde copie à maintenir.

Les étapes manuelles ci-dessous restent disponibles en cas de besoin.

Étape 1 : Configurer et démarrer le Backend Python

  1. Ouvrez un terminal dans le répertoire backend/ :

    cd backend
  2. Créez et activez un environnement virtuel Python :

    # Sur Linux/macOS
    python3 -m venv .venv
    source .venv/bin/activate
    
    # Sur Windows (cmd)
    python -m venv .venv
    .venv\Scripts\activate
  3. Installez les dépendances requises :

    pip install --upgrade pip
    pip install -r requirements.txt

    (Note : les dépendances incluent fastapi, uvicorn, websockets, qiskit, qiskit-aer)

  4. Lancez le serveur de développement :

    python main.py

    Le serveur de simulation écoutera sur http://localhost:8000 et la passerelle WebSocket sur ws://localhost:8000/ws.


Étape 2 : Configurer et démarrer le Frontend Tauri/React

  1. Ouvrez un nouveau terminal dans le répertoire app/ :

    cd app
  2. Installez les dépendances Node.js :

    npm install
  3. Démarrez l'application en mode de développement :

    • Mode Web classique (dans le navigateur) :

      npm run dev

      L'application sera accessible sur http://localhost:5173.

    • Mode Desktop natif (via Tauri) :

      npm run tauri dev

      Ceci compilera le moteur Rust et ouvrira une fenêtre d'application native connectée au serveur de simulation local.


Structure d'Apprentissage

Le TP du Module 3 bis — Décohérence est prêt à réaliser après le quiz validé. Depuis la racine, avec l'environnement des exercices activé :

python -m pip install -r exercices/requirements.txt
python exercices/04_simulation_decoherence.py --state plus --channel none

Le TP propose un rapport lisible et une sortie --json. Ses tests dédiés se lancent avec python -m unittest discover -s exercices -p 'test_decoherence.py' dans ce même environnement.

Lecture dans Obsidian

Ouvrez le dossier racine du projet quantum-app/ comme coffre Obsidian. La configuration .obsidian/ fournie utilise des liens Markdown relatifs et permet d'accéder depuis les cours au plan, au suivi et aux exercices. N'ouvrez pas uniquement cours/ comme coffre : les documents situés au niveau supérieur seraient alors hors de portée d'Obsidian.

Le projet est conçu pour être parcouru de manière guidée :

  • PLAN_DE_COURS.md : Le programme des 10 modules de formation (à consulter à tout moment pour suivre votre progression).
  • cours/README.md : L'accueil navigable des cours et l'index des notions déjà étudiées.
  • SUIVI_APPRENTISSAGE.md : L'état de validation des cours, quiz, TP et composants interactifs.
  • cours/ : Les fiches théoriques associées à chaque module de cours rédigées par le professeur.
  • exercices/ : Les Travaux Pratiques en Python pur à compléter à la fin de chaque module théorique.
  • ARCHITECTURE.md : La description détaillée de l'organisation du code et des types de messages WebSocket échangés.
  • SPECIFICATION_MODULE_3_BIS.md : Le contrat fonctionnel et technique détaillé du futur laboratoire interactif de décohérence.

Contribution et Développements

  • Pour modifier la logique physique ou ajouter une nouvelle simulation d'algorithme quantique, modifiez la logique dans le dossier backend/quantum/.
  • Pour ajouter ou faire évoluer une vue 3D de la Sphère de Bloch ou d'un circuit 3D, intervenez dans le répertoire app/src/components/ à l'aide de React Three Fiber.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages