These are 4 thousand letters forming a weird bubble with suicidal tendences. The end is nigh.
_='({ t{u=x 0+y d=[+z c={};==?(,c=):(c=,c,)x=uy=bz=dijl0h= 900)^=1g="ABCDEFGHIJKLMNOPRSTUVWXYZ".charAt( 26))m=!1} d,b,e){d=random*(b-d)+d|0;e&&(d=(d/e|0)*ereturn d}a,d@getC~t("2d"h@width,k@height,v=h/2,w=k/2,e={},l,m= x=/60 n= y=/ q,r;f~t="normal 12px m~ospace";tAligntBaselinefor(i=0;4E3>i;i++) 36 2)/360*,l=a 10 1)/100*2-1xlylz#ft(setInterval({m=(m+x`n=(n+y`q=mr=nclearRect( h,kfor(p=;!=p;){g=p;f++;f>h&&(]=i,y+=j,z+=l-q*]r+[,400/(400-b(r*]q)*f+v;c=y*f+w;b>h_b_c||c>k||398<b?(p,===b?!?(b,):=:=?Q=:(Q,bQ)):(1-b/-75 1<b?1:0>b?0:bStyle="rgba("+b*^+")",begin$T(g,b,cclose$p=g}},1E3/60)})(Math.e.first.nnullp.functi~;c.2*PI 0,=1,5)#f)*,fill);*(z- [)var cos(="center";.a=ext30()d.=bsin(26, =c,cb=g(),#0=0*$Path@=f.Qb.a[-3]x+^alpha_||0>`)%(~onf=';for(Y in $='~`_^][Q@$# ')with(_.split($[Y]))_=join(pop());eval(_)
Xz0nKAYXewYgdBd7EXU9eAkdMCt5CWQ9Wyt6CWM9e307BD09Aj8oHCxjAz0EKTooYwM9AiwCFGMsHCkHeD11B3k9Ygd6PWQHaQtqC2wLfzAHaD0eFgk5MDApB149MQdnPSJBQkNERUZHSElKS0xNTk9QUlNUVVZXWFlaIi5jaGFyQXQoHgkyNikpB209ITF9BiAeZCxiLGUpe2Q9AXJhbmRvbRcqKGItZCkrZHwwO2UmJihkPShkL2V8MCkqZQ9yZXR1cm4gZH0Rf2EsZEBnZXRDfnQVKCIyZCIfaEB3aWR0aCxrQGhlaWdodCx2PWgvMix3PWsvMixlPXt9LGwsbT0JeD0ILzYwCW49CXk9CC8WCXEscjsYZn50PSJub3JtYWwgMTJweCBtfm9zcGFjZSI7GHQVQWxpZ24TGHQVQmFzZWxpbmUTZm9yKGk9MDs0RTM+aTtpKyspfx4JMzYJMikvMzYwKggsbD0BYRIeCTEwCTEpLzEwMCoyLTEfeAwSbB95DBpsH3ojEmYfdCgPc2V0SW50ZXJ2YWwoBhd7bT0obSt4YG49KG4reWBxPQEabQ9yPQESbg8YY2xlYXJSZWN0KAkJaCxrD2ZvcihwPQI7BCE9cDspexFnPXADOwVmKys7BWY+BWgmJihdPQVpLAV5Kz0FaiwFeis9BWwPER0tcSpdchArWyx/NDAwLyg0MDAtYg8FHShyKl1xECkqZit2OwVjPQV5KmYrdzsFYj5oX2JfY3x8BWM+a3x8Mzk4PGI/KB1wLAI9PT1iPwQhGT8oYgMUBCwCGSk6Aj0EOgQ9GT9RAz0EOihRAxksYgMUUSkpOigdMS1iLy03NQkdMTxiPzE6MD5iPzA6Yg5TdHlsZT0icmdiYSgbGxsiK2IqBV4rIikiLBhiZWdpbiRUFSgFZywFYiwFYx8YY2xvc2UkFw9wPWd9fSwxRTMvNjApfSkoDwFNYXRoLgJlLmZpcnN0Ay5uFQRudWxsBXAuBmZ1bmN0aX4HO2MuCDIqAVBJCTAsCz0eMSw1KQcMIxpmKSoBDiwYZmlsbA8pOxAqKAV6LSBbKRF2YXIgEmNvcygTPSJjZW50ZXIiOxQuYT0VZXh0FjMwFygpGGQuGT1iAxpzaW4oGzI2LCAcAj1jLGMUBB1iPR5nKB8pLCMwPRYwKgEkUGF0aBcOQD1mLlFiLmFbLRYzXQV4K15hbHBoYV98fDA+BWApJSgID35vbn9mPSc7Zm9yKFkgaW4gJD0nf35gX15dW1FAJCMfHh0cGxoZGBcWFRQTEhEQDw4MCwkIBwYFBAMCAScpd2l0aChfLnNwbGl0KCRbWV0pKV89am9pbihwb3AoKSk7ZXZhbChfKQ==
(function() {
var theCanvas = document.getElementById("canvasOne");
var context = theCanvas.getContext("2d");
var displayWidth = theCanvas.width, displayHeight = theCanvas.height;
var projCenterX = displayWidth/2, projCenterY = displayHeight/2;
var particleList = {};
var phi, theta, sphereRad = 300, sphereCenterX = 0, sphereCenterY = 0, sphereCenterZ = -3 - sphereRad;
var turnAngleX = 0, turnSpeedX = 2*Math.PI/600;
var turnAngleY = 0, turnSpeedY = 2*Math.PI/300;
var sinAngle, cosAngle;
var fLen = 400, zeroAlphaDepth = -750, numParticles = 4000;
var rgbString = "rgba(26, 26, 26, ";
var init = function() {
context.font = 'normal 12px monospace';
context.textAlign = 'center';
context.textBaseline = 'center';
for (i = 0; i < numParticles; i ) {
phi = (rand(0, 360, 2)/360)*2*Math.PI;
theta = Math.acos((rand(0, 100, 1)/100*2)-1);
x0 = sphereRad*Math.sin(phi)*Math.cos(theta);
y0 = sphereRad*Math.sin(phi)*Math.sin(theta);
z0 = sphereRad*Math.cos(phi);
var p = addParticle(x0, sphereCenterY y0, sphereCenterZ z0);
}
setInterval(mainLoop, 1000/60);
};
var mainLoop = function() {
updateViewAngle();
context.clearRect(0, 0, displayWidth, displayHeight);
updateAndDrawParticles();
//requestAnimationFrame(mainLoop);
};
var updateViewAngle = function() {
turnAngleX = (turnAngleX turnSpeedX) % (2*Math.PI);
turnAngleY = (turnAngleY turnSpeedY) % (2*Math.PI);
sinAngle = Math.sin(turnAngleX);
cosAngle = Math.cos(turnAngleY);
};
var updateAndDrawParticles = function() {
p = particleList.first;
while (p != null) {
var nextParticle = p.next;
p.age ;
if (p.age > p.stuckTime) {
p.x = p.velX;
p.y = p.velY;
p.z = p.velZ;
}
var rotX = cosAngle*p.x sinAngle*(p.z - sphereCenterZ);
var rotZ = -sinAngle*p.x cosAngle*(p.z - sphereCenterZ) sphereCenterZ;
var m = fLen/(fLen - rotZ);
p.projX = rotX*m projCenterX;
p.projY = p.y*m projCenterY;
if ((p.projX > displayWidth)||(p.projX<0)||(p.projY<0)||(p.projY>displayHeight)||(rotZ>fLen-2)) {
// particle out of bounds, kill it!
killParticle(p);
} else {
//depth-dependent darkening
var depthAlphaFactor = (1-rotZ/zeroAlphaDepth);
depthAlphaFactor = (depthAlphaFactor > 1) ? 1 : ((depthAlphaFactor<0) ? 0 : depthAlphaFactor);
context.fillStyle = rgbString depthAlphaFactor*p.alpha ")";
//draw
context.beginPath();
context.fillText(p.letter, p.projX, p.projY);
context.closePath();
context.fill();
}
p = nextParticle;
}
};
var killParticle = function(p) {
if (particleList.first === p) {
if (p.next != null) {
p.next.prev = null;
particleList.first = p.next;
} else {
particleList.first = null;
}
} else {
if (p.next == null) {
p.prev.next = null;
} else {
p.prev.next = p.next;
p.next.prev = p.prev;
}
}
p = null;
};
var rand = function(a, b, step) {
var value = (Math.random() * (b - a) a) | 0;
if (step) {
value = ((value / step) | 0) * step;
}
return value;
};
var addParticle = function(x0, y0, z0) {
var newParticle = {};
if (particleList.first == null) {
particleList.first = newParticle;
newParticle.prev = null;
newParticle.next = null;
} else {
newParticle.next = particleList.first;
particleList.first.prev = newParticle;
particleList.first = newParticle;
newParticle.prev = null;
}
newParticle.x = x0;
newParticle.y = y0;
newParticle.z = z0;
newParticle.velX = rand(1, 5);
newParticle.velY = rand(1, 5);
newParticle.velZ = rand(1, 5);
newParticle.age = 0;
newParticle.stuckTime = rand(300, 900);
newParticle.alpha = 1;
newParticle.letter = "ABCDEFGHIJKLMNOPQRSTUVXWYZ".charAt(rand(0, 26));
newParticle.dead = false;
return newParticle;
};
init();
})();