Cahier des charges — Crystal Rain Studio
Version 1.0
5 novembre 2026
• Document de cadrage produit et technique
Version : 1.0 — 5 novembre 2026
Permettre à un utilisateur de créer une vidéo en réalisant les actions suivantes :
Objectif : développer une application web qui transforme automatiquement une mélodie en vidéo 3D photoréaliste, montrant des gouttes d'eau se formant sur des végétaux, tombant sur des instruments musicaux et produisant une composition synchronisée.
Nature du projet : Application web de génération automatisée de vidéos musicales 3D photoréalistes
Le projet Crystal Rain Studio consiste à développer une application permettant de créer automatiquement des vidéos musicales hypnotiques, relaxantes et visuellement réalistes.
Les vidéos reposent initialement sur le principe suivant :
Des végétaux sont disposés dans la partie supérieure d'une scène.
Des gouttes d'eau apparaissent au bout des feuilles, grossissent et se détachent.
Les gouttes tombent vers des instruments situés plus bas.
Chaque impact déclenche une note précise d'une mélodie.
Certains instruments sont fixes, tandis que d'autres peuvent être installés sur un mécanisme rotatif.
L'ensemble est filmé par une caméra virtuelle reproduisant une photographie macro réaliste.
Les animations sont automatiquement synchronisées à un fichier musical importé.
Le logiciel devra produire des scènes variées à partir d'un moteur commun.
Application de bureau accessible dans un navigateur.
Le logiciel doit permettre de changer les décors, notamment pour Noël ou d'autres saisons, d'ajouter des textes, de prévisualiser le résultat et d'exporter des vidéos prêtes à publier sur YouTube Shorts, TikTok et Instagram Reels.
Le produit devra satisfaire quatre exigences fondamentales :
Variabilité : une même mélodie doit pouvoir générer plusieurs vidéos distinctes en changeant le décor, les instruments, le cadrage et la graine de génération.
Valider visuellement une goutte réaliste et sa collision avec un carillon.
Phase 1 — Moteur musical et animation
Transformer automatiquement un MIDI en gouttes, notes et impacts.
Phase 2 — Studio MVP et export
Importer, configurer, prévisualiser, ajouter du texte et exporter.
Phase 3 — Photoréalisme avancé
Végétation, gouttes déformables, carrousel, éclairage et caméra cinématographique.
Phase 4 — Packs de décors
Noël, Sakura, automne, Halloween, forêt tropicale, etc.
Phase 5 — Réalisation automatique et export professionnel
Caméra musicale, transitions, MP4 de qualité et rendu déterministe.
Phase 6 — Génération industrielle
Lots de vidéos, variantes automatiques, gestion des projets et bibliothèque d'assets.
Phase 7 — Extensions futures
Import audio, nouvelles machines musicales, génération assistée par IA et éventuel SaaS.
Importer un fichier MIDI.
Choisir un environnement visuel.
Sélectionner les instruments et les paramètres d'animation.
Générer automatiquement une scène 3D cohérente.
Prévisualiser le résultat avec sa musique.
Ajouter éventuellement des textes et des éléments graphiques.
Exporter une vidéo avec audio intégré.
Aucune animation manuelle des gouttes, feuilles ou instruments ne doit être obligatoire.
UC-05 — Exporter
L'utilisateur choisit le format vertical, la résolution et la qualité, puis génère une vidéo intégrant l'audio et les textes.
UC-06 — Produire plusieurs vidéos
À terme, l'utilisateur importe plusieurs fichiers MIDI et lance une file de production automatisée.
Formats acceptés :
.mid
.midi
Le logiciel doit analyser :
Les pistes musicales.
Les notes MIDI.
Les instants de début des notes.
Les durées.
Les vélocités.
Les changements de tempo.
Les accords.
Les instruments déclarés, lorsque disponibles.
Les changements éventuels de mesure.
Les événements doivent être convertis dans une timeline commune, exprimée en secondes.
Les changements de tempo doivent être respectés.
Le moteur doit :
Trier les événements chronologiquement.
Identifier les notes simultanées.
Identifier les notes répétées.
Repérer les zones de forte et faible densité musicale.
Détecter les passages nécessitant plusieurs gouttes à la fois.
Identifier les limites de densité visuelle.
Signaler les notes impossibles à représenter proprement avec le décor choisi.
Une note n'a pas nécessairement besoin d'être représentée par une goutte unique : des notes secondaires peuvent être associées à un autre mécanisme, notamment dans les morceaux complexes.
Toute simplification visuelle doit être configurable.
Chaque événement musical doit être associé à :
Un instrument.
Une position d'impact.
Une feuille ou un émetteur.
Une goutte ou un mécanisme.
Une trajectoire.
Une animation de collision.
Un son.
Une durée de résonance.
Règle fondamentale : toutes les notes audibles appartenant à la mélodie principale doivent disposer d'une représentation visuelle cohérente.
Pour un MIDI polyphonique complexe, le moteur pourra distinguer une piste principale des pistes d'accompagnement et utiliser différents systèmes visuels.
Bibliothèque initiale :
Cloche en verre.
Carillon de cristal.
Lame de verre.
Kalimba douce.
Marimba.
Percussion d'eau.
Bibliothèque future :
Petites cloches métalliques.
Lames métalliques.
Tubes sonores.
Bols résonants.
Cordes.
Percussions mécaniques.
Le moteur audio doit prendre en charge les échantillons enregistrés et, si nécessaire, la synthèse sonore.
Chaque note doit être adaptée à la hauteur demandée, tout en minimisant les artefacts de transposition.
Une couche sonore d'ambiance pourra être ajoutée : pluie, forêt, vent léger, eau, bruissement de feuilles.
Permettre l'import de fichiers :
WAV.
MP3.
FLAC, éventuellement.
Deux modes distincts devront être prévus :
Mode transcription : tentative de conversion de l'audio en notes et événements musicaux.
Mode synchronisation : utilisation d'une piste audio fournie avec un MIDI correspondant.
Le mode transcription devra signaler ses erreurs potentielles et permettre une correction manuelle des notes détectées.
La scène doit être divisée en zones logiques indépendantes :
Zone supérieure : végétation et points d'émission des gouttes.
Zone centrale : espace de chute et instruments suspendus.
Zone inférieure : carrousel éventuel, supports, récipients et décors.
Arrière-plan : environnement naturel ou saisonnier.
Couche caméra : cadrage, mouvement, mise au point et profondeur de champ.
Couche graphique : textes, logos et éléments éditoriaux.
Le moteur doit créer une scène à partir :
D'un fichier MIDI.
D'un thème.
D'un preset de composition.
D'un niveau de complexité.
D'une graine aléatoire.
D'une configuration caméra.
D'un jeu d'instruments.
D'une configuration de lumières.
La génération doit être reproductible.
Le nombre de cristaux peut dépendre des notes utilisées, mais ne doit pas nécessairement correspondre à une pièce différente pour chaque hauteur MIDI. Des stratégies de regroupement, de réutilisation et de variation d'instruments sont autorisées.
Le générateur doit détecter et limiter :
Les collisions entre objets du décor.
Les trajectoires traversant des branches.
Les gouttes passant derrière des instruments sans visibilité.
Les instruments hors du cadre.
Les superpositions excessives.
Les accords générant trop de gouttes au même endroit.
Les problèmes de perspective.
Les éléments de texte masquant les impacts.
En cas d'échec de placement, le moteur doit tenter une autre configuration ou utiliser une solution de repli.
Chaque modèle végétal peut contenir :
Plusieurs feuilles.
Une branche principale.
Des branches secondaires.
Des textures haute définition.
Des matériaux avec transparence et diffusion de la lumière.
Des variations de couleur.
Des points d'attache pour les gouttes.
Des paramètres de mouvement.
Les plantes devront être fournies comme assets réutilisables.
Chaque goutte doit pouvoir traverser les états suivants :
Apparition d'une petite quantité d'eau.
Croissance progressive.
Modification de la forme sous l'effet de la gravité.
Étirement.
Formation éventuelle d'un col liquide.
Rupture et détachement.
Chute.
Impact.
Éclaboussure ou absorption.
Disparition ou intégration au décor.
Une animation stylisée mais physiquement plausible est acceptable : une simulation de fluides complète n'est pas exigée pour toutes les gouttes.
Volume.
Rayon.
Durée de croissance.
Durée d'étirement.
Hauteur de chute.
Vitesse initiale éventuelle.
Forme.
Transparence.
Indice de réfraction.
Réflexion.
Taille de l'éclaboussure.
Intensité de l'impact.
Pour chaque note à l'instant T :
Calculer la position cible.
Déterminer la trajectoire.
Calculer le temps de chute.
Programmer le détachement à T moins le temps de chute.
Programmer la croissance suffisamment tôt.
Déclencher les animations d'impact et de résonance exactement à T.
Le calcul doit pouvoir être évalué à n'importe quel instant de la timeline.
Gouttes de pluie.
Gouttes de rosée.
Eau colorée.
Eau partiellement gelée.
Fonte de neige.
Condensation.
Petites cascades.
Plusieurs gouttes fusionnant sur une feuille.
Le système doit prendre en charge des objets situés sous les gouttes :
Carillons.
Plaques de verre.
Tubes résonants.
Bols.
Cloches.
Coupelles.
Percussions légères.
Chaque objet possède :
Un modèle 3D.
Une zone de collision.
Une plage musicale compatible.
Un ou plusieurs sons associés.
Une animation d'impact.
Une animation de résonance.
Selon l'instrument :
Vibration.
Oscillation.
Déformation légère.
Ondulation.
Éclaboussure.
Reflet lumineux subtil.
Résonance.
Un mécanisme circulaire peut être installé dans la partie inférieure ou centrale.
Il tourne lentement et transporte plusieurs instruments ou objets.
Le carrousel doit ressembler à un dispositif réel : engrenages, axes, supports et matériaux cohérents.
Activation ou désactivation.
Choix du modèle.
Vitesse de rotation.
Sens de rotation.
Position dans la scène.
Nombre d'éléments.
Type d'instruments transportés.
Rotation continue ou pilotée par la musique.
Le moteur doit calculer la position des instruments mobiles à l'instant de chaque impact.
La goutte doit atteindre la position réelle de l'instrument au moment du contact.
Si la configuration ne permet pas un impact plausible, l'algorithme doit sélectionner une autre trajectoire ou un instrument fixe.
Carrousel en laiton.
Carrousel en bois.
Mécanisme ancien de boîte à musique.
Roue à eau.
Mécanisme d'horlogerie.
Plateforme de cristaux.
Petits marteaux mécaniques.
Engrenages activant des percussions.
Position.
Orientation.
Focale virtuelle.
Mise au point.
Profondeur de champ.
Mouvement lent.
Travelling.
Orbite légère.
Gros plan.
Plan général.
Cadrage automatique.
La caméra doit préserver la visibilité des impacts.
Prévoir :
Correction colorimétrique.
Bloom subtil.
Profondeur de champ.
Un décor doit être défini par un manifeste indépendant du moteur musical.
Chaque pack regroupe :
Végétation.
Modèles d'instruments.
Matériaux.
Environnement.
Éclairage.
Paramètres de caméra.
Sons d'ambiance.
Variantes de couleurs.
Contraintes de placement.
Zen Rain — P0
Végétation verte, bambou éventuel, mousse, eau, verre et bois, lumière matinale.
Christmas Rain — P2
Branches de sapin, neige, givre, lumières chaudes, carillons de cristal et mécanique en laiton.
Autumn Rain — P2
Feuilles d'érable, couleurs orangées, bois ancien, cloches de cuivre.
Sakura Rain — P2
Fleurs de cerisier, teintes pastel, petites gouttes et carillons délicats.
Chaque décor doit pouvoir produire plusieurs variations :
Répartition des plantes.
Position des instruments.
Angle de caméra.
Couleurs secondaires.
Intensité de la pluie.
Conditions lumineuses.
Petits éléments de décoration.
L'objectif n'est pas de simplement recolorer une scène identique.
Disposition recommandée :
Panneau gauche : import musical, choix du décor et des instruments.
Centre : prévisualisation 3D au format vertical ou horizontal.
Panneau droit : propriétés de la scène, de la caméra, des effets et des textes.
Partie inférieure : timeline, lecture, marqueurs et export.
Fonctionnalités :
Fonctionnalités :
Fonctionnalités :
Fonctionnalités :
Fonctionnalités :
Fonctionnalités :
Lecture.
Pause.
Recommencer.
Déplacement dans la timeline.
Lecture en boucle.
Réduction de la qualité pour accélérer la prévisualisation.
Affichage facultatif des zones de collision.
Affichage facultatif des trajectoires.
Capture d'image.
Thème.
Graine de génération.
Nombre maximal de gouttes simultanées.
Complexité visuelle.
Densité de végétation.
Type d'instruments.
Activation du carrousel.
Caméra.
Éclairage.
Couleur dominante.
Effets d'impact.
Volume sonore.
Durée d'introduction et de conclusion.
L'utilisateur doit pouvoir :
L'utilisateur doit pouvoir :
L'utilisateur doit pouvoir :
L'utilisateur doit pouvoir :
L'utilisateur doit pouvoir :
L'utilisateur doit pouvoir :
L'utilisateur doit pouvoir :
Titre principal.
Sous-titre.
Texte libre.
Nom de chaîne.
Logo ou filigrane.
Chaque élément peut posséder :
Texte.
Police.
Taille.
Couleur.
Ombre.
Position.
Alignement.
Instant d'apparition.
Instant de disparition.
Fondu.
Apparition progressive.
Déplacement doux.
Zoom.
Animation synchronisée à une note.
Apparition au début d'un nouveau passage musical.
Relaxing music.
Sleep.
Christmas melody.
Satisfying sounds.
Morning relaxation.
No text.
Minimal branding.
Les textes doivent respecter les zones de sécurité propres au format vertical et éviter les espaces occupés par les interfaces des plateformes.
L'utilisateur doit pouvoir déplacer et redimensionner les textes dans la prévisualisation.
Initial :
Vertical 9:16.
720 × 1280.
1080 × 1920.
WebM avec audio.
Évolutions :
MP4 H.264 avec audio AAC.
30 et 60 images par seconde.
Horizontal 16:9.
Carré 1:1.
Export 1440p et 4K selon capacités matérielles.
Image de miniature.
Export audio seul.
Export de la configuration du projet.
Prévisualisation temps réel
Priorité à la fluidité. Qualité adaptable selon le matériel.
Export haute qualité
Priorité à la fidélité visuelle et à la synchronisation. Temps de calcul potentiellement supérieur à la durée réelle de la vidéo.
Le système doit disposer d'une fonction de rendu permettant de définir directement l'état visuel d'une scène à un instant précis.
Le moteur ne doit pas dépendre exclusivement du temps écoulé depuis le démarrage de l'application.
Cela doit permettre :
Revenir à un instant donné.
Reprendre un export.
Générer chaque image séparément.
Reproduire une vidéo.
Comparer deux moteurs de rendu.
L'audio final doit être créé depuis la timeline musicale et les sons d'ambiance, puis synchronisé avec les images.
Il ne doit pas dépendre uniquement d'une capture sonore en direct pendant le rendu.
Nom du fichier.
Format.
Résolution.
FPS.
Qualité.
Progression.
Annulation.
Messages d'erreur.
Dossier de destination.
Historique des exports.
À terme, reprise sur incident et file de rendu.
Un projet sauvegardé doit contenir :
Version du schéma.
Référence au MIDI.
Événements normalisés.
Identifiant du thème.
Version des assets.
Graine aléatoire.
Paramètres visuels.
Paramètres musicaux.
Paramètres de caméra.
Paramètres de texte.
Préférences d'export.
Les événements visuels doivent pouvoir être recalculés depuis un temps absolu.
La génération suit une succession d'étapes :
Lecture de la composition.
Normalisation des événements.
Analyse de la densité musicale.
Sélection des instruments.
Génération de la disposition spatiale.
Attribution des sources de gouttes.
Calcul des trajectoires.
Validation des collisions.
Création des animations secondaires.
Calcul des mouvements de caméra.
Génération de la prévisualisation.
Export.
Un projet doit permettre de créer plusieurs versions à partir d'une même composition.
Variantes possibles :
Thème.
Graine aléatoire.
Placement des plantes.
Composition des instruments.
Carrousel.
Angle de caméra.
Éclairage.
Ambiance sonore.
Type de gouttes.
Le moteur doit rejeter ou corriger certaines générations :
Le moteur doit émettre un rapport de génération avec des avertissements et les éventuels compromis retenus.
Créer une mise en scène évoluant en fonction de la musique.
Le réalisateur peut exploiter :
Densité des notes.
Intensité.
Entrée ou sortie de pistes.
Accords.
Changements de tempo.
Silences.
Fin du morceau.
Déplacement lent de caméra.
Zoom progressif.
Passage d'un plan général à un détail.
Changement de point de focalisation.
Révélation d'un autre instrument.
Mise en valeur d'un passage musical.
Retour au cadrage initial.
Permettre de produire plusieurs vidéos sans répéter toutes les opérations.
Import multiple de fichiers MIDI.
Choix des thèmes autorisés.
Nombre de variantes par MIDI.
Attribution automatique de graines.
Génération de titres.
Application de templates.
File de rendu.
Export dans un dossier commun.
Gestion des erreurs.
Reprise des rendus interrompus.
Pour éviter des vidéos pratiquement identiques, la génération doit permettre des variations artistiques réelles :
Différentes compositions.
Différentes structures instrumentales.
Différents dispositifs mécaniques.
Différents environnements.
Différents cadrages.
Différentes progressions visuelles.
Les vidéos doivent être vérifiées avant publication.
Possibilités :
API locale.
Génération par ligne de commande.
Planification de rendus sur une machine.
Génération de miniatures.
Préparation des titres et descriptions.
Organisation des fichiers par date, thème ou composition.
Pendules synchronisés qui déclenchent des notes.
Dominos produisant des sons lors de leur chute.
Engrenages, roues et mécanismes musicaux.
Billes ou dispositifs frappant des cordes.
Écoulement de sable et résonateurs.
Liquides, gouttes colorées, coupelles et percussions.
Particules lumineuses associées aux événements musicaux.
Machine miniature industrielle jouant des percussions.
Mécanismes répétitifs synchronisés à la musique, avec transitions invisibles.
Développements :
Développements :
Développements :
Développements :
Développements :
Développements :
Chute avec impact.
Éclairage de type macro.
Premier test de réfraction et profondeur de champ.
Première comparaison entre rendu temps réel et rendu Blender.
Livrables :
Prototype technique isolé.
Courte animation de démonstration.
Documentation des performances.
Liste des limites visuelles.
Décision sur la stratégie de rendu finale.
Validation : une goutte se forme, tombe et atteint un instrument dans une scène visuellement crédible, sans artefact majeur.
Objectif : convertir automatiquement une mélodie en événements visuels.
Développements :
Import MIDI.
Normalisation des notes.
Gestion du tempo.
Timeline.
Association notes/instruments.
Génération des gouttes.
Calcul rétroactif des trajectoires.
Synchronisation des impacts.
Gestion des accords.
Lecture audio.
Moteur de synchronisation.
Scène jouant une mélodie de 15 à 30 secondes.
Validation : tous les événements principaux sont synchronisés avec leurs impacts, y compris après un déplacement dans la timeline.
Livrables :
Objectif : obtenir un outil utilisable de bout en bout.
Développements :
Interface React.
Nouveau projet.
Import MIDI.
Choix d'un thème.
Prévisualisation.
Lecture/pause.
Timeline navigable.
Réglages de base.
Gestion de la graine.
Textes simples.
Sauvegarde des projets.
Export WebM avec son.
Validation : un utilisateur peut produire et exporter une vidéo depuis un MIDI sans modifier le code.
Livrables :
Scène Zen Rain aboutie.
Carrousel fonctionnel.
Presets visuels.
Exports comparatifs.
Objectif : multiplier les univers sans dupliquer le moteur.
Développements :
Système de packs.
Manifeste de thème.
Remplacement des assets.
Christmas Rain.
Autumn Rain.
Sakura Rain.
Variation des lumières.
Variation des instruments.
Variation des ambiances sonores.
Bibliothèque de presets.
Livrables :
Au moins quatre thèmes.
Gestionnaire de décors.
Documentation pour créer un nouveau pack.
Validation : un même MIDI fonctionne dans tous les thèmes sans réglage manuel des trajectoires.
Objectif : atteindre une qualité de production régulière.
Développements :
Analyse de la dynamique musicale.
Mouvements de caméra automatiques.
Changements de cadrage contrôlés.
Éditeur de textes avancé.
Templates de Shorts.
Rendu hors temps réel.
Export MP4.
Audio finalisé indépendamment du rendu vidéo.
Gestion des hautes résolutions.
Gestion des erreurs d'export.
Livrables :
Export vidéo final haute qualité.
Réalisateur automatique.
Presets de publication.
Développements :
Import de plusieurs MIDI.
Variantes automatiques.
File de rendu.
Gestion des projets.
Catalogue d'assets.
Historique des rendus.
Génération de miniatures.
Contrôles qualité automatiques.
Rapports d'erreurs.
Reprise des exports.
Livrables :
Générateur par lots.
Interface de suivi.
Export structuré des vidéos.
Validation : plusieurs vidéos distinctes peuvent être produites sans reconfigurer chaque scène.
Objectif : transformer l'outil en plateforme extensible.
Fonctionnalités potentielles :
Transcription MP3/WAV vers MIDI.
Génération assistée de mélodies originales.
Création de décors assistée par IA.
Nouveaux moteurs visuels.
Éditeur de trajectoires manuel facultatif.
Bibliothèque communautaire.
Export de séquences longues.
Génération de loops parfaites.
API de rendu.
Rendu distribué.
Gestion multi-utilisateur.
Offres SaaS.
Packs de thèmes payants.
Interface de programmation pour créer de nouveaux générateurs.
Import valide.
Import corrompu.
MIDI vide.
MIDI très court.
MIDI très long.
Changements de tempo.
Accords importants.
Notes répétées rapidement.
Notes hors de la plage de certains instruments.
Lecture et déplacement dans la timeline.
Le MVP pourra être considéré comme fonctionnel lorsque :
Un MIDI compatible peut être importé.
Sa durée et ses notes sont correctement analysées.
Une scène est générée automatiquement.
Les gouttes atteignent visuellement leurs instruments.
Les notes principales sont synchronisées.
Le résultat peut être prévisualisé.
Les textes peuvent être ajoutés.
Le projet peut être enregistré.
Une vidéo verticale avec audio peut être exportée.
L'utilisateur n'a pas besoin de manipuler un logiciel 3D.
La version artistique avancée devra en complément satisfaire :
Végétation crédible.
Gouttes avec croissance et détachement réalistes.
Matériaux de qualité.
Absence d'intersections visibles majeures.
Instruments cohérents.
Carrousel fonctionnel.
Caméra macro convaincante.
Performances raisonnables en prévisualisation.
Réponse : prototype précoce, presets de qualité et option de rendu hors ligne.
Réponse : séparation des pistes, instrumentation secondaire et limites visuelles configurables.
Réponse : utiliser WebM pour un premier export, puis développer un pipeline déterministe avec encodage dédié.
Réponse : créer une bibliothèque réutilisable et définir un format strict pour les nouveaux packs.
Réponse : privilégier les compositions originales ou sous licence appropriée et conserver les informations de provenance.
Le créateur du projet, produisant des vidéos de manière régulière à partir d'une interface accessible sur ordinateur.
Les parcours ci-dessous décrivent les objectifs acceptés du créateur. Ils ne sont pas séquentiellement dépendants : chaque parcours peut être engagé depuis l'accueil ou depuis un projet existant, sans imposition d'ordre entre eux.
Acteur : le créateur. Déclencheur : un fichier MIDI prêt à être mis en scène.
Branche d'échec / reprise : si un impact plausible est impossible (instrument mobile mal positionné à l'instant du contact), le moteur choisit une autre trajectoire ou un instrument fixe ; l'utilisateur peut régénérer tout ou partie de la scène (voir flux 4). La synchronisation reste valide après un déplacement dans la timeline.
Acteur : le créateur. Déclencheur : un projet existant satisfaisant.
Acteur : le créateur. Déclencheur : besoin d'habiller la vidéo.
Acteur : le créateur. Déclencheur : un défaut constaté (par exemple une goutte masquée par une feuille).
Acteur : le créateur. Déclencheur : prévisualisation validée.
Branche d'échec / reprise : des messages d'erreur sont affichés ; le rendu déterministe permet de reprendre un export, de revenir à un instant donné et de reproduire la vidéo.
Acteur : le créateur. Déclencheur : plusieurs MIDI à traiter.
Acteur : le créateur. Déclencheur : une piste audio sans MIDI exploitable.
Importer une mélodie → choisir un univers → générer une scène photoréaliste → ajuster le rendu → ajouter des textes → exporter une vidéo, sans manipulation d'un logiciel 3D.
UC-01 — Créer une vidéo depuis un MIDI
L'utilisateur importe un MIDI, sélectionne Zen Rain, puis lance une génération automatique.
UC-02 — Créer une variante
À partir d'un projet existant, l'utilisateur choisit Christmas Rain, change la graine et génère une nouvelle vidéo.
UC-03 — Ajouter un texte
L'utilisateur ajoute un titre, une phrase relaxante et éventuellement le nom de sa chaîne.
UC-04 — Corriger un résultat
L'utilisateur remarque qu'une goutte est masquée par une feuille. Il régénère le placement de la scène sans modifier la mélodie.
Crystal Rain Studio doit évoluer vers un logiciel permettant de transformer une composition musicale en une vidéo originale par quelques interactions simples.
À terme, le flux cible est le suivant :
Importer une mélodie → choisir un univers → générer une scène photoréaliste → ajuster le rendu → ajouter des textes → exporter une vidéo.
[Design proposal; unspecified choices are defaults.]
Dark-mode studio palette, applied by role:
| Role | Token |
|---|---|
| Background (ink ground) | #101418 |
| Surface (panels, code strips) | #1A2127 |
| Text | #F2F4F1 |
| Primary (scene controls) | #2F6B4F |
| Accent (active impact, export) | #E8552F |
| Muted (labels, secondary values) | #8A969B |
The deep ink ground holds the dark macro scene; moss green marks scene controls; a single ember accent marks the active drop impact and the export action.
Typography. Headings Space Grotesk, tight, medium weight, mixed case. Body IBM Plex Sans. Timecodes, seeds and impact counts in IBM Plex Mono with tabular numerals. Modular scale 1.25: 64/48/32/20/16/14, with 11px mono labels.
Shape and spacing. Sharp 2px corners on panels and code strips; hairline 1px borders; one 8-pt spacing grid. No soft blobs, no rounded pills.
Imagery. The 3D render is the only image — no stock photography. A wireframe overlay of the carousel appears on hover; small schematic diagrams explain the drop path.
The render must read as a real miniature installation filmed with a macro lens, not a basic game or an artificial 3D animation. The user rejected the earlier result as very ugly; beauty is a requirement, not a polish pass. Non-negotiable: plausible motion, realistic materials, cared-for vegetation, natural light and depth of field. A modest but credible animation beats a spectacular but fake one.
Materials in scope: water, glass, crystal, wood, brass, copper, brushed metal, stone, moss. Materials must work under physically coherent lighting.
Lighting: HDR environment, key, fill and rim lights, colour temperature, intensity, shadows, exposure, time of day and seasonal mood.
Vegetation (first theme): green leaves, small branches, mosses, undergrowth vegetation — several leaves, a main branch, secondary branches, high-definition textures, translucent light-diffusing materials, colour variation, drop attachment points and motion parameters. Leaves are never flat green planes or basic geometry. Future variants: fir and pine needles, bamboo, maple leaves, cherry blossom, tropical leaves, frosted and nocturnal vegetation, dry branches.
Drops: plausible silhouette, environment-coherent reflections, credible refraction, deformation during formation, size compatible with leaves and instruments. A drop visibly passing through a leaf or crystal is a blocking defect.
Carousel: must look like a real device — gears, axles, supports, coherent materials.
Impact effects (by instrument): vibration, oscillation, slight deformation, rippling, splash, subtle light reflection, resonance — never masking the object or turning the scene into a game animation.
Post-processing: colour correction, subtle bloom, depth of field, discreet vignetting, anti-aliasing, contrast, light photographic grain, exposure tuning. Post-processing improves realism; it never hides geometry defects.
Scene zones: upper (vegetation, drop emission points), central (fall space, suspended instruments), lower (carousel, supports, vessels, decor), background (natural or seasonal environment), camera layer (framing, movement, focus, depth of field), graphic layer (text, logos, editorial elements).
Decorative packs (future): Zen Rain (green vegetation, bamboo, moss, water, glass, wood, morning light — P0); Christmas Rain (fir branches, snow, frost, warm lights, crystal chimes, brass mechanics — P2); Autumn Rain (maple leaves, orange tones, aged wood, copper bells — P2); Sakura Rain (cherry blossom, pastel tints, small drops, delicate chimes — P2); Tropical, Frozen, Halloween, Valentine, Night Garden and Golden Forest (P3). Each pack yields real internal variants — plant distribution, instrument positions, camera angle, secondary colours, rain intensity, lighting conditions, small decor — not a recoloured identical scene.
La végétation doit donner l'impression d'être réelle et filmée en gros plan.
Les feuilles ne doivent pas être de simples plans verts ou des objets géométriques basiques.
Premier thème :
Feuilles vertes.
Petites branches.
Mousses.
Végétation de sous-bois.
Variantes futures :
Sapin et aiguilles de pin.
Bambou.
Feuilles d'érable.
Fleurs de cerisier.
Feuilles tropicales.
Végétation givrée.
Végétation nocturne.
Branches sèches.
La vidéo doit évoquer une installation miniature réelle photographiée en macro.
Le résultat doit éviter l'apparence d'un jeu vidéo basique ou d'une animation 3D artificielle.
Prendre en charge :
Eau.
Verre.
Cristal.
Bois.
Laiton.
Cuivre.
Métal brossé.
Pierre.
Mousse.
Feuillage.
Neige.
Givre.
Les matériaux doivent fonctionner avec un éclairage physiquement cohérent.
Paramètres :
Environnement HDR.
Lumière principale.
Lumière de remplissage.
Lumière de contour.
Température colorimétrique.
Intensité.
Ombres.
Exposition.
Heure de la journée.
Ambiance saisonnière.
Fonctionnalités :
Vignettage discret.
Anticrénelage.
Contraste.
Grain photographique léger.
Réglages d'exposition.
Le post-traitement doit améliorer le réalisme, non dissimuler des défauts de géométrie.
Tropical Rain — P3
Grandes feuilles tropicales, humidité, pluie dense, atmosphère de forêt.
Frozen Rain — P3
Branches givrées, cristaux glacés, condensation et lumière froide.
Halloween Rain — P3
Branches sombres, objets anciens, citrouilles discrètes, ambiance nocturne et cloches métalliques.
Valentine Rain — P3
Fleurs, lumière douce, tons roses et composition plus romantique.
Night Garden — P3
Végétation nocturne, lucioles, reflets et lumière de lune.
Golden Forest — P3
Forêt lumineuse, matériaux dorés, mécanismes précieux.
Gouttes d'eau, végétation et cristaux.
Développements :
Végétation haute qualité.
Gouttes avec morphologie avancée.
Matériaux d'eau et de verre.
Micro-éclaboussures.
Résonances visuelles.
Éclairage amélioré.
Caméra macro.
Optimisation des performances.
[Design proposal; unspecified choices are defaults.]
Crystal Rain Studio is not a classic music visualiser. It is a studio for one creator who turns an imported MIDI file into a hypnotic, realistic macro video: vegetation hangs in the upper zone, drops swell at leaf tips, detach, fall onto instruments below, and each impact triggers a precise note. Some instruments sit fixed; others ride a slowly turning mechanical carousel. A virtual camera reproduces realistic macro photography, and all animation is synchronised automatically to the imported music — no manual animation of drops, leaves or instruments is ever required.
The muse: Adham Dannaway. The interface is a browser studio, calm and precise, not a toy. Its signature is a split screen: the 3D scene on one side, its technical parameters on the other, as two halves of one surface joined by a shared hairline seam.
Layout. Left half: the vertical 9:16 preview on ink. Right half: a dark parameter panel of ruled label-and-value rows. A timeline strip runs under both halves, with ruled ticks and one ember playhead. The studio follows the same three-part organisation: left panel for music import, decor and instrument choice; centre for the 3D preview in vertical or horizontal format; right panel for scene, camera, effects and text properties; bottom for timeline, playback, markers and export.
Signature moves.
Avoid: centred marketing hero with a headline and blue button; glass cards, gradient blobs, hover-lift grids; stock photos of people or keyboards; rounded pill buttons and pastel surfaces.
Readability. Headlines, wordmarks, labels, numbers, card text and controls stay whole inside the viewport and their container at 375px, 768px and 1280px, wrapping or scaling (clamp(...)) to fit; nothing covers them. Imagery and decoration may crop, bleed, rotate or overlap freely — the gesture is carried by imagery, never by cropping readable text or controls.
Quality gate. The visual quality of the drops is validated independently before secondary features are built; a realistic drop and its collision with a chime is the first visual milestone. Phase 0 delivers an isolated technical prototype: a crystal or chime, a transparent drop model, growth-and-detachment animation, fall with impact, macro lighting, a first refraction and depth-of-field test, and a real-time versus Blender comparison. Validation: a drop forms, falls and reaches an instrument in a visually credible scene without major artefacts. Later phases add advanced photorealism (vegetation, deformable drops, micro-splashes, visual resonances, improved lighting, macro camera, performance optimisation), the brass carousel with rotation and collisions with moving elements, decor packs, then automatic realisation and professional export (musical camera, transitions, quality MP4, deterministic render).
Vision du produit
Le résultat recherché n'est pas un visualiseur musical classique, mais une scène qui donne l'impression qu'une véritable machine musicale a été filmée avec un objectif macro.
Le système de gouttes constitue l'une des principales fonctionnalités différenciantes du projet.
Le niveau de qualité visuelle des gouttes doit faire l'objet d'une validation indépendante avant de développer des fonctionnalités secondaires.
[Design proposal; unspecified choices are defaults.]
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
Focal subject. The macro scene in a 9:16 frame: wet leaves above a brass carousel, one drop mid-fall toward an instrument.
Thesis. Input: the creator's imported MIDI file and its parameters. Transformation: the engine schedules each note backwards — target position, trajectory, fall time, detachment at T minus fall time, growth earlier still — and the carousel's instrument position is computed at the instant of impact. Outcome: the drop lands exactly at T, the instrument resonates, and the ember line marks the active impact while the mono timecode advances.
Motion vocabulary. Reveal-by-hover across the split; the preview camera pans slowly; parameter changes fade in 160ms; no bounce. Leaves carry a slight wind movement, deform under a drop's weight, rebound after detachment and vibrate faintly from neighbouring impacts — always subtle. Drops pass through appearance, growth, gravity deformation, stretching, optional liquid neck, rupture, fall, impact, splash or absorption, then disappearance. Stylised but physically plausible is acceptable; full fluid simulation is not required.
Composed first frame. Full-viewport split on ink. Left: the macro scene, wet leaves above the brass carousel, one drop at a leaf tip. Right: ruled parameter rows and a live mono timecode. The timeline strip runs beneath both, one ember playhead at rest.
Reduced-motion state. A static arrangement: the split holds, the drop rests at its leaf tip, the ember line sits on the current impact, and the timeline strip wraps or scrolls horizontally so every tick is reachable. No camera pan, no hover reveal required to read any value.
Les feuilles peuvent subir :
Un léger mouvement de vent.
Une déformation sous le poids d'une goutte.
Un rebond après le détachement.
Une vibration indirecte due aux impacts voisins.
Les mouvements doivent être subtils et cohérents avec la scène.
Développements :
Carrousel en laiton.
Rotation et collisions avec éléments mobiles.
Le produit devra satisfaire quatre exigences fondamentales :
Le produit devra satisfaire quatre exigences fondamentales :
Le produit devra satisfaire quatre exigences fondamentales :
Niveau de priorité : Photoréalisme, synchronisation audio/visuelle, automatisation, export vidéo
Synchronisation musicale : la partition commande la scène, et non l'inverse.
Déterminisme : une même configuration, avec les mêmes assets et la même graine aléatoire, doit produire le même résultat.
Réalisme prioritaire : une animation modeste mais crédible est préférable à une animation spectaculaire mais artificielle.
Architecture modulaire : les décors, modèles, instruments, sons et mouvements doivent pouvoir évoluer indépendamment.
Production sans manipulation 3D manuelle : l'utilisateur ne doit pas avoir besoin d'utiliser Blender pour réaliser chaque nouvelle vidéo.
Les gouttes doivent présenter :
Une silhouette plausible.
Des reflets cohérents avec l'environnement.
Une réfraction crédible.
Des déformations pendant leur formation.
Une taille compatible avec les végétaux et les instruments.
Une goutte traversant visuellement une feuille ou un cristal doit être considérée comme un défaut bloquant.
Les proportions des objets et leurs mouvements doivent rester crédibles.
Les sons peuvent être artistiquement amplifiés pour la vidéo, mais leur timbre doit correspondre autant que possible au matériau et à la forme de l'instrument.
Les effets ne doivent pas masquer l'objet ou transformer la scène en animation de jeu vidéo.
Les projets doivent être versionnés pour rester ouvrables après les mises à jour.
Tous les systèmes doivent utiliser la même horloge musicale.
La position des objets ne doit pas être calculée par accumulation d'un nombre arbitraire de frames.
Les effets secondaires nécessitant un état devront être déterministes ou basés sur des caches reproductibles.
Instruments trop serrés.
Feuilles traversées par les gouttes.
Caméra obstruée.
Texte illisible.
Trop grand nombre d'événements simultanés.
Éléments majeurs hors cadre.
Aucun mouvement brusque par défaut.
Limiter les changements de cadrage.
Préserver la lisibilité des impacts.
Éviter les mouvements provoquant une sensation de malaise.
Livrables :
Application locale utilisable.
Format de projet documenté.
Guide d'utilisation.
Première vidéo verticale complète.
Validation : les vidéos ne présentent plus les défauts typiques d'un prototype 3D et possèdent une direction artistique cohérente.
Validation : les exports sont synchronisés et reproductibles, même sur une machine qui ne peut pas lire la scène à vitesse réelle.
Validation : chaque extension s'intègre sans modifier le cœur musical et temporel du moteur.
Enregistrement et réouverture d'un projet.
Export et annulation.
Reflets de l'eau.
Transparences superposées.
Gouttes partiellement cachées.
Collisions.
Réfraction.
Animation des feuilles.
Ombres.
Vibrations.
Visibilité des textes.
Apparence des matériaux.
Cadrage sur différents formats.
Comparer les timestamps des impacts visuels aux notes de référence.
Pour les tests automatiques, viser une précision à l'image près sur la timeline exportée.
Le résultat final doit également être vérifié avec l'audio encodé afin de détecter les retards introduits par le pipeline de rendu ou de compression.
Mesurer :
Temps de chargement.
Mémoire RAM.
Mémoire GPU.
Nombre d'objets.
Temps de calcul par frame.
Fluidité de la prévisualisation.
Durée d'export.
Taille du fichier final.
Prévoir plusieurs profils de qualité pour les machines moins puissantes.
À configuration identique, vérifier que les objets, impacts, cadrages et animations sont identiques à chaque exécution.
Le code devra être maintenable, typé, modulaire et préparé pour les évolutions futures.
Frontend : React, TypeScript et Vite.
Rendu 3D interactif : Three.js.
Chargement des assets : glTF/GLB.
Analyse MIDI : @tonejs/midi.
Audio : Web Audio API et éventuellement Tone.js.
Modélisation : Blender.
Styles UI : Tailwind CSS.
Gestion d'état : bibliothèque légère adaptée aux besoins.
Persistance locale : fichiers projet JSON, IndexedDB si nécessaire.
Export initial : MediaRecorder, sous réserve des formats pris en charge par le navigateur.
Export professionnel : moteur image par image avec FFmpeg, et option Blender/Cycles.
Modules à prévoir :
Project Manager.
MIDI Parser.
Music Event Normalizer.
Audio Engine.
Timeline Engine.
Scene Generator.
Asset Manager.
Vegetation System.
Droplet System.
Instrument System.
Carousel System.
Camera Director.
Theme Manager.
Text Overlay Editor.
Preview Renderer.
Export Engine.
Batch Manager.
Les modules doivent communiquer via des interfaces typées.
Le rendu Three.js servira de référence interactive.
Un export via Blender/Cycles pourra être ajouté pour obtenir une meilleure fidélité sur les transparences, la réfraction et les ombres.
Cette étape nécessitera un système de génération de scène compatible et des tests pour garantir que les deux rendus respectent les mêmes positions, timings et animations.
Le cahier des charges ci-dessous comprend l'ensemble des fonctionnalités envisagées, y compris celles qui seront développées après le MVP. Les phases sont conçues pour qu'un développeur puisse travailler progressivement sans devoir réécrire le moteur à chaque évolution.
Roadmap cible
Utilisation initiale : Outil privé de production de vidéos courtes
Évolution possible : Plateforme SaaS et moteur de création de plusieurs univers musicaux
Produire une bibliothèque de vidéos courtes destinées aux réseaux sociaux.
Réutiliser un même fichier musical pour générer différentes variantes visuelles.
Automatiser progressivement la production de plusieurs vidéos.
Proposer des décors saisonniers.
Créer des animations longues à vocation relaxante.
Mutualiser le moteur pour d'autres concepts de machines musicales.
Conserver la possibilité d'une commercialisation future du générateur.
Aucun système de comptes ou de paiement n'est nécessaire au lancement.
Une animation stylisée mais physiquement plausible est acceptable : une simulation de fluides complète n'est pas exigée pour toutes les gouttes.
Ce système est distinct du moteur de notes et pourra être développé après stabilisation du rendu de base.
La publication directe sur les plateformes est hors MVP.
Le moteur pourra ultérieurement accueillir plusieurs systèmes de visualisation.
Ces concepts devront partager le même système d'import MIDI, la timeline, l'audio, l'éditeur et les outils d'export.
Objectif : démontrer que le niveau de réalisme envisagé est atteignable dans le navigateur.
Objectif : passer d'une démonstration technique à une identité visuelle publiable.
Objectif : réduire fortement l'intervention humaine.
Le passage en production par lots exigera une stabilité supplémentaire et la capacité à signaler automatiquement les générations défectueuses.
Le rendu temps réel de l'eau, du verre et de la végétation peut être coûteux et présenter des artefacts.
Certains morceaux possèdent davantage de notes simultanées qu'une scène ne peut en montrer clairement.
La rotation des instruments augmente la complexité géométrique.
Réponse : commencer avec une plateforme simple, puis introduire des rotations et contraintes plus complexes.
Le rendu temps réel peut ralentir et certains codecs ne sont pas disponibles partout.
Chaque thème nécessite des assets réellement adaptés.
Les musiques utilisées doivent disposer de droits compatibles avec leur utilisation et leur monétisation.
Une génération automatisée peut aboutir à des vidéos trop similaires.
Réponse : privilégier de véritables variations musicales et visuelles, et contrôler les exports avant publication.
Une feuille, une goutte, un carillon, une note.
Plusieurs notes, plusieurs gouttes, timeline synchronisée.
Import, prévisualisation, sauvegarde et export simple.
Scène photoréaliste soignée, végétation et instruments.
Ajout du carrousel et des instruments mobiles.
Packs de Noël, Sakura et automne.
Caméra musicale, textes avancés et qualité d'export améliorée.
Génération de plusieurs vidéos et variantes.
Outil robuste, stable, documenté et adapté à une production régulière.
Le projet doit être transmis avec :
Code source complet.
Instructions d'installation.
Scripts de démarrage.
Documentation de l'architecture.
Documentation du format projet.
Documentation du système de thèmes.
Dossier d'assets et liste de licences.
Jeu de fichiers MIDI de test.
Tests automatisés.
Documentation du moteur de synchronisation.
Documentation de l'export.
Exemples de scènes.
Guide d'utilisation.
Liste des limitations connues.
Le projet doit pouvoir ensuite évoluer vers une production semi-automatisée de plusieurs vidéos et vers d'autres familles d'installations musicales.
La priorité initiale reste de valider la qualité esthétique et la synchronisation d'une scène unique. La richesse des décors et le volume de production ne devront pas se développer au détriment de cette exigence.
Crystal Rain — Nom du projet (crystal-rain) : scène 3D réaliste destinée à une vidéo, où des feuilles et des gouttes d'eau tombent sur une structure musicale posée sur un carrousel en rotation. Univers visuel associé : gouttes d'eau, végétation et cristaux.
Carrousel — Plateforme tournante portant la structure musicale frappée par les gouttes ; son mouvement fait partie de la scène filmée.
Instrument fixe — Objet situé sous les gouttes et destiné à être frappé par elles. Chaque instrument fixe possède un modèle 3D, une zone de collision, une plage musicale compatible, un ou plusieurs sons associés et une animation d'impact. Types pris en charge : carillons, plaques de verre, tubes résonants, bols, cloches, coupelles et percussions légères.
Zone de collision — Volume d'un instrument fixe qui détecte l'impact d'une goutte et déclenche le son et l'animation correspondants.
Plage musicale compatible — Ensemble de notes qu'un instrument fixe donné peut restituer lorsqu'il est frappé.
Animation d'impact — Réaction visuelle d'un instrument fixe au moment où une goutte le frappe.
Bibliothèque d'instruments audio — Ensemble initial de sons disponibles : cloche en verre, carillon de cristal, lame de verre, kalimba douce, marimba, percussion d'eau, petites cloches métalliques, lames métalliques, tubes sonores, bols résonants, cordes et percussions mécaniques.
Univers musicaux — Thèmes musicaux et visuels distincts du produit. Outre Crystal Rain (gouttes d'eau, végétation, cristaux), la liste comprend : Pendulum Symphony (pendules synchronisés déclenchant des notes), Domino Beats (dominos produisant des sons lors de leur chute), Mechanical Harmony (engrenages, roues et mécanismes musicaux), String Physics (billes ou dispositifs frappant des cordes), Sand Orchestra (écoulement de sable et résonateurs), Liquid Beats (liquides, gouttes colorées, coupelles et percussions) et Particle Piano (particules lumineuses associées aux événements musicaux).
Crédits gratuits — Allocation initiale de 0,025 correspondant à 3 récompenses de design, réclamée par l'utilisateur.
Récompense de design — Unité de déblocage associée aux crédits gratuits ; trois récompenses de design sont couvertes par l'allocation initiale.

Crystal Rain Studio
Importez un MIDI : des gouttes se forment sur les feuilles, tombent sur le carrousel de laiton et chaque impact joue une note, filmé comme une vraie machine musicale avec un objectif macro.
Entry
Three ways into the studio, each one a route to a working scene rather than an empty editor.
Studio · anatomie
Trois colonnes, une seule horloge musicale. Chaque impact visuel correspond exactement à un événement audible, y compris après un déplacement dans la timeline.
Chaque décor produit ses propres variations : répartition des plantes, position des instruments, angle de caméra, couleurs secondaires, intensité de la pluie et conditions lumineuses.
P0 — priorité initialeP2 — saisonsP3 — extensions

Crystal Rain Studio
Importez un MIDI : des gouttes se forment sur les feuilles, tombent sur le carrousel de laiton et chaque impact joue une note, filmé comme une vraie machine musicale avec un objectif macro.
Entry
Three ways into the studio, each one a route to a working scene rather than an empty editor.
Studio · anatomie
Trois colonnes, une seule horloge musicale. Chaque impact visuel correspond exactement à un événement audible, y compris après un déplacement dans la timeline.
Chaque décor produit ses propres variations : répartition des plantes, position des instruments, angle de caméra, couleurs secondaires, intensité de la pluie et conditions lumineuses.
P0 — priorité initialeP2 — saisonsP3 — extensions
No comments yet. Be the first!