Plan pour recréer une version self-hosted de pictures.lytro.com axée sur le traitement d’images light-field

Bonjour ! pictures.lytro.com était la plateforme officielle de Lytro (fermée en 2017) pour uploader, partager et visualiser des “living pictures” issues de caméras light-field. Ces images permettaient une interaction post-capture : refocus en cliquant sur une zone, changement de perspective, partage social. Le cœur était le traitement d’images light-field (.LFR ou .LFP), qui capture non seulement l’intensité et la couleur de la lumière, mais aussi sa direction, pour une profondeur artificielle.

Recréer une version self-hosted signifie bâtir une app web open-source, Je te propose un plan structuré en phases, réaliste pour un développeur solo ou une petite équipe. Il s’appuie sur des outils open-source existants pour éviter de tout coder from scratch.

Phase 1 : Recherche et Préparation

  • Objectifs : Valider les specs et collecter les ressources.
  • Étapes :
    1. Teste des outils open-source pour light-field :
      • Lytro Unlock (GitHub : ea/lytro_unlock) : Bibliothèque Python pour déverrouiller et extraire les données light-field.
      • PlenoptiCam (GitHub : hahnec/plenopticam) : Logiciel cross-platform pour traitement light-field (refocus, depth maps).
      • Lytro WebGL Player (open-source depuis 2014, via dpreview.com) : Viewer web pour intégrer des galeries interactives.
    2. Définit tes priorités : MVP = upload, viewer refocus + perspective shift. Ajouts futurs : filtres, social sharing.
  • Outils : GitHub pour forks, Python/Jupyter pour tests locaux.
  • Risques : Les fichiers Lytro sont propriétaires ;

Phase 2 : Choix du Stack Technique

  • Critères : Facile à self-hoster, scalable, focus sur traitement est le partage

  • Backend: Node.js + Express: Léger, bon pour API upload ; intègre facilement WebGL.

  • Traitement Images: PlenoptiCam (Python) + OpenCV ou Lytro SDK open-source + TensorFlow Gratuit, gère refocus/depth

  • Frontend: React.js + Three.js/WebGL|Vue.js|Interactif pour viewer (clic-to-focus) ; réutilise le player Lytro open-source.

  • Stockage: Local FS + PostgreSQL. Self-hosted, scalable pour .LFP files (jusqu’à 10-50MB/image).

  • Base de Données: PostgreSQL. Pour metadata (titre, tags, users).

  • Serveur: Docker + Nginx. conteneurs pour isolation.

Phase 3 : Développement du Core

  • Sous-phases :
    1. **Gestion des Fichiers Light-Field ** :
      • Implémente un endpoint API pour upload (.LFP/.LFR).
      • Utilise Lytro Unlock pour parser : Extraire image 2D, depth map, et micro-lentilles.
      • Stocke en MinIO ; génère thumbnails statiques avec OpenCV.
    2. **Traitement d’Images ** :
      • Intègre PlenoptiCam pour algos clés :
        • Refocus : Algorithme de synthèse light-field (basé sur ray tracing simple).
        • Perspective Shift : Interpolation directionnelle de la lumière.
        • Depth Estimation : Carte de profondeur pour effets 3D.
      • Test : Utilise samples Lytro pour valider (ex. : refocus précis à ±0.1 pixel).
    3. **Viewer Interactif ** :
      • Frontend React : Galerie grid avec previews.
      • Intègre WebGL Player : Canvas pour render live (clic = refocus en temps réel).
      • Ajoute contrôles : Slider pour focus, drag pour shift, boutons filtres (ex. : HDR-like).

Phase 4 : Fonctionnalités Avancées et UI/UX

  • Étapes :
    1. Authentification : JWT simple pour users (upload privé/public).
    2. Sharing : Génération de liens embed (comme Lytro), export en vidéo/GIF.
    3. Galerie : Recherche par tags, pagination ; responsive pour mobile.
    4. UI inspirée : Design minimaliste comme Lytro (noir/blanc, focus sur images) ; utilise Tailwind CSS.