115 lines
5.4 KiB
Markdown
115 lines
5.4 KiB
Markdown
---
|
|
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)
|
|
|
|
```yaml
|
|
# 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
|
|
|
|
```bash
|
|
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](https://xrsh.is)
|
|
- [Dépôt GitLab](https://gitlab.com/xrsh/xrsh) (à vérifier)
|
|
- [A-Frame — Framework WebXR](https://aframe.io)
|
|
- [WebXR Device API — MDN](https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API)
|
|
- [Selfh.st — Development](https://selfh.st/apps/?tag=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
|