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
L'application repose sur un découplage strict :
- Simulation Quantique (Backend) : Un serveur Python motorisé par Qiskit et FastAPI.
- 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
Avant de commencer, assurez-vous d'avoir installé les outils suivants sur votre machine :
- Python 3.10+
- Un gestionnaire d'environnement virtuel (conseillé :
venv)
- Node.js 18+ (avec
npm,yarnoupnpm)- 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
Depuis la racine du projet, l'installation initiale se fait avec :
make installPour le développement quotidien :
make devCette 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 downmake 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.
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-upLe 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.
-
Ouvrez un terminal dans le répertoire
backend/:cd backend -
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
-
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) -
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.
-
Ouvrez un nouveau terminal dans le répertoire
app/:cd app -
Installez les dépendances Node.js :
npm install
-
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.
-
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 noneLe 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.
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.
- 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.