Code for Dextro.org algorithmic image "H008" written by Walter Gorgosilits (Dextro.org) between 1994 and 2017. For research only. No commercial or secret service/clandestine use. version H008 (video): float aa = 1024; float bb = 768; int num = 40000; float[] wli = new float[num]; float[] xli = new float[num]; float[] yli = new float[num]; int m3 = 0; int m4 = 0; int m5 = 0; int m5d = 1; float W = 0; float qh = 1031.3 +sin((m5/2)*PI/180)*10 +5; float qv = 1114 +cos(((m5 +180)/2)*PI/180); float qhc = 1031.3 +sin(((m5 -m5d)/2)*PI/180)*10 +5; float qvc = 1114 +cos(((m5 -m5d +180)/2)*PI/180); float x1, y1, w, xx, yy, d1, d2, d3, d4, d5, xxp, yyp, xxx, yyy, xx2, yy2, xx3, yy3, x2, y2, ff, rr; float fek, fok, fik, fak; void setup() {size(1920, 1200, P2D); background(0); frameRate(900); smooth(); stroke(255, 5); for (int n = 0; n < num; n++) { wli[n] = random(360); xli[n] = random(aa)/3 +170; yli[n] = random(bb)/2 +10;} fek = 1; fok = 180; fik = 1000; fak = 10;} void draw() {m3 = m3 +1; if (m3 == 200) {for (int n = 0; n < num; n++) {xli[n] = random(aa)/3 +170; yli[n] = random(bb)/2 +10;} m3 = 0;} for (int n = 0; n < num; n++) {w = wli[n]; xx = xli[n]; yy = yli[n]; xx = abs(xx -qh); yy = abs(yy -qv); d1 = sqrt(xx*xx +yy*yy); if (d1 < 1) {d1 = 1;} xx = abs(xx -414); yy = abs(yy -233); d2 = sqrt(xx*xx +yy*yy); if (d2 < 2) {d1 = 2;} xx = abs(xx -378); yy = abs(yy -529); d3 = sqrt(xx*xx +yy*yy); if (d3 < 3) {d1 = 3;} xx = abs(xx -159); yy = abs(yy -452); d4 = sqrt(xx*xx +yy*yy); if (d4 < 4) {d1 = 4;} xx = abs(xx -332); yy = abs(yy -491); d5 = sqrt(xx*xx +yy*yy); if (d5 < 5) {d1 = 5;} if ((d1 > aa/2) || (d5 > aa/4)) {w = w +(abs(d1 -aa/2))/fek;} if (d2 > aa/2) {w = w +(abs(d2 -aa/2))/2;} if ((d3 > aa/2) || (d1 < aa/2)) {w = w +(abs(d3 +aa/2))/fek;} if ((d4 > aa/2) || (d2 > aa/4)) {w = w +(abs(d4 -aa/4))/fek;} if (d5 > aa/2) {w = w +(abs(d5 +aa/2))/fek;} xxp = yy +(yy -y2)/d1*fok; yyp = xx +(xx -x2)/d1*fok; xx2 = tan(d2/10)*fik; yy2 = sin(d2)*fik; xx3 = tan(d3/20)*fik; yy3 = atan(d3/3)*fik; 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; rr = (d1 -d2 +d3 +d4 -d5)/min(xx2, yy3); xx = xx +cos(w*PI/180)*rr*fak; yy = yy +sin(w*PI/180)*rr*fak; wli[n] = w; xli[n] = xx; yli[n] = yy; if (m3 > 100) { ff = max(0, m3/4 -50); stroke(255, max(0, 255 -ff), max(0, 255 -ff), 5); xxx = (yy*3.75 -100)*3/2; yyy = (xx*6.2 -900)*3/2; if ((xxx) < 640 -yyy/3.5) {xxx = (xxx +100+30+28)*1.5; yyy = (yyy -200+60)*1.5; point(xxx, yyy);} if ((xxx) > 1625 -yyy/3.5) {xxx = (xxx -800+30-28)*1.5; yyy = (yyy -300+60)*1.5; point(xxx, yyy);}}} m4 = m4 +1; if (m4 == 100000) {saveFrame("X-#######.png"); background(0); m3 = 0; m4 = 0; W = W +0.005; fek = 1 +sin(W*PI/180); for (int n = 0; n < num; n++) { wli[n] = random(360); xli[n] = random(aa)/3 +170; yli[n] = random(bb)/2 +10;}}} version H008g (hires image): float aa = 1024; float bb = 768; int num = 400000; float[] wli = new float[num]; float[] xli = new float[num]; float[] yli = new float[num]; int m3 = 0; int m4 = 0; int m5 = 0; int m5d = 1; float W = 0; float qh = 1031.3 +sin(((m5)/2)*PI/180)*10 +5; float qv = 1114 +cos(((m5+180)/2)*PI/180); float qhc = 1031.3 +sin(((m5-m5d)/2)*PI/180)*10 +5; float qvc = 1114 +cos(((m5-m5d+180)/2)*PI/180); float[] fuli = {386, 647, 414, 233, 378, 529, 159, 452, 332, 491}; float x1, y1, xx, yy, w, ff, rr, d1, d2, d3, d4, d5, xxp, yyp, xx2, yy2, xx3, yy3; float fek; float sec = 0; float lastTime = 0; float xxx, yyy; int SEGMENTx = 0; int SEGMENTy = 0; void setup() {size(3840, 2400, P2D); background(0); frameRate(900); smooth(); stroke(255, 150); for (int n = 0; n < num; n++) {wli[n] = random(360); xli[n] = random(aa)/3 +170; yli[n] = random(bb)/2 +10;} for (int n = 0; n < 10*7*25; n++) {W = W -0.0005; m5 = m5 +1;} fek = 1 +sin(W*PI/180);} void draw() {m3 = m3 +1; if (m3 == 300) {for (int n = 0; n < num; n++) {wli[n] = n/1111; xli[n] = random(aa)/3 +170; yli[n] = random(bb)/2 +10;} m3 = 0;} for (int n = 0; n < num; n++) {w = wli[n]; xx = xli[n]; yy = yli[n]; xx = abs(xx -qh); yy = abs(yy -qv); d1 = sqrt(xx*xx +yy*yy); if (d1 < 1) {d1 = 1;} xx = abs(xx -fuli[2]); yy = abs(yy -fuli[3]); d2 = sqrt(xx*xx +yy*yy); if (d2 < 2) {d1 = 2;} xx = abs(xx -fuli[4]); yy = abs(yy -fuli[5]); d3 = sqrt(xx*xx +yy*yy); if (d3 < 3) {d1 = 3;} xx = abs(xx -fuli[6]); yy = abs(yy -fuli[7]); d4 = sqrt(xx*xx +yy*yy); if (d4 < 4) {d1 = 4;} xx = abs(xx -fuli[8]); yy = abs(yy -fuli[9]); d5 = sqrt(xx*xx +yy*yy); if (d5 < 5) {d1 = 5;} if ((d1 > aa/2) || (d5 > aa/4)) {w = w +(abs(d1 -aa/2))/fek;} if (d2 > aa/2) {w = w +(abs(d2 -aa/2))/2;} if ((d3 > aa/2) || (d1 < aa/2)) {w = w +(abs(d3 +aa/2))/fek;} if ((d4 > aa/2) || (d2 > aa/4)) {w = w +(abs(d4 -aa/4))/fek;} if (d5 > aa/2) {w = w +(abs(d5 +aa/4))/fek;} xxp = yy +(yy -fuli[3])/d1*180; yyp = xx +(xx -fuli[2])/d1*180; xx2 = tan(d2/10)*1000; yy2 = sin(d2)*1000; xx3 = tan(d3/20)*1000; yy3 = atan(d3/3)*1000; 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; rr = (d1 -d2 +d3 +d4 -d5)/min(xx2, yy3); xx = xx +cos(w*PI/180)*rr*10; yy = yy +sin(w*PI/180)*rr*10; wli[n] = w; xli[n] = xx; yli[n] = yy; if (m3 > 100) {ff = max(0, m3/4 -50); stroke(255, max(0, 255-ff), max(0, 255-ff), 5); xxx = (yy*3.75 -100)*3/2; yyy = (xx*6.2 -900)*3/2; if ((xxx) < 640 -yyy/3.5) {xxx = (xxx +158)*1.5; yyy = (yyy -140)*1.5; point(xxx*8 -SEGMENTx*3840, yyy*8 -SEGMENTy*2400);} if ((xxx) > 1625 -yyy/3.5) {xxx = (xxx -798)*1.5; yyy = (yyy -240)*1.5; point(xxx*8 -SEGMENTx*3840, yyy*8 -SEGMENTy*2400);}}} m4 = m4 +1; if (m4 == 4800*3) {saveFrame("ZZ-##############.tif"); background(0); m3 = 0; m4 = 0; for (int n = 0; n < num; n++) {wli[n] = random(360); xli[n] = random(aa)/3 +170; yli[n] = random(bb)/2 +10;} SEGMENTx = SEGMENTx +1; if (SEGMENTx == 4) {SEGMENTx = 0; SEGMENTy = SEGMENTy +1; if (SEGMENTy == 4) {SEGMENTy = 0;}}}}