Hello,
Here is the list of demos showcased in the introduction to the demoscene I did during the Monster Audio-Visual demos in a TCP packet talk I gave at JSconf EU 2014.
Hello,
Here is the list of demos showcased in the introduction to the demoscene I did during the Monster Audio-Visual demos in a TCP packet talk I gave at JSconf EU 2014.
| <!doctype html> | |
| <html> | |
| <head> | |
| <title>JS1k 2015 Invitation by Mathieu 'p01' Henri</title> | |
| <meta charset="utf-8" /> | |
| <meta name="author" content="Mathieu 'p01' Henri, @p01"/> | |
| <meta name="viewport" content="width=device-width,initial-scale=1"/> | |
| <style> | |
| html, body { margin: 0; padding: 0; border: 0; } | |
| #c { display: block; } /* kill scrollbars from hell */ |
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | |
| Version 2, December 2004 | |
| Copyright (C) 2011 Mathieu 'p01' Henri <http://www.p01.org/releases/> | |
| Everyone is permitted to copy and distribute verbatim or modified | |
| copies of this license document, and changing it is allowed as long | |
| as the name is changed. | |
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE |
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | |
| Version 2, December 2004 | |
| Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE> | |
| Everyone is permitted to copy and distribute verbatim or modified | |
| copies of this license document, and changing it is allowed as long | |
| as the name is changed. | |
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE |
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | |
| Version 2, December 2004 | |
| Copyright (C) 2011 Mathieu 'p01' Henri - http://www.p01.org/releases/ | |
| Everyone is permitted to copy and distribute verbatim or modified | |
| copies of this license document, and changing it is allowed as long | |
| as the name is changed. | |
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE |
| <style> | |
| #b { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: radial-gradient(circle, #000, #123); | |
| } |
| // Example of conditional breakpoint ( in code ) after X iterations | |
| for(var i=0, __iterations_left_before_break=50; (--__iterations_left_before_break||debugger),i<1e5;i++) | |
| { | |
| // body of the loop | |
| } | |
| /* | |
| To do the same in devtool, you can put a breakpoint on the first statement of the loop, | |
| right-click on the breakpoint > Edit condition. |
| <style> | |
| #b { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: radial-gradient(circle, #345, #201); | |
| } |
| for(_='024z),v33$22:atQon!,4GddKKKJ99@@bbJK?rocess>ect(`qq_kk^0,Z37YllX^^^WmlkmXXWVhhU5511mm☁",ff77rrrqomq__(n[parseInt("c.fiX,Text("Z:0)cc*MQh.sin(x/,1,c.globalAlpha=,R`Zxz,aaooiiKlo@@ Style="#K"[0|s%264],35)]*s&1)orqo,c.f!t="pppppx serif"x+=Y)n=[35,YG1G6G9,,58,62,65,73,82,93,98101723313947658596,:Z2$,247,262,2,294,$ZY0],A=new AudioC!text,C=A.creQeScriptP>or(a.width=1zvs=ZC.c!n`A.destinQi!vC.!audiop>=functi!(l){for(b=l.outputBuer.getChannelDQa(x=0va.height=YZ214"Y0v46f".1162:740Y:054,002",x=0;x<1z;x++,s+=6.25/A.sampleRQe)R`x,$0+MQh.min(27)+4vb[x]=JVoqssss_qoVWWW^lkjl^Xmsmsrs_WUtt_qrorXXXXXXXjjUUUUfh+fi Kjo KJ@66enK@bb$bbfidg44cf4444cf@jjfi@Jfk@dh?44dk00:$88ggbb@@@@@97?JUK-1),Y0);B4B"16THE SECRET OF"G8Z98)62MENTAL"G2050)ISLAND"G8096)}';G=/[-U-Z^-`>-@JKG!Q:$vz]/.exec(_);)with(_.split(G))_=join(shift());eval(_) |
| onchange = function(e) { | |
| try { | |
| var value = eval(expression.value); | |
| var TWO_PI = Math.PI * 2; | |
| var minError = TWO_PI; | |
| var results = []; | |
| for(var i=0; i < 1e4; i++) { | |
| var error = Math.abs(value - (i % TWO_PI)); | |
| if (error < minError) { |