Pinocchio est un dashboard web personnel au style rétro LCD / cyberpunk,
conçu pour visualiser des statistiques de vie en temps réel — inspiré des jeux Sims et RPG.
Les données arrivent depuis des scripts Python ou Node.js via le protocole OSC (Open Sound Control, UDP),
ou directement via l'API REST. Le dashboard se met à jour instantanément grâce aux
Server-Sent Events (SSE) — zéro rechargement de page, zéro dépendance frontend.
Un moteur de règles permet de configurer des conditions de déclenchement
(ex : faim < 25) qui envoient automatiquement un broadcast OSC et déclenchent
une animation plein écran sur tous les clients connectés.
L’écran principal met l’accent sur Personal Core, Action Catalog et Avatar Console.
Les domaines apartment, world et VJ restent exposés par l’API, OSC et SSE (matrix, glitch, overlay level-up) ;
les domaines apartment/world/VJ n'ont pas de panneau dédié dans l'index (code legacy supprimé).
Actions bénéfiques / toxiques effets sur personal, apartment, world
Liste scrollable, déclenchement via API
AVATAR CONSOLE
Personnage animé sur Canvas 2D 4 états selon bien-être moyen
Guitare, magie, chapeau — même logique que le wizard
02 — DÉMONSTRATION RAPIDE
DÉMARRAGE
# Installation (une seule fois) $ cd D:\VFG_PT__\Pinocchio $ npm install && cd backend && npm install && cd ..
# Seed base de données (première fois) $ npm run seed
# Lancement avec icône barre des tâches $ npm run tray → Dashboard : http://localhost:3001→ Admin : http://localhost:3000/didoumanoufg→ OSC UDP : port 9000
ENVOYER DES DONNÉES VIA OSC (Python)
from pythonosc import udp_client
client = udp_client.SimpleUDPClient("127.0.0.1", 9000)
# Mettre à jour la faim
client.send_message("/personal/hunger", 35.0)
# Ajouter des XP
client.send_message("/world/xp/add", 100)
# Test de connectivité
client.send_message("/ping", 1)
ENVOYER VIA API REST (curl)
# Mise à jour apartment $ curl -X POST localhost:3001/api/apartment \ -H "Content-Type: application/json" \ -d '{"temperature":28,"light_level":80}'
# Level-up XP $ curl -X POST localhost:3001/api/world/xp/add \ -d '{"amount":500}' -H "Content-Type: application/json"
Changer les ports — redémarre automatiquement via launcher
06 — PROTOCOLE OSC (UDP port 9000)
OSC (Open Sound Control) est un protocole de communication UDP utilisé dans les installations artistiques,
la domotique et les outils de live coding. Pinocchio l'utilise pour recevoir des mises à jour
depuis n'importe quel script, logiciel ou capteur qui supporte OSC.
Adresse OSC
Type
Plage
Description
/personal/hunger
f
0–100
Niveau de faim
/personal/sleep
f
0–100
Niveau de sommeil
/personal/energy
f
0–100
Énergie
/personal/hydration
f
0–100
Hydratation
/personal/mood
f
0–100
Humeur
/apartment/temperature
f
°C
Température
/apartment/light
f
0–100
Luminosité
/apartment/tidiness
f
0–100
Propreté
/apartment/air
f
0–100
Qualité de l'air
/world/level
i
≥ 1
Niveau du joueur
/world/xp
i
≥ 0
XP absolu
/world/xp/add
i
any
Ajoute des XP (level-up auto)
/world/quests/done
i
≥ 0
Quêtes terminées
/world/quests/active
i
≥ 0
Quêtes actives
/world/title
s
string
Titre du joueur
/ping
any
—
Test de connectivité
COMPATIBILITÉ
Python
python-osc pip install python-osc
Node.js
node-osc npm install node-osc
Max/MSP & Pure Data
Support OSC natif via udpsend/udpreceive
TouchOSC / Lemur
Apps mobiles OSC — configurer IP + port 9000
07 — MOTEUR DE RÈGLES
Après chaque écriture de stat (REST ou OSC), le moteur évalue toutes les règles actives
pour cette catégorie. Quand une condition est vérifiée et que le cooldown est écoulé :
Un paquet OSC UDP est envoyé à la cible broadcast configurée
L'événement est loggé dans event_log
Un événement SSE rule-triggered est envoyé à tous les clients connectés
L'animation Glitch Overlay s'affiche sur chaque onglet/écran ouvert