Files
2026-06-09 18:40:21 +02:00

116 lines
5.7 KiB
Markdown

---
title: OmniPoly
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, front-end, polyhaven, 3d, assets, textures, blender, cgi, libre, docker]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=Front-End, https://github.com/kWeglinski/OmniPoly]
---
# 🎨 OmniPoly
> **Un front-end self-hosted pour parcourir et télécharger les assets 3D / textures / HDRIs libres de Poly Haven** — sans dépendre du site officiel.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://polyhaven.com/ (catalogue original) |
| **GitHub** | https://github.com/kWeglinski/OmniPoly |
| **License** | CC0 (contenu) / AGPL-3.0 (code) |
| **Langage principal** | TypeScript / Node.js |
| **Étoiles GitHub** | ~6 ⭐ |
| **Dernière MAJ** | 2024-2025 (lent) |
| **Catégorie** | [[cat-front-end]] |
## Description
**OmniPoly** est un **front-end alternatif pour Poly Haven**, la célèbre bibliothèque d'assets 3D, textures et HDRIs **100% libres (CC0)** utilisée massivement par les graphistes, architectes, développeurs de jeux et makers Blender. Le site officiel est très bien fait, mais OmniPoly ajoute une **couche self-hostable** : on garde la possibilité de naviguer dans le catalogue, filtrer par type (modèles 3D, textures, HDRIs), prévisualiser et télécharger — **sans dépendre de la disponibilité ou des évolutions futures de polyhaven.com**.
L'intérêt pratique est triple : **1)** résilience (si polyhaven.com tombe, on a notre miroir), **2)** intégration possible dans un pipeline interne ou un intranet d'école/studio, **3)** personnalisation de l'interface (catégories favorites, langues, branding). OmniPoly agit essentiellement comme un **proxy intelligent** qui réorganise les flux de données publiques de Poly Haven.
⚠️ **Note importante** : OmniPoly reste **fortement dépendant de l'API publique de Poly Haven**. Si l'API change ou se ferme, le projet s'arrête. Le rythme de développement est lent (bus factor 1, jeune, peu de contributeurs) — c'est un **projet passion plus qu'un produit mature**. À considérer comme une **brique sympa pour homelab créatif** ou pour des usages éducatifs, pas comme un outil de production critique.
## Installation
### Via Docker (recommandé)
```yaml
version: "3.8"
services:
omnipoly:
image: ghcr.io/kweglinski/omnipoly:latest
container_name: omnipoly
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- POLYHAVEN_API_BASE=https://api.polyhaven.com
- DEFAULT_THEME=light
volumes:
- omnipoly-cache:/app/cache
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000/"]
interval: 60s
timeout: 10s
retries: 3
volumes:
omnipoly-cache:
```
> **Note** : l'image officielle est publiée sur `ghcr.io/kweglinski/omnipoly`. Vérifier sur le dépôt que la dernière build CI est bien passée avant déploiement.
### Installation manuelle
1. Cloner le dépôt : `git clone https://github.com/kWeglinski/OmniPoly.git && cd OmniPoly`
2. Installer Node.js 18+ et npm/yarn
3. Installer les dépendances : `npm install`
4. Configurer les variables d'environnement (voir section Configuration)
5. Compiler pour la production : `npm run build`
6. Démarrer : `npm start` (par défaut sur le port 3000)
7. Exposer derrière un reverse proxy HTTPS (Caddy, Traefik, Nginx)
## Configuration
- **API Poly Haven** : `POLYHAVEN_API_BASE` — laisse le défaut sauf si vous avez un miroir interne
- **Thème par défaut** : `DEFAULT_THEME=light` ou `dark`
- **Cache local** : le volume `omnipoly-cache` stocke les vignettes et métadonnées pour limiter les appels API
- **Filtres** : OmniPoly propose nativement les filtres par catégorie (Modèles, Textures, HDRIs), licence (CC0 partout), popularité
- **Pas d'auth** : pas d'authentification utilisateur, l'app est publique par défaut
- **Internationalisation** : interface en anglais, pas de traduction française native
## Alternatives
### Open source
- **polyhaven.com** — le site officiel, déjà open et libre, mais non self-hostable
- **ambientCG** — autre bibliothèque de textures CC0, gérée par la même équipe historique
- **cgbookcase** — textures CC0 supplémentaires
### Propriétaires
- **Adobe Substance 3D Assets** — la bibliothèque payante d'Adobe, intégrée à la suite Substance
- **TurboSquid** — marketplace de modèles 3D, qualité variable, licences non toutes libres
- **3dsky / CGTrader** — marketplaces généralistes, beaucoup de contenu non libre
## Sécurité
-**Aucun credential utilisateur** : pas d'auth, donc rien à voler
-**CC0 sur le contenu** : tous les assets servis sont dans le domaine public
- ⚠️ **Dépendance externe forte** : l'app **ne fonctionne pas** si polyhaven.com et son API sont inaccessibles — c'est un proxy, pas un miroir complet
- ⚠️ **Pas de stockage des assets** : OmniPoly ne ré-héberge pas les fichiers, il sert ceux de Poly Haven. Pour un vrai miroir hors-ligne, voir plutôt `polyhavenassets` (plugin Blender) ou un script de sync manuel
- **HTTPS obligatoire** en production pour éviter l'écoute des requêtes de prévisualisation
- **Rate limiting** : Poly Haven a une API publique ; en cas d'usage intensif, l'IP peut être throttlée — activer le cache aide
- **Bus factor 1 / projet jeune** : pas de garantie de maintenance long terme, garder un œil sur les releases et l'API upstream
## Ressources
- [Dépôt GitHub kWeglinski/OmniPoly](https://github.com/kWeglinski/OmniPoly)
- [Poly Haven (catalogue original)](https://polyhaven.com/)
- [API Poly Haven](https://api.polyhaven.com/)
- [AmbientCG (textures CC0 complémentaires)](https://ambientcg.com/)
## Pages Liées
- [[cat-front-end]]
- [[recettes-docker-compose]]