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 ble = 5; int m3 = 1; int num1 = 6; int num2 = 50000; int m = 0; float[] xli = new float[num2]; float[] yli = new float[num2]; float[] d1li = new float[num1]; float[] pxli = {991.66, 365.96, 678.37, 204.23, 920.18, 715.08}; float[] pyli = {706.99, 55.79, 198.59, 613.68, 247.07, 343.66}; float xx, yy, x1, y1, x2, y2, dd, dx, dy, d1, d2, d3, ff, m33, xxc, yyc, xxp, yyp, fff, xx2, yy2, xx3, yy3, ffx, ffy; void setup() {size(1620, 1100, P2D); background(0); frameRate(200); smooth(); for (int n = 0; n < num2; n++) {xli[n] = random(a/2)/2 +200; yli[n] = random(b/2)/2 +140; yli[n] = 20;} 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); d1li[i] = d1;}} void draw() {m3 = m3 +1; m33 = sin(m3*PI/180)*100 +2; m = m+1; if (m == 5) {m = 0; for (int n = 0; n < num2; n++) {xli[n] = random(a/2)/2 +200; yli[n] = random(b/2)/2 +140;}} 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); if (d1 == 0) {d1 = 0.001;} xxp = xx +(xx -x2)/d1*100; yyp = yy +(yy -y2)/d1*100; fff = d2/max(1, abs(tan(d1 -d2 +d3)*m33 +1)); xxp = xx -cos(d3*PI/10)*fff; yyp = yy -sin(d3*PI/10)*fff; xx2 = tan(d2/10)*200; yy2 = sin(d2)*200; xx3 = tan(d3/20)*200; yy3 = atan(d3/3)*200; 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 == num1/2-1) {ffy = (yy -296)*6 +1000; if ((ffy < 0) || (ffy > 1300)) {xx = random(a/2)/2 +200;} ffy = (ffy*1.6 -400)*0.75; ffx = (xx -573)*6 +1000; if ((ffx < 0) || (ffx > 640)) {yy = random(b/2)/2 +130;} ffx = ((ffx*1.6 +1800) +170)*0.75; stroke(255, ble); if (abs(xxc -xx) < 0.6) {stroke(255, 0, 0, ble);}//{stroke(0, 255, 0, ble);} if (abs(xxc -xx) < 0.6 -m3/60000) {stroke(0, 200, 255, ble);}//{stroke(100, 20, 0, ble);} point(ffx, ffy); } xli[n] = xx; yli[n] = yy;}}}