Code for Dextro.org algorithmic image "H009" written by Walter Gorgosilits (Dextro.org) between 1994 and 2017. For research only. No commercial or secret service/clandestine use. float m = 0; float a = 1024; float b = 968; float m5; float m3 = 0; float x1, x2, y1, y2, dxp, dyp, d1, d2, d3, xx, yy, xxc, yyc, dx, dy, xx2, yy2, xx3, yy3, xxp, yyp, ff; int num1 = 30; int num2 = 60000; float[] pxcli = {19, 915, 28, 490, 574, 182, 853, 388, 684, 231, 974, 127, 43, 908, 238, 894, 465, 805, 342, 448, 900, 884, 658, 237, 351, 365, 759, 171, 922, 301}; float[] pycli = {639, 477, 214, 228, 329, 503, 55, 292, 679, 238, 443, 239, 52, 204, 658, 313, 767, 191, 59, 252, 81, 624, 322, 545, 358, 450, 736, 250, 34, 4}; float[] pxli = pxcli; float[] pyli = pycli; float[] xli = new float[num2]; float[] yli = new float[num2]; float WW = 0; float slow = 20; int m6 = 0; void setup() {size(1920, 1080, P2D); background(0); frameRate(400); smooth(); for (int i = 0; i < xli.length; i++) {xli[i] = random(a); yli[i] = random(b);} for (int i = 0; i < pxli.length/3; i++) {pxli[i] = pxcli[i] +((cos(WW*PI/180) +1)*i*i)/slow; pyli[i] = pycli[i] +((sin(WW*PI/180) +1)*i*i)/slow;} for (int ii = 0; ii < 716; ii++) {m6 = m6 +1; WW = WW +0.001/2; for (int i = 0; i < pxli.length/3; i++) {pxli[i] = pxcli[i] +((cos(WW*PI/180) +1)*i/2)/slow; pyli[i] = pycli[i] +((sin(WW*PI/180) +1)*i/2)/slow;}} m5 = -650 -(sin((WW-90)*PI/180)-1);} void draw() {m = m +1; stroke(min(255, 126+5*m), max(0, 255-6*m), max(0, 205-5*m), 5); if (m == 50) {m = 0; m3 = m3 +1; for (int i = 0; i < xli.length; i++) {xli[i] = random(a); yli[i] = random(b);} m = 0;} 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]; dxp = abs(x1 -x2); dyp = abs(y1 -y2); d1 = sqrt(dxp*dxp +dyp*dyp) +1; 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) +1; xx = xx -(xx -x2)/d1; yy = yy -(yy -y2)/d1; xx2 = tan(d2/m5)*100; yy2 = tan(d2/m5)*50; xx3 = tan(d3/m5)*250; yy3 = tan(d3/m5)*200; xxp = xx +cos(xx2*PI/60)*d2; yyp = yy +sin(yy2*PI/60)*d2; ff = min(xx2, xx3); if (ff==0) {ff = 0.0001;} xx = xx +(xx -xxp)/ff; ff = max(yy2, yy3); if (ff==0) {ff = 0.0001;} yy = yy +(yy -yyp)/ff; if (i==14) {point((((xx*1.8-160)*2.44 -1120)*2.8 +1472)/4, ((yy*1.8 -30)*2.44 -1200)*0.7);} if ((xx < 0) || (xx > a)) {xx = random(a);} if ((yy < 0) || (yy > b)) {yy = random(b);} xli[n] = xx; yli[n] = yy;}}}