This shows convergence particles to the tip of "parabola" at the center of the population: ac = [ [ "3", "dim, Particle's Space Dimension", "int" ], [ "2", "aN, Closest Neighbors Sensed by Particle", "int" ], [ "40", "pN, Particles Number in Population", "int" ], [ "300", "iN, Iteration Limit", "int" ], //4000 [ "false", "useStartAF, Assign predefined startup AF for each particle", "bool" ], [ "-5000.", "startAF, Startup AF", "double" ], [ "0.", "finalAF, Final AF", "double" ], [ "true", "terminateByAF, Terminate iteration will by reaching Final AF", "bool" ], [ "-3.0", "xStartMin, xStartMin", "double" ], [ "6.0", "xStartRange, xStartRange", "double" ], [ "-30.", "xBoxMin, Coordinate constrains. \"Living in box\". Min.", "double" ], [ "60.", "xBoxRange, Coordinate constrains. \"Living in box\". Set positive to enable. Range.", "double" ], [ "-30", "Startup speed limits. vMmin.", "double" ], [ "60", "Startup speed limits. vRange.", "double" ], [ "-30", "Speed limits. vMin.", "double" ], [ "60", "Speed limits. vRange.", "double" ], [ "0.0", "vStartMin, Individuality. iMin.", "double" ], [ ".005", "vStartRange, Individuality. iRange.", "double" ], [ "0.0", "vMin, Neighbority. nMin.", "double" ], [ ".0105", "vRange, Neighbority. nRange.", "double" ], [ "0.0", "gMin, Globality (Sociality). gMin.", "double" ], [ "0.01", "gRange, Globality (Sociality). gRange.", "double" ], [ "0.5", "vSense, vSense.", "double" ] ]; ===================================== This is an exper. with "broken" neighbority ( similar to a ?bug which is in original Java version: function findNeighborWithBestAF() { var iB=0; var a = self.a; var f = p[a[0]].bAF; for( var i=1; i f ) { iB = a[i]; f = p[iB].bAF; } } //bug?: return p[a[iB]]; //return p[iB]; return p[a[0]]; //"broken" neighbority }//findNeighborWithBestAF put perspective to: perspective: 300px; ac = [ [ "3", "dim, Particle's Space Dimension", "int" ], [ "1", "aN, Closest Neighbors Sensed by Particle", "int" ], [ "88", "pN, Particles Number in Population", "int" ], [ "3000", "iN, Iteration Limit", "int" ], //4000 [ "false", "useStartAF, Assign predefined startup AF for each particle", "bool" ], [ "-5000.", "startAF, Startup AF", "double" ], [ "0.", "finalAF, Final AF", "double" ], [ "true", "terminateByAF, Terminate iteration will by reaching Final AF", "bool" ], [ "-3.0", "xStartMin, xStartMin", "double" ], [ "6.0", "xStartRange, xStartRange", "double" ], [ "-30.", "xBoxMin, Coordinate constrains. \"Living in box\". Min.", "double" ], [ "60.", "xBoxRange, Coordinate constrains. \"Living in box\". Set positive to enable. Range.", "double" ], [ "-30", "Startup speed limits. vMmin.", "double" ], [ "60", "Startup speed limits. vRange.", "double" ], [ "-30", "Speed limits. vMin.", "double" ], [ "60", "Speed limits. vRange.", "double" ], [ "0.0", "vStartMin, Individuality. iMin.", "double" ], [ ".005", "vStartRange, Individuality. iRange.", "double" ], [ "0.0", "vMin, Neighbority. nMin.", "double" ], [ ".5", "vRange, Neighbority. nRange.", "double" ], [ "0.0", "gMin, Globality (Sociality). gMin.", "double" ], [ "0.001", "gRange, Globality (Sociality). gRange.", "double" ], [ "0.435", "vSense, vSense.", "double" ] ];