‹ Merlin, le cabinet
Sigil Obsidian Forge : losange origami acajou Sigil Sentry Watch : cristal d'hématite bleu acier Sigil Flint Sound Engine : éclat de silex doré Sigil Hyalite ArtNet : grappe botryoïde cobalt et vert Sigil Iolite Motion : gemme coussin violette
Mineral Heraldry, les cinq sigils · Darkvalley R&D
Darkvalley R&D · Show Control Suite
LA SUITE

Cinq logiciels,une architecture

Chaque produit porte le nom d'une pierre. Tous partagent le même squelette : un moteur local, un tableau de bord, une bibliothèque commune, un canal de mise à jour signé.

L'idée

Un lieu, cinq métiers.
Une seule interface.

Dans un lieu immersif, chaque métier a son logiciel, sa console, son port. Personne n'a de vue d'ensemble.

La Suite voulait cinq outils assez proches pour qu'on n'ait qu'une interface à apprendre : la supervision, les automatismes, le son, la lumière, le mouvement.

La règle

Écrit une fois,
tenu partout.

Un tableau de bord par produit, un moteur jamais exposé, une bibliothèque commune, une mise à jour signée.

La fin

Le matériel
a gagné.

Trois des cinq produits n'apportaient pas assez face à du bon matériel. Le développement s'est arrêté.

Ce qui reste : les invariants d'exploitation, la grammaire d'interface, les cinq sigils. Et Whisperwood, qui continue sa route.

La suite

Whisperwood
tourne toujours.

Le narrateur invisible du show control, seul produit de cette génération encore en développement.

Voir Whisperwood ›

Développement arrêté · Whisperwood actif
Darkvalley Show Control Suite · Darkvalley R&D ‹ Merlin, le cabinet Nous contacter ›

La Darkvalley Show Control Suite est née d'un constat de terrain : dans un lieu immersif, chaque métier a son logiciel, chacun a sa console, son port, sa logique, et personne n'a de vue d'ensemble. L'idée était d'écrire cinq outils qui se ressemblent assez pour qu'on n'ait à apprendre qu'une seule interface.

Ce qui continue

La Suite est arrêtée, il n'y a rien à essayer ici. Son sixième produit, lui, a continué hors d'elle : Whisperwood, le narrateur invisible, toujours en développement et en ligne.

Voir Whisperwood › Site externe

Développement arrêté. Les cinq logiciels sont en cours de remplacement par du matériel choisi et intégré plutôt qu'écrit. Cette page est gardée comme archive : elle dit ce que la Suite a prouvé, et ce qui en reste.

Une architecture commune

Les cinq produits ne partagent pas seulement une charte graphique : ils partagent des invariants d'exploitation, écrits une fois et tenus partout. C'est ce qui rend la Suite installable par la même personne, sur la même machine, sans documentation par produit.

Côté technique, une base unique : React 18, Vite et TypeScript pour les interfaces, Python et FastAPI pour les moteurs, des services systemd, et une bibliothèque de composants partagée entre les cinq.

Cinq logiciels qui se ressemblent coûtent moins cher à exploiter que cinq logiciels excellents qui ne se ressemblent pas.

Les quatre invariants

Interface
Un tableau de bord, un port

Un seul tableau de bord par logiciel, un seul port, jamais deux interfaces parallèles : les sections sont des onglets, pas des adresses.

Réseau
Moteur local, nginx devant

Chaque moteur écoute sur 127.0.0.1 ; nginx sert l'interface, filtre le réseau local et injecte le jeton. Le moteur n'est jamais exposé.

Socle
Une bibliothèque partagée

Les composants d'interface et les briques communes vivent dans un seul paquet : on corrige une fois, les cinq produits en bénéficient.

Mise à jour
À distance, et signée

Chaque produit sait se mettre à jour seul, avec vérification de signature et redémarrage propre côté systemd.

Sentry Watch, la vigie

Hématite · supervision

Sentry Watch surveille tout le reste. Il interroge les autres produits et les machines du lieu, relève leur santé, et prévient avant que la salle ne s'en aperçoive : service tombé, latence qui dérive, processeur qui chauffe.

Son mode kiosque est pensé pour un écran de régie qui reste allumé, avec une alerte sonore : un écran de supervision que personne ne regarde ne sert à rien.

Interface
nginx, port 8080
Agent
Python, 127.0.0.1:3002
Rôle
Interrogation des services, alertes, disponibilité sur 24 h, kiosque de régie
Mise à jour
Archive signée, refusée si la signature manque
Tableau de bord Sentry Watch : cinq services surveillés, cartes processeur, mémoire, latence, disponibilité, alertes récentes et histogramme sur 24 h
Sentry Watch · maquette de référence de la refonte

Obsidian Forge, la forge

Obsidienne acajou · automatismes

Obsidian Forge parle aux machines du décor. C'est le pont entre le monde du spectacle (OSC) et le monde industriel (Modbus) : il interroge des automates, expose leurs états, déclenche des actions, et rend le tout lisible en temps réel.

C'est le produit qui a le plus tourné en conditions réelles, et celui qui a servi de banc d'essai à tous les invariants de la Suite.

Interface
nginx, port 80
Moteur
FastAPI, 127.0.0.1:8888
Protocoles
OSC · Modbus TCP · WebSocket temps réel
Mise à jour
Échange de moteur signé, sauvegarde automatique
Tableau de bord Obsidian Forge : télémétrie, entrées OSC, interrogation Modbus
Obsidian Forge · maquette de référence de la refonte

Flint Sound Engine, le son

Silex · audio réseau

Flint joue le son d'un lieu sans machine de lecture dédiée. Le moteur gère les lecteurs, les sorties, les niveaux, et diffuse en AES67 sur le réseau audio de l'installation.

Piloté en OSC, il s'insère dans une conduite existante au lieu de la remplacer.

Interface
nginx, port 1881
Moteur
FastAPI, 127.0.0.1:8765
Audio
AES67, démon local lié à la boucle locale
Mise à jour
git fetch et vérification de la signature du commit
Tableau de bord Flint Sound Engine : lecteurs, vumètre général, entrées OSC, état du moteur
Flint Sound Engine · maquette de référence de la refonte

Hyalite ArtNet, la lumière

Hyalite UV · éclairage

La même grammaire, appliquée à la lumière : univers ArtNet et DMX, patch, états, déclenchements.

Le produit existe à l'état de squelette V1 : interface et authentification sont en place, la logique ArtNet ne l'est pas. Le développement s'est arrêté avant.

Interface
nginx, port 1882
Moteur
FastAPI, 127.0.0.1:8889
Cible
ArtNet et DMX512 : univers, patch, conduites
État
Squelette V1 · métier non développé
Maquette Hyalite ArtNet : univers ArtNet, patch et états
Hyalite ArtNet · maquette de référence, produit non développé

Iolite Motion, le mouvement

Iolite · animatronique

Le mouvement de décor : axes, servos, animatroniques, séquences. Iolite devait accueillir la brique de perception, LiDAR et vision, pour faire réagir un décor à la présence des visiteurs.

Comme Hyalite, il est resté au stade du squelette V1 : la coquille est là, le moteur ne l'est pas.

Interface
nginx, port 1883
Moteur
FastAPI, 127.0.0.1:8890
Cible
Axes, servos, séquences · perception en V2
État
Squelette V1 · métier non développé
Maquette Iolite Motion : axes, servos et séquences
Iolite Motion · maquette de référence, produit non développé

Pourquoi ça s'arrête

La Suite a prouvé ce qu'elle devait prouver : qu'on peut tenir cinq produits sur une seule architecture, un seul canal de mise à jour et une seule grammaire d'interface. Elle a aussi montré ses limites : trois des cinq produits n'apportaient pas assez face à ce que fait déjà du bon matériel.

Le développement est donc arrêté. Les logiciels sont remplacés par du matériel choisi et intégré plutôt qu'écrit. Ce qui reste de la Suite n'est pas perdu pour autant : c'est même ce qui avait le plus de valeur.

  • Les invariants d'exploitation. Moteur local, nginx devant, mise à jour signée : ils survivent au code qui les portait.
  • La grammaire d'interface. La refonte et la bibliothèque de composants partagée, réemployées telles quelles sur les outils clients.
  • La Mineral Heraldry. Cinq sigils générés puis retouchés à la main, qui restent l'identité visuelle de la maison.
  • Whisperwood. Le sixième produit, le narrateur invisible, continue sa route hors de la Suite.
Sigil Obsidian Forge Sigil Sentry Watch Sigil Flint Sound Engine Sigil Hyalite ArtNet Sigil Iolite Motion
Obsidian Forge · Sentry Watch · Flint Sound Engine · Hyalite ArtNet · Iolite Motion
Développement arrêté · Whisperwood actif
Darkvalley Show Control Suite · Darkvalley R&D ‹ Merlin, le cabinet Nous contacter ›