5.4 KiB
title: XRSH created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, metaverse, webxr, experimental] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Development, https://xrsh.is]
💻 XRSH
Expérimentation de métaverse open source dans le navigateur via WebXR — un shell 3D immersif, décentralisé, à exécuter sans installation sur n'importe quel device compatible VR/AR.
📋 Informations Générales
| Attribut | Valeur |
|---|---|
| Nom | XRSH |
| Slug | xrsh |
| Description | Shell de métaverse open source basé sur WebXR, expérimental |
| Site officiel | https://xrsh.is |
| Repository | https://gitlab.com/xrsh/xrsh |
| Stars | 1 ⭐ |
| Licence | MIT / AGPL (à vérifier) |
| Langage | JavaScript, A-Frame, WebXR |
| Catégorie | Development |
| Note | ⚠️ Projet ultra-experimental (~1 ⭐) — preuve de concept technique, pas un produit de production. |
📝 Description
XRSH (prononcer « eXr-S-H », pour eXtended Reality SHell) est une tentative de shell 3D immersif entièrement exécuté dans le navigateur grâce à l'API WebXR. Le projet vise à offrir un point d'entrée unique vers un métaverse open source décentralisé, à l'opposé des visions propriétaires de Meta (Horizon Worlds) ou de Microsoft (Mesh).
Philosophie : pas d'installation, pas d'application native, pas de store verrouillé. L'utilisateur ouvre une URL, accepte l'entrée immersive, et se retrouve dans un espace 3D partagé. Les « rooms » (salles) sont des sites web HTML classiques enrichis de balises 3D, hébergeables n'importe où. Cette approche « web-natif » contraste avec les plateformes classiques (VRChat, Roblox) qui imposent un client lourd et une autorité centrale.
Stack technique : principalement A-Frame (framework WebVR/WebXR au-dessus de Three.js) et du JavaScript vanilla, le tout orchestré par un système de modules POSIX-like qui rappelle un shell Unix transposé en 3D. Les utilisateurs interagissent avec des objets virtuels via des commandes textuelles ou vocales, à la manière d'un MUD moderne.
⚠️ Confiance très faible : avec 1 seule étoile GitHub, XRSH est à la frontière entre projet personnel, démonstration de faisabilité et concept en cours d'exploration. Commits sporadiques, documentation fragmentaire, pas de communauté active structurée. À surveiller comme signal d'innovation, pas comme outil prêt à l'emploi.
🚀 Installation
Auto-hébergement minimal (Docker)
# docker-compose.yml
version: "3.8"
services:
xrsh:
image: nginx:alpine
container_name: xrsh
restart: unless-stopped
volumes:
- ./xrsh-www:/usr/share/nginx/html:ro
ports:
- "8080:80"
labels:
- "traefik.enable=true"
- "traefik.http.routers.xrsh.rule=Host(`xrsh.example.com`)"
- "traefik.http.routers.xrsh.entrypoints=websecure"
- "traefik.http.routers.xrsh.tls.certresolver=letsencrypt"
networks:
- proxy
networks:
proxy:
external: true
Build depuis les sources
git clone https://gitlab.com/xrsh/xrsh.git
cd xrsh
python3 -m http.server 8000
# Ouvrir https://localhost:8000 dans un navigateur WebXR-capable
⚙️ Configuration
- HTTPS obligatoire : WebXR refuse de fonctionner en HTTP non-sécurisé — obligatoire derrière Traefik/Caddy avec certificat valide (Let's Encrypt).
- Headers CORS : pour partager des « rooms » entre domaines, configurer CORS sur le serveur statique.
- Modules : XRSH charge des modules à chaud depuis des URLs distantes — whitelister strictement les domaines autorisés.
- Navigateur : Chrome ≥ 90 ou Firefox ≥ 90 avec WebXR activé, ou casque Meta Quest / Vision Pro / Vive.
- Stockage rooms : un simple bucket S3, Pages Cloudflare, ou Nginx statique suffisent.
🔗 Alternatives
- Mozilla Hubs — Métaverse open source WebXR, archivé en 2024 mais instances toujours accessibles.
- JanusWeb — Client metaverse open source en JavaScript, compatible VRML/X3D.
- A-Frame — Framework bas niveau utilisé par XRSH, pour construire ses propres expériences WebXR.
- Three.js — Bibliothèque 3D sous-jacente, pour un contrôle total.
🔒 Sécurité
- Surface d'attaque réduite : XRSH étant mono-utilisateur par défaut, l'auto-hébergement se résume à servir du statique.
- HTTPS obligatoire : WebXR et
getUserMedia(caméra/micro) requièrent un contexte sécurisé. - Modules tiers : chargés dans le contexte de votre page — CSP stricte recommandée, avec whitelist explicite des origines autorisées.
- Permissions WebXR : les casques VR/AR requièrent des permissions explicites — informer clairement les utilisateurs.
📚 Ressources
- Site officiel XRSH
- Dépôt GitLab (à vérifier)
- A-Frame — Framework WebXR
- WebXR Device API — MDN
- Selfh.st — Development
🔗 Pages Liées
- cat-development — Catégorie Development
- app-traefik — Reverse-proxy HTTPS obligatoire pour WebXR
- securisation-home-lab — Bonnes pratiques de sécurité web
- recettes-docker-compose — Templates de déploiement statique