dwitter.net | #compressor

+ 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.
Try the new frontend: beta.dwitter.net
Current theme challenge: #Opposites
show FPS hide FPS share fullscreen

function u(t) {

}//
140/140


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

  • 4 to 1 Dwitter Compressor - Up to 224 Characters! Read comments for instructions and limitations. #Compressor
  • u/KilledByAPixel
    How to use: Replace s with your code and it will throw the compressed version! To uncompress use t?eval(O+=W[V.charCodeAt(I/2)>>I++%2*5&31]):I=O=""
  • u/KilledByAPixel
    Limitations: Can only compress 32 unique characters, and some characters are not allowed including double quotes, I,O,W,and V.
  • u/KilledByAPixel
    The values for V and W can be replaced directly in the uncompressor to save space.
  • u/KilledByAPixel
    Example: s="for(c.width|=i=9;i--;)x.fillRect(400+i*99+S(t)*300,400,50,200)" compresses to t?eval(O+=";for(c.width|=9-)xlRe40+*S3,52"["𠒃񁔇񢖋񓗍񐇯򐃑񐙒򴵅򹋖񕷘󋢙򒭘󅪻󅮛󭫝򕠀".charCodeAt(I/2)>>I++%2*5&31]):I=O=""
  • u/KilledByAPixel
    Here's a more user friendly version on codepen: https://codepen.io/KilledByAPixel/full/JjPVO…

Please log in (or register) to comment.


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!
  • Show more comments…
  • 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
  • u/DataMeta
    #hiddengem

Please log in (or register) to comment.

show FPS hide FPS share fullscreen

function u(t) {

}//
130/140


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

Please log in (or register) to comment.

remix of d/9207 by u/MrM@_S

function u(t) {

}//
140/140


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

  • dwitter compressor 2.0

Please log in (or register) to comment.

show FPS hide FPS share fullscreen

function u(t) {

}//
93/140


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

  • Limited Range Delta Compression - Fit 200 chars! with extreme limitations :D
  • u/tomxor
    Each char is encoded as 5 bits (fitting 4 into each 20bit surrogate pair), representing the numeric difference between the previous and current ASCII codepoint. Since 5 bits only provides 32 values this is limited to shifting -16 to +15 codepoints each char, this makes it rather challenging to write code with since you can only reach a max of 1/3 of the useful ASCII codepoints at a time.
  • u/tomxor
    Here's the encoder if you are looking for a very contrived adventure: f=(s,x=96,b=16,o='')=>{for(p=0,i=0;i<s.length;){x+=d=s.charCodeAt(i)-x;p|=d+b<<((i%4^2)*5);++i%4?0:p=o+=String.fromCodePoint(p+0x10000)}return o;}; f('helloooworld')
  • u/tomxor
    ... don't try this, seriously, you can't even get a for loop started
  • u/tomxor
    #compressor

Please log in (or register) to comment.

You've reached the end.