‹ Merlin — le cabinet
Sigil Obsidian Forge — losange origami mahogany Sigil Sentry Watch — cristal d'hématite bleu acier Sigil Flint Sound Engine — flake de silex dorée Sigil Hyalite ArtNet — cluster botryoïdal 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 Darkvalley — 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é.

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.

Développement arrêté · logiciels en cours de remplacement par du hardware qualitatif

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.

Les quatre invariants

Interface
Un dashboard, un port

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

Réseau
Moteur local, nginx devant

Chaque moteur écoute sur 127.0.0.1 ; nginx sert le frontend, filtre le LAN 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
OTA signé

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

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

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

Les produits

Sigil Sentry Watch — cristal d'hématite facetté bleu acier

Sentry Watch — la vigie

Hématite · supervision

Objectif — surveiller tout le reste. Sentry Watch 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 : services tombés, latences qui dérivent, CPU qui monte, mises à jour disponibles. Il expose un mode kiosque pensé pour un écran de régie qui reste allumé — avec alerte sonore, parce qu'un écran de supervision que personne ne regarde ne sert à rien.

Frontend
nginx port 8080
Agent
Python, 127.0.0.1:3002
Rôle
Poll des services, alertes, uptime 24 h, kiosque régie
Mise à jour
Tarball signé (fail-closed)
Dashboard Sentry Watch : cinq services surveillés, cartes CPU/RAM/latence/uptime, alertes récentes et bargraph 24 h
Sentry Watch — maquette de référence de la refonte UI
Sigil Obsidian Forge — losange origami mahogany

Obsidian Forge — la forge

Obsidienne mahogany · automatismes

Objectif — parler aux machines du décor. Obsidian Forge 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 tout ça lisible sur un tableau de bord 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.

Frontend
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
Dashboard Obsidian Forge : télémétrie, entrées OSC, poll Modbus
Obsidian Forge — maquette de référence de la refonte UI
Sigil Flint Sound Engine — flake de silex dorée

Flint Sound Engine — le son

Silex · audio réseau

Objectif — jouer le son d'un lieu, sans machine de lecture dédiée. Le moteur gère les lecteurs, les sorties, les niveaux, et sait diffuser 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.

Frontend
nginx port 1881
Moteur
FastAPI, 127.0.0.1:8765
Audio
AES67 (démon local, bindé loopback)
Mise à jour
git fetch + vérification de signature du commit
Dashboard Flint Sound Engine : lecteurs, VU master, entrées OSC, état du moteur
Flint Sound Engine — maquette de référence de la refonte UI
Sigil Hyalite ArtNet — cluster botryoïdal cobalt et vert néon

Hyalite ArtNet — la lumière

Hyalite UV · éclairage

Objectif — 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 métier ArtNet ne l'est pas. Le développement s'est arrêté avant.

Frontend
nginx port 1882
Moteur
FastAPI, 127.0.0.1:8889
Cible
ArtNet / DMX512 — univers, patch, cues
É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é)
Sigil Iolite Motion — gemme coussin violette facettée

Iolite Motion — le mouvement

Iolite · animatronique

Objectif — le mouvement de décor : axes, servos, animatroniques, séquences. C'est le produit qui devait accueillir la brique de perception (LiDAR, 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.

Frontend
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 en cours de remplacement par du hardware qualitatif, 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 :

Et un sixième produit continue sa route hors de la suite : Whisperwood Narrator Engine, le narrateur invisible — synthèse vocale multi-moteur pour show control, toujours en ligne.

Voir Whisperwood Le seul produit de la génération logicielle encore en développement.
Sigil Obsidian Forge — losange origami mahogany Sigil Sentry Watch — cristal d'hématite bleu acier Sigil Flint Sound Engine — flake de silex dorée Sigil Hyalite ArtNet — cluster botryoïdal cobalt et vert Sigil Iolite Motion — gemme coussin violette
Obsidian Forge · Sentry Watch · Flint Sound Engine · Hyalite ArtNet · Iolite Motion
Développement arrêté · Whisperwood actif
Darkvalley Show Control Suite — Darkvalley R&D Nous contacter ›