Du relief au galet · Géométrie interactive

D’une roche brute à un galet.

Une expérience de géométrie née d’un contour 2D : redistribuer les points, rapprocher les voisins, puis étendre le principe à une surface 3D. Tout est calculé et dessiné dans le navigateur.

Ouvrir l’expérience →

L’expérience est disponible en français et en anglais.

Une petite application sans dépendance

HTML, CSS et modules JavaScript natifs, sans framework ni compilation. geometry.mjs contient les opérations 2D ; geometry3d.mjs construit et fait évoluer le maillage ; render3d.mjs gère la vue, et smooth-render.mjs le rendu WebGL. app.mjs relie les contrôles, les mesures et l’animation.

Construire une roche brute

Un icosaèdre subdivisé fournit 42, 162 ou 642 sommets. Chaque sommet reste sur une direction radiale fixe. Le preset Roche brute combine des proportions et une orientation aléatoires, six plans de fermeture, neuf plans de fracture, un relief continu à plusieurs échelles et trois éclats peu profonds. Le rayon maximal est normalisé pour garder un cadrage comparable.

Faire évoluer tous les sommets ensemble

Le lissage rapproche chaque sommet de ses voisins et projette le déplacement sur sa direction radiale. L’abrasion directionnelle ne conserve que les déplacements vers l’intérieur : elle retire les reliefs et renforce l’usure sur les deux côtés exposés suivant X, Y ou Z. L’anisotropie règle cette préférence ; l’axe reste lié à l’objet lorsque la caméra tourne. Des rayons positifs et une topologie sphérique fixe préservent une surface fermée sans auto-intersection.

Voir et comparer

WebGL interpole les normales avec un tampon de profondeur ; un rendu à facettes prend le relais si WebGL est indisponible. Rotation, zoom, maillage et forme initiale facilitent la comparaison. requestAnimationFrame déclenche un pas par rafraîchissement. Recommencer restaure la même roche ; Nouvelle forme en génère une autre. La conservation du volume remet la forme à l’échelle à chaque pas.

Valider le modèle et en connaître les limites

Les tests Node vérifient les opérations géométriques 2D et 3D, la conservation de surface ou de volume, la topologie et l’abrasion. Le mode 2D redistribue les points à distances égales et contrôle les croisements avant d’accepter un déplacement. Les dimensions X/Y/Z et leurs rapports décrivent la forme ; l’irrégularité locale compare les rayons voisins. Ce modèle illustre un arrondissement, sans simuler le courant, les impacts ou les propriétés d’une roche. Le lissage peut combler les creux ; la conservation de volume implique une remise à l’échelle.