# HOT MOTOR MOTION > Éditeur de motion design qui tourne entièrement dans le navigateur (Canvas 2D) et > en application de bureau (Tauri). Timeline, images clés, courbes d'accélération > appliquées par segment, assistant IA multi-fournisseurs, export WebM jusqu'à 4K, > lecteur HTML autonome. Aucun compte, aucun serveur, aucun envoi de fichier. Application web : https://app.zigmoon.com/motion/ (l'interface, directement) Code source (MIT) : https://github.com/zigmoon/HOTMOTORMOTION Téléchargements macOS / Windows / Linux : https://github.com/zigmoon/HOTMOTORMOTION/releases/latest Version 1.1.0. Interface en français, code et API en anglais. ## Faits vérifiables - Le moteur est du JavaScript sans dépendance : `index.html` + `js/` + `css/` forment l'application. Aucune étape de compilation n'est nécessaire pour l'utiliser. - Le canevas de travail fait 800 × 450 unités, prévisualisé à 60 images par seconde. - Un projet est un fichier JSON unique (`{"app":"HOT MOTOR MOTION","version":"1.0",…}`) contenant `duration`, `canvas`, `bgColor` et un tableau `shapes`. - Une image clé s'écrit `{ "t": secondes, "v": valeur, "e": courbe }`. La courbe décrit le segment qui **commence** à cette image clé ; la dernière n'en porte généralement pas. - Quatorze courbes : `linear`, `sineIn`, `sineOut`, `sineInOut`, `cubicIn`, `cubicOut`, `cubicInOut`, `expoIn`, `expoOut`, `expoInOut`, `backOut`, `backInOut`, `elasticOut`, `spring`. Elles sont appliquées au rendu, dans l'éditeur comme dans chaque export. - Types de forme : `Rect` (width, height), `Circle` (radius), `Text` (text, fontSize, fontFamily, fontWeight), `SVG` (data URL). - Propriétés animables : x, y, z, width, height, radius, rotation, rotationX, rotationY, scaleX, scaleY, skewX, skewY, opacity, blur, glow, hue, saturation, brightness, contrast. (`fill` et `glowColor` sont statiques.) - 36 presets répartis en six familles, 16 scripts rapides appliqués à la sélection. - Exports : HTML autonome, JavaScript, JSON, WebM (jusqu'à 3840 × 2160), SVG d'une image fixe (via la CLI Rust). - Sauvegarde automatique locale : `localStorage`, avec repli IndexedDB ; restauration proposée au retour, jamais appliquée sans accord. Rien ne quitte la machine. - Annulation : 50 étapes, instantanés complets de la scène. - PWA : service worker précachant le moteur, page `offline.html` de secours. ## Assistant IA (facultatif) - Dix fournisseurs : OpenAI, Anthropic (Claude), Google (Gemini), xAI (Grok), DeepSeek, Groq, Mistral, Cohere, OpenRouter, Ollama (local). - La liste des modèles est lue chez le fournisseur (`/models`, ou `/api/tags` pour Ollama), filtrée sur les modèles de conversation et classée par famille puis par date de publication : les modèles récents apparaissent sans mise à jour de l'éditeur. - La clé API reste en mémoire de l'onglet ; elle n'est jamais écrite sur le disque. - Le modèle renvoie un JSON strict (`action: add | modify | replace` + formes + images clés) qui est normalisé avant d'atteindre la scène : courbes inconnues écartées, valeurs non numériques rejetées, chaque édition annulable. - Deux relais serveur existent, tous deux fermés par liste blanche d'hôtes : `proxy.php` (hébergement PHP) et `/api/ai` (déploiement Node). Aucun n'accepte une URL arbitraire. ## Application de bureau - Coquille Tauri 2 embarquant exactement la même application web. - Installeurs produits par l'intégration continue sur de vraies machines : `.dmg` (Apple Silicon et Intel), `.exe` NSIS et `.msi` (Windows x64), `.deb` et `.AppImage` (Linux x64). - Non signés ni notariés : macOS peut demander clic droit → Ouvrir, Windows peut afficher SmartScreen. - Les exports (JSON, HTML, WebM) sont écrits dans le dossier Téléchargements par une commande Rust dédiée, sans écraser un fichier existant. ## Ligne de commande `motion-cli` (Rust, aucune dépendance externe) : ``` motion-cli inspect motion-cli validate motion-cli render [--at ] [--scale ] [--guides] [-o ] motion-cli to-html [-o ] motion-cli to-json [-o ] motion-cli serve [dossier] [--port ] ``` ## Pages - [Application](https://app.zigmoon.com/motion/) : l'éditeur complet. C'est la seule page — le site n'a pas de page de présentation. - [Démonstration](https://app.zigmoon.com/motion/hot-motor-motion-demo.mp4) : 18 s, 1600 × 900, rendue image par image par le moteur depuis une scène écrite par DeepSeek (`scripts/demo/scene.json`). - [llms-full.txt](https://app.zigmoon.com/motion/llms-full.txt) : le même contenu, développé. - [Plan du site](https://app.zigmoon.com/motion/sitemap.xml). ## Licence et crédits MIT. Auteur : Simon Dupont (zigmoon). Le logo et les icônes sont générés depuis le logo de l'interface par `scripts/build-icons.mjs`.