On voulait une interface d'assistante : une orbe, des cartes de verre qui glissent, une barre de saisie, un HUD discret. C'était propre et compétent, et ça ressemblait à tout ce qui existe déjà. Le vrai travail a consisté à enlever.
Essayer la démonstration
La voyante est en ligne et s'ouvre sans code. Tapez une question n'importe où dans la page, puis Entrée. Une séance complète dure moins d'une minute.
VIVIANE est un spécimen de démonstration, pas un produit en rayon. L'alcôve décrite plus bas n'est pas construite : ses cotes, ses durées et ses bouffées de brume sont des cibles, à valider sur une maquette à l'échelle 1. Une présence comme celle-ci se dessine pour votre lieu et votre récit.
Ce qu'on a enlevé
D'abord les fenêtres contextuelles : météo, éclairage, musique, agenda, minuteur. Elles étaient belles et parfaitement inutiles. Elles transformaient une présence en panneau de configuration. Puis la barre de saisie, qui installait un rapport de commande : on tape, ça obéit. Puis le HUD, l'horloge, les puces de suggestion, l'aide.
Il est resté un écran noir, une nébuleuse, du texte qui apparaît, et une voix. Pour écrire, on ne cherche plus de champ : on tape n'importe où, et les lettres s'inscrivent en fantôme. Ce qui restait n'était plus une assistante. C'était une présence, et une présence qui répond à une question sans qu'on lui ait montré le clavier, ça a un nom : une voyante.
La séance
Le modèle est Madame Leota, la tête dans la boule de cristal du Haunted Mansion : une voix qui n'explique rien, ne s'excuse jamais et ne répond pas vraiment à la question posée. Trente prophéties originales ont été écrites dans ce ton, plus une ouverture de séance. Chaque question tire sa prophétie de façon déterministe : la même question donne toujours la même réponse, ce qui est exactement ce qu'on attend d'un oracle.
Vingt autres, plus drôles, attendent leur voix. Elles entreront seules en scène le jour où leur clip sera déposé sur le serveur : la page vérifie quels clips existent, et ne joue jamais une prophétie sans sa voix.
Une ligne par souffle
Le seul texte de l'écran était aussi le plus mal lu. La phrase se coupait là où la largeur s'arrêtait : « S'OUVRIRA » sur une ligne, « SEULE. » sur la suivante. Le corps plafonnait à 20 pixels, même sur une dalle 4K, et tout s'évaporait au moment précis où la voix se taisait.
On l'a calé sur la voix. Les silences de chaque clip ont été mesurés, et le texte se coupe là où la voix respire : une ligne à la fois, sept mots au plus. Quand la ligne suivante naît, la précédente monte et s'évapore.
- Capitale à 2,4 % de la hauteur. 26 pixels en 1080, 52 en 2160 : la taille suit l'écran, sans plafond.
- Le glyphe est net, le halo vit. La lettre se pose sans flou ; la flamme froide passe dans le halo, plus dans la lettre.
- Une nappe d'ombre sous la ligne. Les anneaux du décor ne traversent plus les lettres.
- Lecture tenue deux secondes après la voix, puis 1,4 seconde d'évaporation, lettre à lettre, dans un ordre tiré au hasard.
- Jost, une capitale fine sous licence libre, servie depuis notre serveur : la même lettre sur un Mac, un PC ou un lecteur de diffusion.
Le découpage est mesuré, pas aligné mot à mot : un script relève les silences de plus de 120 ms dans chaque clip. Là où la voix respire au milieu du sens (« le miroir de l'entrée a… vu »), c'est le sens qui décide de la coupe, et le silence le plus proche qui donne l'heure.
La voix
C'est là qu'on a passé le plus de temps, et échoué le plus souvent. Une voix neutre de synthèse tue la scène instantanément : on entend l'assistant vocal, pas la médium. Plusieurs moteurs et plusieurs timbres ont été essayés, y compris avec des effets pour « faire spectral ». Ils ont tous été rejetés, parce qu'un effet ne remplace jamais une intention.
Ce qui a débloqué la situation n'est pas technique : c'est un brief de voix écrit à la main, avec un souffle à trente ou quarante pour cent, une modulation marquée et un sous-texte de mystère plutôt qu'un grave forcé. Une fois ce brief donné comme direction de jeu à un moteur neuronal, la bonne voix est sortie à sec, sans aucun traitement.
La séance, en conduite
Une démo qui tourne en boucle lance une prophétie toutes les neuf secondes, devant une salle vide. Une séance, elle, commence, monte et finit. On l'a écrite comme une conduite de théâtre, en tops numérotés, de l'entrée du visiteur à la clôture.
La séance commence quand quelqu'un s'assoit. Trois coups sous le plancher, la boule s'éclaire, la voix dit « Approchez… ». À la première touche du clavier, la présence écoute. À la touche Entrée, elle réfléchit trois secondes, un vrai silence de théâtre, puis elle répond. Deux secondes après la dernière syllabe, le texte s'évapore, la lumière revient en huit secondes, et la séance suivante attend le prochain visiteur.
| Top | Quand | Moteur | Lumière | Son | Brume |
|---|---|---|---|---|---|
| Q1 | 0,0 s | veille | salle 40 → 6 % en 5 s | nappe grave | |
| Q2 | 5,0 s | une onde par coup | bougies creusées à chaque coup | trois coups, 0,9 s d'écart | |
| Q3 | 8,5 s | bouffée courte, 2 s | |||
| Q4 | 10,0 s | réponse | bougies sur la voix | ouverture de séance | |
| Q5 | fin du clip | écoute, penchée | bougies 30 % | nappe seule | |
| Q6 | 1re touche | une onde par frappe | si rien en 25 s : bouffée | ||
| Q7 | Entrée | réflexion, 3 s | bougies tirées à 12 % | souffle grave | |
| Q8 | +3,0 s | réponse, cœur chaud | bougies sur la voix | la prophétie | lourde, sur la 2e phrase |
| Q9 | fin + 2 s | veille | bougies 35 % | ||
| Q10 | +1,4 s | elle se retire | salle 6 → 40 % en 8 s | un coup sourd |
Chaque top sort de la page. La lumière, le son de salle et la brume s'y abonnent ; l'écran, lui, reste nu. Sans matériel, la démo joue elle-même les trois coups et la nappe grave, pour qu'on entende la séance au casque.
// dans la page de la démo : les tops de la séance viviane.on('top', e => console.log(e.n, e.acte)); // Q1 … Q10 viviane.on('lumiere', e => dmx(e.salle, e.bougies)); // 0 à 100, dix fois par seconde viviane.on('brume', e => brouillard(e.densite, e.duree)); // courte ou lourde viviane.on('son', e => transducteur(e.indice)); // coup, nappe, souffle viviane.asseoir(); // le capteur de banquette : top 1 viviane.etat(); // { acte, moteur, salle, bougies, voix }
Le même flux part aussi sur un canal du navigateur nommé viviane : une passerelle OSC ou DMX ouverte dans un autre onglet du poste s'y branche sans toucher à la démo. Les durées de la conduite sont des cibles, réglées à l'oreille sur les clips existants.
L'apparition dans la pièce
Sur un écran, VIVIANE reste une image. Dans une pièce noire, le noir d'une dalle se voit : on perçoit l'écran avant la présence. Posée au-dessus d'une table, entre deux bougies, elle devient quelqu'un qui vous attendait.
Le principe a plus de cent soixante ans : le fantôme de Pepper. La dalle est couchée sous la table, derrière un verre fumé ; son image monte dans un film semi-réfléchissant incliné à 45°, et le visiteur assis voit la nébuleuse flotter au-dessus de la nappe. Le reflet s'ajoute à la pièce : le noir de la dalle disparaît, seule reste la lumière.
La démo a désormais une sortie pour ce montage. En mode reflet, l'image est renversée de gauche à droite pour se lire à l'endroit dans le film, et tout ce qui n'est pas la présence passe au noir pur : réticules, coins, fond. Sur le film, le moindre gris deviendrait visible.
Tout est à valider sur maquette. La luminance de la dalle, le taux de réflexion du film, le choix entre verre et film, la tenue de la brume sous 80 mm : rien n'est encore chiffré. Les cotes du dessin sont des cibles, et le miroir noir prend de la place dans la vue du visiteur : il est traité en objet de décor.
Sous le capot
Coquille sphérique en rotation différentielle : l'intérieur tourne plus vite, d'où les bras spiraux. Des liens filamenteux entre voisines dessinent un réseau qui ressemble à une pensée.
Chacun module la vitesse, la turbulence, la densité des liens et la contraction de la coquille. Rien ne clignote : tout se déforme.
Chaque passage de la séance est publié sur window.viviane : de quoi
brancher la lumière, le son et la brume sans toucher à l'écran.
16:9 letterboxé jusqu'en 4K, sortie reflet pour le film à 45°, chrome et curseur masqués : on branche le projecteur et on part.
Pourquoi Viviane
Viviane, c'est la Dame du Lac, l'enchanteresse qui, dans la légende arthurienne, retint Merlin auprès d'elle. La page s'appelle Merlin ; une démo ne pouvait pas porter le nom de la maison. Il fallait celle qui, dans la légende, garde l'enchanteur, et qui, sur cette page, veille.
Consulter la voyante
Tapez une question n'importe où, puis Entrée. La même question donnera toujours la même réponse : c'est un oracle, pas un tirage.
