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 = 768; int m3 = 1; int num1 = 8; int num2 = 990; int m = 0; float[] xli = new float[num2]; float[] yli = new float[num2]; float[] pxli = {51.9130, 369.1, 861.545, 734.681, 72.147, 407.873, 307.519, 570.174}; float[] pyli = {455.426, 228.771, 364.059, 379.773, 146.13, 581.052, 173.525, 183.918}; float[] d1li = new float[num1]; float x1, y1, x2, y2, d1, dx, dy, d2, d3, dd, V2, V3, ppx, ppy, xx, yy, xx2, yy2, xx3, yy3, xxc, yyc, xxp, yyp, ff, fx, fy, w, fff, ffff, dp1, dp2, wp1, wp2, wpp, gy, gx, xxcc, yycc; void setup() {size(1000, 1200, P2D); background(0); frameRate(990); smooth(); stroke(255, 50); for (int n = 0; n < num2; n++) {xli[n] = random(a)/3; yli[n] = random(b)/3;} for (int n = 0; n < num1/2; n++) {x1 = pxli[2*n]; y1 = pyli[2*n]; x2 = pxli[2*n+1]; y2 = pyli[2*n+1]; dx = abs(x1 -x2); dy = abs(y1 -y2); d1 = sqrt(dx*dx +dy*dy); d1li[n] = d1;}} void draw() {m = m +1; if (m == 5) {m = 0; m3 = m3 +1; for (int n = 0; n < num2; n++) {xli[n] = random(a/2)/5 +390; yli[n] = random(b/2)/4 +195;}} 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]; xxcc = xx; yycc = yy; xxc = xx; yyc = yy; dx = abs(xx -x1); dy = abs(yy -y1); d2 = sqrt(dx*dx +dy*dy); dd = sqrt(dx*dx +dy*dy); if (dx == 0) {dx = 0.001;} if (dy == 0) {dy = 0.001;} if ((dx >= 0) && (dy >= 0)) {w = atan(dy/dx)*(180/PI) +180;} if ((dx < 0) && (dy >= 0)) {w = atan(dy/dx)*(180/PI);} if ((dx < 0) && (dy < 0)) {w = atan(dy/dx)*(180/PI);} if ((dx >= 0) && (dy < 0)) {w = atan(dy/dx)*(180/PI) +180;} V2 = sin(w*PI/3); d2 = d2 +V2*24; V3 = atan(w*PI/9); d2 = d2 +V3*100; dx = abs(xx -x2); dy = abs(yy -y2); d3 = sqrt(dx*dx +dy*dy); if (d1 == 0) {d1 = 1;} 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/10)*min(2, sin(abs(fff))); yyp = yy +sin(d3*PI/10)*min(2, sin(abs(fff))); ff = d2/d3*10; if (ff == 0) {ff = 0.001;} xx2 = atan(ff/20)*200; ffff = d2; if (ffff == 0) {ffff = 0.001;} ff = d3/ffff*10; if (ff == 0) {ff = 0.001;} yy2 = atan(ff)*d1; xx3 = tan(d3/20)*d2; yy3 = atan(d3/3)*d2; ff = min(xx2, yy2); if (ff == 0) {ff = 0.0001;} xx = xx +(xx -xxp)/ff; ff = min(yy3, xx3); if (ff == 0) {ff = 0.0001;} yy = yy +(yy -yyp)/ff; dx = abs(xxcc -xx); dy = abs(yycc -yy); dp1 = sqrt(dx*dx +dy*dy); if (dx == 0) {dx = 0.001;} if (dy == 0) {dy = 0.001;} if ((dx >= 0) && (dy >= 0)) {wp1 = atan(dy/dx)*(180/PI) +180;} if ((dx < 0) && (dy >= 0)) {wp1 = atan(dy/dx)*(180/PI);} if ((dx < 0) && (dy < 0)) {wp1 = atan(dy/dx)*(180/PI);} if ((dx >= 0) && (dy < 0)) {wp1 = atan(dy/dx)*(180/PI) +180;} dx = abs(xxcc -xxp); dy = abs(yycc -yyp); if (dx == 0) {dx = 0.001;} if (dy == 0) {dy = 0.001;} if ((dx >= 0) && (dy >= 0)) {wp2 = atan(dy/dx)*(180/PI) +180;} if ((dx < 0) && (dy >= 0)) {wp2 = atan(dy/dx)*(180/PI);} if ((dx < 0) && (dy < 0)) {wp2 = atan(dy/dx)*(180/PI);} if ((dx >= 0) && (dy < 0)) {wp2 = atan(dy/dx)*(180/PI) +180;} wpp = min(wp1, wp2); wpp = wpp +tan(wp1)*10; dx = abs(xx -xxp); dy = abs(yy -yyp); dp2 = sqrt(dx*dx +dy*dy); xx = xx +cos(wp1*PI/180)*dp1; yy = yy +sin(wp2*PI/180)*dp1; if (i == num1/2-1) {if ((m == 1) || (m == 3)) {fff = (yy-296)*6 +1000; if ((fff < 0) || (fff > 960)) {xx = random(a/2)/5 +390;} gy = (fff*1.6); fff = (xx-573)*6 +1000; if ((fff < 0) || (fff > 640)) {yy = random(b/2)/4 +195;} gx = (fff*1.6 +140); stroke(min(255, max(0, (m-1)*85)), 5); gy = ((gy*1.25 -900)*1.7 +200)/1.7; gx = ((gx*1.25)*1.7 -250)/1.7;}} xli[n] = xx; yli[n] = yy;}}}