Code for Dextro.org algorithmic image "H013" written by Walter Gorgosilits (Dextro.org) between 1994 and 2017. For research only. No commercial or secret service/clandestine use. int a = 1024; int b = 968; int m3 = 1; int num1 = 20; int num2 = 100000; int m = 0; float[] xli = new float[num2]; float[] yli = new float[num2]; float[] d1li = new float[num1]; float[] pxli = {532.43, 389.82, 632.72, 224.13, 930.31, 790.39, 108.22, 382.93, 387.66, 243.68, 373.45, 336.00, 335.09, 311.08, 796.79, 433.14, 1017.56, 958.93, 20.09, 804.93}; float[] pyli = {97.09, 386.67, 153.80, 138.69, 416.14, 580.62, 54.33, 503.12, 233.78, 428.57, 235.35, 117.77, 475.99, 381.83, 749.47, 483.17, 199.49, 592.13, 175.89, 97.65}; float x1, y1, x2, y2, xx, yy, xxc, yyc, ff, fff, ffx, ffy, V2, V3, d1, d2, d3, dx, dy, xxp, yyp, dd, w, xx2, yy2, xx3, yy3;//, m33; int ble = 5; void setup() {size(770, 1200, P2D); background(0); frameRate(100); stroke(255, ble); smooth(); for (int i = 0; i < num2; i++) {xli[i] = random(a); yli[i] = random(b);} for (int i = 0; i < num1/2; i++) {x1 = pxli[2*i]; y1 = pyli[2*i]; x2 = pxli[2*i+1]; y2 = pyli[2*i+1]; dx = abs(x1 -x2); dy = abs(y1 -y2); d1 = sqrt(dx*dx +dy*dy); if (d1 == 0) {d1 = 1;} d1li[i] = d1;}} void draw() {m = m +1; if (m == 10) {m = 0; m3 = m3 +1; for (int i = 0; i < num2; i++) {xli[i] = random(a)/2; yli[i] = random(b)/2;}} for (int i = 0; i < num1/2; i++) {x1 = pxli[2*i]; y1 = pyli[2*i]; x2 = pxli[2*i+1]; y2 = pyli[2*i+1]; d1 = d1li[i]; for (int n = 0; n < num2; n++) {xx = xli[n]; yy = yli[n]; xxc = xx; yyc = yy; dx = abs(xx -x1); dy = abs(yy -y1); d2 = sqrt(dx*dx +dy*dy); dx = abs(xx -x2); dy = abs(yy -y2); d3 = sqrt(dx*dx +dy*dy); ff = min(d1, d2, d3); if (ff == 0) {ff =0.001;} xx = xx -(xx -x2)/ff; yy = yy -(yy -y2)/ff; fff = d2/10; xxp = xx +cos(d3*PI/40)*tan(abs(fff)/10); yyp = yy +sin(d3*PI/40)*tan(abs(fff)/10); ff = d2/d3*10; if (ff == 0) {ff = 0.001;} xx2 = tan(ff/20)*200; if (d2 == 0) {d2 = 0.001;} ff = d3/d2*10; if (ff == 0) {ff = 0.001;} yy2 = tan(ff)*200; xx3 = tan(d3/20)*200; yy3 = tan(d3/3)*200; ff = min(xx2, yy2); if (ff == 0) {ff = 0.001;} xx = xx +(xx -xxp)/ff; ff = min(yy3, xx3); if (ff == 0) {ff = 0.001;} yy = yy +(yy -yyp)/ff; if (i == num1/2 -1) {ffx = ((yy-296)*6 +1000); if ((ffx < 0) || (ffx > 1300)) {xx = random(a/2)/2 +300;} ffx = ffx*1.6; ffy = ((xx-573)*6 +1000); if ((ffy < 0) || (ffy > 640)) {yy = random(b/2)/2 +100;} ffy = ffy*1.6 +160; stroke(m*25, 255-m*25, max(0, 140-m*20), ble); point(ffx/2.7, (ffy/2.7 +700));} xli[n] = xx +sin(yy*PI/180*d2/100); yli[n] = yy +cos(xx*PI/180*d2/100);}}}