Skip to content
Dani Groupe

Une scene WebGL cinematographique pour un constructeur genevois

Un site de marque editorial multi-pages pour une entreprise generale genevoise, porte par un hero shader Three.js ecrit a la main et concu autant pour les GPU de bureau que pour le mobile.

Dani Groupe | Une scene WebGL cinematographique pour un constructeur genevois project screenshot

Le defi

Dani Groupe est une entreprise generale et de renovation basee a Geneve, au service des proprietaires de toute la Suisse romande, ainsi que de clients commerciaux et diplomatiques comme les missions de l'ONU et les ambassades. Ils avaient besoin d'une presence de marque a la hauteur de la precision et du poids de leur travail sur quelque seize corps de metier, du desamiantage et de la demolition a l'isolation de facade et aux cuisines cles en main. Un modele standard les aurait sous-estimes. Ils voulaient quelque chose d'aussi reflechi qu'un ouvrage acheve.

Notre approche

Nous avons construit un site multi-pages sur mesure sur Next.js 16 et React 19, avec un systeme de design editorial chaud et sombre. L'ensemble repose sur un seul fichier de contenu, de sorte que chaque ligne de texte en francais suisse, chaque prestation, reference et projet se trouve a un seul endroit modifiable, la photographie passant par une unique carte d'images 4K. La piece maitresse est un hero WebGL sur mesure: nous avons ecrit a la main des shaders GLSL vertex et fragment qui rendent la photographie ou la video 4K du hero sur un plan haute densite, avec une respiration en simplex-noise, une ondulation suivant la souris, un deplacement au defilement, une aberration chromatique et un masque preservant le visage pour que le sujet reste net pendant que les bords se deforment. Nous avons aborde la performance de maniere deliberee, en livrant sur mobile un hero video HTML5 leger, afin que les telephones ne paient jamais le cout du shader de bureau.

Ce que nous avons livre

Sept pages de contenu plus une page carriere: Accueil, Groupe (a propos), Competences (services), References (clients), Realisations (projets), Partenariat (parrainages) et Contact
Hero WebGL Three.js sur mesure avec shaders GLSL ecrits a la main: respiration en simplex-noise, ondulation suivant la souris, deplacement au defilement, aberration chromatique, teinte chaude, vignette et fondu par dissolution de bruit entre les textures
Texture de carrousel photo ou de video MP4 4K dans le hero, avec un masque radial preservant le visage qui garde le sujet net pendant que les bords se deforment
Hero video HTML5 leger sur mobile et appareils tactiles, qui contourne entierement le shader gourmand en GPU
Une seconde scene Three.js sur la page Contact: un monolithe icosaedre deforme qui tourne lentement et s'incline avec la souris
Galerie Realisations avec filtres par categorie, mise en page parallax en mosaique et un comparateur avant/apres a faire glisser
Defilement fluide propulse par Lenis avec navigation par ancre interceptee et une barre de progression de defilement en haut
Curseur anime sur mesure avec libelles contextuels (Voir / Ecrire / Appeler) qui se masque sur les appareils tactiles
Statistiques en compte a rebours declenchees au defilement, boutons d'appel a l'action magnetiques, blocs de zoom cinematographique adhesifs et un index de section adhesif
Section References associant les logos clients aux missions permanentes de l'ONU et aux representations diplomatiques, avec drapeaux des pays
Preloader anime avec un compteur honnete de 0 a 100 conditionne a la fois par une duree minimale et le chargement complet de la fenetre
Formulaire de contact qui compose un message structure et le transmet au client mail de l'utilisateur via mailto, sans backend e-mail cote serveur

Points techniques cles

Next.js 16 (App Router) avec React 19 et TypeScript strictPipeline de shaders GLSL ecrits a la main, incluant une implementation simplex-noise entierement integree, qui anime le hero WebGLThree.js 0.171 avec react-three-fiber 9 et drei 10Tailwind CSS v4 avec un theme CSS-first et un systeme de couleurs OKLCH cuivre brule sur presque-noirAnimation Motion (Framer Motion) et defilement fluide Lenis sur tout le siteStrategie de performance adaptee a l'appareil: shader GPU sur bureau, simple video HTML5 sur mobile, avec prise en compte de prefers-reduced-motion sur le preloader et les effets de defilementSoin de l'accessibilite: lien d'evitement vers le contenu, jetons de contraste OKLCH verifies AA, contours focus-visible et zoom preserveBuild Docker standalone deploye derriere Traefik avec TLS Let's Encrypt, en-tetes de securite, limitation de debit, redirection www et compression
Nous voulions que le site donne la meme impression que le travail lui-meme: precis, dense et bati pour durer. Nous avons donc ecrit le shader du hero a la main plutot que de recourir a une bibliotheque, puis consacre autant d'efforts a garantir qu'un telephone n'ait jamais a l'executer. Un seul fichier de contenu pilote tout le site, ce qui signifie que les textes et la photographie peuvent evoluer sans que nous touchions au moteur en dessous.

Dani Groupe

Dani Groupe

Ca vous plait ?

Construisons quelque chose d'aussi reussi, voire mieux, pour vous.

Lancer un projet