Système Intelligent Génératif et Méthodique Assisté
Assistant d'écriture de scénario qui accompagne l'auteur du synopsis au scénario complet, étape par étape, avec une assistance IA à chaque palier. Construit avec React, Vite, TypeScript et OpenAI.
🧪 Bêta. SIGMA est en cours de développement. Des aspérités sont attendues — les retours sont bienvenus.
SIGMA est le versant cinéma d'un projet de recherche-création articulé autour d'un modèle original, l'Intégrale Dramatique :
S(t) = ∫₀ᵗ [V(τ) · P(t|τ)] · C(t) dτ
Ce modèle pose qu'un récit et un parcours d'apprentissage obéissent au même opérateur : une tension (ou un sens) S(t) s'accumule dans le temps, et un opérateur de rétroaction P(t|τ) — l'anagnorisis d'Aristote, l'après-coup — réévalue rétroactivement la valeur des évènements passés au moment du climax.
L'ambition de SIGMA est de mettre ce modèle au travail sur le terrain scénaristique : cartographier la tension accumulée S(t) le long d'un scénario, et donner à voir la friction (le tenseur de contexte C) entre la psyché des personnages et les contraintes du monde. Les fonctionnalités décrites ci-dessous en constituent la base concrète ; la cartographie dramatique complète est l'horizon de développement.
SIGMA a un jumeau côté pédagogie : SAGE, qui applique le même modèle à la conception de séances. Voir github.com/Ghost0fMars/sage.
- Parcours d'écriture en cinq étapes : synopsis, synopsis développé, scène à scène, traitement, scénario.
- Fiche projet : titre, logline, notes de travail et progression.
- Tableau de scènes réordonnable : types dramatiques, indications, description et information clé.
- Assistance IA par étape, dont la génération structurée du scène à scène.
- Sauvegarde automatique dans le navigateur, isolée par utilisateur connecté.
- Export Markdown complet du projet.
- PWA : installable sur ordinateur et mobile, écran principal disponible hors connexion.
- React + Vite + TypeScript
- shadcn/ui (composants)
- OpenAI via une fonction serverless Vercel (
/api/generate) - Supabase — authentification (e-mail) et approbation manuelle des comptes
- Vercel — hébergement et fonctions serverless
- PWA — installation et mode hors-ligne partiel
Prérequis : Node.js 18+.
- Installez les dépendances :
npm install- Créez un fichier
.env.localà la racine (ignoré par git, à ne jamais committer) :
# Clé OpenAI — reste côté serveur (fonction Vercel /api/generate), non exposée au navigateur
OPENAI_API_KEY=votre_cle_openai
OPENAI_MODEL=gpt-5
# Supabase — exposées au client via le préfixe VITE_ (la clé anon est publique par conception)
VITE_SUPABASE_URL=https://votre-projet.supabase.co
VITE_SUPABASE_ANON_KEY=votre_cle_anon_supabase🔐 La clé OpenAI ne doit pas porter le préfixe
VITE_: seules les variablesVITE_*sont injectées dans le bundle client. La garder sans préfixe la maintient côté serveur.
- Lancez l'application :
npm run devServie par défaut sur http://localhost:3000.
Si npm run dev est bloqué par PowerShell, lancez plutôt npm.cmd run dev.
Pour ouvrir le projet dans VS Code, double-cliquez sur open-in-vscode.cmd. Vous pouvez aussi utiliser la tâche VS Code : Ctrl+Shift+P → Tasks: Run Task → Lancer Sigma.
Alternative : double-cliquez sur start-auteur.cmd, puis ouvrez http://localhost:3000.
- Créez un projet sur supabase.com.
- Dans
Authentication > Providers, activezEmail. - Pour un test rapide, vous pouvez désactiver la confirmation e-mail dans
Authentication > Sign In / Providers > Email. - Copiez
Project URLetanon public keydepuisProject Settings > API. - Renseignez
VITE_SUPABASE_URLetVITE_SUPABASE_ANON_KEY(en local dans.env.local, en production dans Vercel).
Les projets d'écriture sont sauvegardés dans le navigateur (localStorage), isolés par utilisateur connecté, et synchronisés en best-effort vers une table Supabase projects à chaque sauvegarde manuelle. En cas d'échec réseau, le projet reste utilisable localement et une nouvelle tentative de synchronisation est faite automatiquement au chargement suivant de l'application. La page « Mes Projets » affiche un badge Synchronisé / Local uniquement par projet pour rendre cet état visible — un projet resté « Local uniquement » peut être perdu en cas de changement de navigateur ou de vidage du cache avant sa prochaine synchronisation réussie.
SIGMA laisse les utilisateurs créer un compte, mais bloque l'accès à l'application tant que le compte n'est pas approuvé.
- Dans Supabase, ouvrez
SQL Editor. - Exécutez le contenu de
supabase/manual-approval.sql. - Laissez les inscriptions activées dans
Authentication > Providers > Email. - À chaque inscription, ouvrez
Table Editor > profiles. - Passez la colonne
approveddefalseàtruepour autoriser l'accès.
Tant que approved vaut false, l'utilisateur voit une page d'attente.
Réglages recommandés :
- Framework Preset :
Vite - Build Command :
npm run build - Output Directory :
dist - Install Command :
npm install
Variables d'environnement à ajouter dans Vercel : OPENAI_API_KEY, OPENAI_MODEL (optionnel, défaut gpt-5), VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY.
La clé OpenAI reste côté serveur via la fonction /api/generate ; elle n'est pas injectée dans le navigateur. Les fonctions IA et Supabase nécessitent une connexion internet.
Après déploiement, SIGMA s'installe comme une application :
- Chrome / Edge (ordinateur) : icône d'installation dans la barre d'adresse.
- Android : menu
⋮→Ajouter à l'écran d'accueil/Installer l'application. - iPhone / iPad : bouton de partage dans Safari →
Sur l'écran d'accueil.
npm run dev # serveur de développement Vite
npm run build # build de production
npm run lint # vérification TypeScript
npm run clean # supprime le dossier distSIGMA manipule deux types de données : vos projets d'écriture (stockés localement dans votre navigateur, et synchronisés en best-effort vers Supabase si l'application est configurée avec des identifiants Supabase — voir « Configurer Supabase » ci-dessus) et, si vous créez un compte, votre e-mail d'authentification (géré par Supabase). Aucune donnée tierce sensible n'est traitée. Les textes envoyés à l'IA transitent par l'API OpenAI le temps de la génération.
- Cartographie de la tension dramatique S(t) le long du scénario (visualisation de l'Intégrale Dramatique).
- Modélisation du tenseur de contexte C : friction entre trajectoires des personnages et antagonisme du monde.
- Synchronisation best-effort des projets vers Supabase (avec badge de statut par projet et retentative automatique au chargement).
Ce projet est distribué sous licence GNU Affero General Public License v3.0 (AGPL-3.0). Voir le fichier LICENSE.
Copyright (C) 2026 Étienne — àlaclé
En résumé :
- Vous êtes libre d'utiliser, d'étudier, de modifier et de redistribuer SIGMA.
- Toute version modifiée et redistribuée doit elle-même rester ouverte sous AGPL-3.0 — y compris si elle est mise à disposition via un service en réseau (l'AGPL ferme le « trou SaaS » : héberger une version modifiée oblige à en publier le code source). C'est particulièrement pertinent ici, SIGMA étant déployé comme application web.
- Les mentions de copyright doivent être conservées et les modifications signalées.
- Le logiciel est fourni « tel quel », sans aucune garantie.
Ce choix garantit que SIGMA reste libre et ouvert pour toujours : personne ne peut s'en saisir pour en faire une version fermée et propriétaire.
En tant que titulaire des droits, l'auteur conserve la liberté d'utiliser SIGMA selon d'autres modalités. L'AGPL ne lie que les tiers.
Développé par Étienne dans le cadre de àlaclé, comme artefact de recherche-création.