dwitter.net

+ New dweet
function u(t) {
} //
122/140


Please log in (or register) to post a dweet (copy-paste the code somewhere safe to save it meanwhile)


u(t) is called 60 times per second. t: Elapsed time in seconds. S: Shorthand for Math.sin. C: Shorthand for Math.cos. T: Shorthand for Math.tan. R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5) c: A 1920x1080 canvas. x: A 2D context for that canvas.

function u(t) {

}//
98/140


Please log in (or register) to post as a new dweet (copy-paste code somewhere safe to save it meanwhile).

  • Smaller uncompressor, only takes about a second to boot up!
  • u/KilledByAPixel
    Here's the compressor code... $="for(c.width|=i=9;i--;)x.fillRect(400+i*99+S(t)*300,400,50,200)";n=[...new Set([...(';'+$)])].join(o='');for(v=i=0;(q=$[i])||i%4;++i)v+=q?n.indexOf(q)<<i%2*5:0,i%2?(o+=String.fromCharCode(((i%4==3?55:54)<<10)+v),v=0):0;throw 't?eval(O+="'+n+'"["'+o+'".charCodeAt(I/2)>>I++%2*5&31]):I=O=""'
  • u/KilledByAPixel
    From my testing it can do up compress up to 224 characters of code if all of the unique 32 characters are used!
  • u/KilledByAPixel
    #compressor
  • u/tomxor
    Swapping the ternary statement for }{I=O="" at the end saves one more char.
  • u/tomxor
    But this will only work on a new dweet
  • u/tomxor
    Really need a larger charset though :/ I think 64 should be enough for most, which bumps it up to 6 bits, but that requires a lot more code to extract, might still be better than 184 though?
  • u/tomxor
    Nah, before even considering extra decompression code, 6 bits with 32 dictionary barely provides 192 chars, as soon as you start actually filling the dictionary with more you quickly go under 140 encoded chars. I think you hit the best balance for this method.
  • u/KilledByAPixel
    i think 5 bits is the sweet spot, it is definitely tough writing code that only uses 32 chars but maybe we can see some programs that would not otherwise be possible

Please log in (or register) to comment.

u(t) is called 60 times per second. t: elapsed time in seconds. c: A 1920x1080 canvas. x: A 2D context for that canvas. S: Math.sin C: Math.cos T: Math.tan R: Generates rgba-strings, ex.: R(255, 255, 255, 0.5)