From 9b948cf4a9f165ea6adc3c45ac0f9c869bc0f1f5 Mon Sep 17 00:00:00 2001 From: opus Date: Tue, 21 Apr 2026 00:46:25 +0200 Subject: [PATCH] feat(layout): Fibonacci sunflower distribution pour T1(27)+T2(30) agents overcrowded - supprime overlap, T0/T3 gardent cercle simple --- agents-archi.html | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/agents-archi.html b/agents-archi.html index 927737c50..d16216b26 100644 --- a/agents-archi.html +++ b/agents-archi.html @@ -475,13 +475,22 @@ A.forEach(function(a,i){ let x,z; if(cnt===1){ x=0;z=0; - } else { + } else if(cnt>=15){ + // WAVE 200: Fibonacci sunflower — optimal disc distribution (T1/T2 overcrowded) const R=(pw[a.t]/2)*0.92; - // WAVE 190: Single circle — agents around meeting table - const angle=(ti/cnt)*Math.PI*2 - Math.PI/2; // start from top - const tableR=R*0.72; // agents sit at 72% of plateau radius + const golden=Math.PI*(3-Math.sqrt(5)); // golden angle ~137.5° + const theta=ti*golden - Math.PI/2; + const rFrac=Math.sqrt((ti+0.5)/cnt); + const discR=R*0.88; // 88% of plateau radius + x=rFrac*discR*Math.cos(theta); + z=rFrac*discR*Math.sin(theta)*0.72; // 72% Z perspective (less compression) + } else { + // Single circle for sparse tiers (T0=7, T3=13) + const R=(pw[a.t]/2)*0.92; + const angle=(ti/cnt)*Math.PI*2 - Math.PI/2; + const tableR=R*0.72; x=tableR*Math.cos(angle); - z=tableR*Math.sin(angle)*0.65; // 65% Z for perspective + z=tableR*Math.sin(angle)*0.65; } const url=_pk[a.n]||(a.r?'https://robohash.org/'+encodeURIComponent(a.n)+'?set=set1&size=200x200':'https://api.dicebear.com/9.x/adventurer/svg?seed='+encodeURIComponent(a.n));