Introduction
Le nœud Labs Growth (de SideFX Labs) simule des systèmes de croissance organique - mycélium, corail, réseaux vasculaires, cristaux, lierre - à travers trois mécanismes complémentaires : un volume de confinement (le Bounds Object), des points d'attraction qui guident la direction de croissance, et le thigmotropisme, qui gère l'interaction physique avec les surfaces. Combiner ces trois paramètres reproduit des comportements biologiques très convaincants.
Architecture des entrées
Le Labs Growth SOP a trois entrées distinctes. Comprendre leur rôle est essentiel avant de construire le réseau.
| Entrée | Contenu | Rôle |
|---|---|---|
| Input 1 | Géométrie source | Points de départ de la croissance (seeds) |
| Input 2 | Bounds Object | Volume de confinement - la croissance y reste confinée |
| Input 3 | Attraction Points | Points dispersés qui attirent et orientent la croissance |
Growth Bounds Object
Le Bounds Object est un volume fermé qui agit comme un conteneur pour la simulation. La croissance ne peut pas s'en échapper. Pensez-y comme à un aquarium dans lequel on ferait pousser du corail : la géométrie de l'aquarium définit les limites physiques de la colonisation.
En pratique, n'importe quel maillage fermé fonctionne : une sphère, un crâne, un tronc d'arbre creux, un organe, un rocher. Plus la géométrie est complexe et sinueuse, plus les comportements de croissance sont intéressants à mesure qu'elle navigue à l'intérieur.
Points d'attraction
Les Attraction Points sont des points dispersés dans ou sur l'espace de simulation qui attirent la croissance vers eux. Plus il y a de points dans une zone, plus la croissance y est dense. Chaque branche en croissance recherche constamment des attracteurs dans son rayon d'influence et s'oriente vers le plus proche.
L'idée centrale : les Attraction Points définissent où a lieu la croissance, le tropisme définit la direction générale, et le thigmotropisme gère la relation physique aux surfaces.
Varier la densité par texture
La densité peut être pilotée depuis une texture plutôt que d'être uniforme - disperser des points, puis utiliser un nœud Attribute from Map lisant un bruit ou une carte noir et blanc peinte dans un attribut density. Les zones denses produisent une forte attraction, les zones vides laissent la croissance se développer plus librement.
Paramètres clés
| Paramètre | Valeur | Effet |
|---|---|---|
| Attraction Radius | 0.5 - 3.0 | Rayon d'influence de chaque point attracteur |
| Kill Distance | 0.1 - 0.5 | Distance à laquelle un point est « consommé » et supprimé |
| Segment Length | 0.05 - 0.5 | Longueur de chaque segment entre deux étapes de croissance |
| Iterations | 50 - 500 | Nombre de cycles de simulation (plus = plus dense) |
Thigmotropisme
Origine biologique
Le thigmotropisme (du grec thigma, toucher) est la réponse d'une plante au contact physique. C'est le mécanisme qui fait pousser le lierre autour d'un mur plutôt qu'à travers, qui fait s'enrouler les vrilles d'une vigne autour d'un tuteur, et qui fait dévier les racines autour d'un caillou. Le système nerveux de la plante détecte la résistance physique et recalibre sa direction de croissance en conséquence.
Dans Labs Growth
Le paramètre Thigmotropism utilise la géométrie du Bounds Object (ou un objet dédié sur l'Input 2) comme surface de réaction. La branche en croissance détecte la proximité du maillage et réagit en s'en éloignant ou en s'y accrochant, selon le signe de la valeur.
| Paramètre | Valeur | Effet |
|---|---|---|
| Thigmotropism Weight | +0.5 à +1.0 | Évitement - la branche pousse autour de l'objet |
| Thigmotropism Weight | -0.5 à -1.0 | Enveloppement - la branche s'accroche à la surface |
| Thigmotropism Offset | 0.05 - 0.5 | Distance de détection - à quelle distance la branche commence à réagir |
Cas d'usage
- Évitement (valeur positive) - racines poussant autour de rochers, mycélium colonisant autour d'une structure rigide, cristaux poussant dans les interstices d'un maillage complexe. Le Bounds Object agit comme un obstacle.
- Enveloppement (valeur négative) - lierre sur une façade, vigne sur un treillis, corail enveloppant un récif, lichen suivant le relief d'une pierre. La surface devient un guide plutôt qu'un obstacle.
Configuration pratique : envelopper une surface
Le workflow complet pour faire pousser de la végétation le long d'un maillage de façade ou d'un rocher :
// Étape 1 - Préparer la surface cible
[Maillage de façade]
├─ Scatter SOP (sur la surface) → Input 3 (points d'attraction)
└─ Sortie directe → Input 2 (objet thigmo)
// Étape 2 - Seeds de départ
[Points au niveau du sol / base] ──────► Input 1
// Étape 3 - Labs Growth SOP
Thigmotropism Weight : -0.8
Thigmotropism Offset : 0.1
Attraction Radius : 0.3 (proche de la surface)
Segment Length : 0.05 (segments courts = courbure précise)
Iterations : 300
Résultat attendu : la croissance est attirée vers les points dispersés sur la surface ET physiquement retenue par le maillage - elle suit et enveloppe la géométrie de façon organique, sans jamais s'en éloigner.
Combiner tropisme et thigmotropisme
Le tropisme (phototropisme, gravitropisme) et le thigmotropisme peuvent se combiner pour créer un comportement bien plus nuancé. Ils ne s'annulent pas l'un l'autre - ils créent une tension entre deux forces qui produit des trajectoires bien plus organiques que l'un ou l'autre utilisé seul.
| Paramètre | Valeur | Effet |
|---|---|---|
| Tropism Direction | {0, 1, 0} | Force globale vers le haut (phototropisme) |
| Tropism Weight | 0.2 - 0.6 | Influence légère de la lumière - ne domine pas le thigmotropisme |
| Thigmotropism Weight | -0.7 | Enveloppement dominant - la surface reste le guide principal |
Exemple concret : du lierre sur un mur exposé au sud. Le tropisme positif tire légèrement vers la lumière (vers le haut), le thigmotropisme négatif maintient les branches collées à la maçonnerie. Le résultat est une croissance globalement ascendante tout en suivant fidèlement le relief du mur.
Astuces et dépannage
- La croissance s'échappe du Bounds Object - vérifier que le maillage est fermé (Merge + Fuse + Check Edges). Activer Convert to VDB pour plus de robustesse.
- Les branches ne convergent pas - le Kill Distance est trop grand. Le réduire à 15-20% de l'Attraction Radius.
- Croissance trop uniforme, pas organique - varier la densité des Attraction Points avec un Attribute from Map piloté par du bruit de Perlin.
- L'enveloppement ne suit pas la surface - Thigmotropism Offset trop grand. Commencer à 0.05, et garder le Segment Length court (< 0.1).
- Simulation lente sur un maillage complexe - réduire les Iterations pour les tests, ne les augmenter que pour le rendu final.
- Résultat trop géométrique, pas assez souple - activer Post-Smooth dans les paramètres de sortie, ou ajouter un Smooth SOP en post-traitement.