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.
Theme challenge of the month: #symmetry
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).

  • I eat my own dog food
  • u/Max1Truc
    This is how you can create these UTF-8 things, to store ~200 bytes of js code
  • u/Max1Truc
    Sorry just saw there alredy was this kind of #compressor out there on dweeter

Please log in (or register) to comment.

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).

Please log in (or register) to comment.

show FPS hide FPS share fullscreen

function u(t) {

}//
122/140


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

  • compressor. even no of chars, uncompress w/ eval(unescape(escape.replace(/u(..)/g,"$1%")))

Please log in (or register) to comment.

show FPS hide FPS share fullscreen

function u(t) {

}//
135/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.

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).

  • #compressor no more 140 bytes. 230 now! A character is actually 2 characters. The uncompressor evaluator is coming soon

Please log in (or register) to comment.

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.


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).

  • New 4-1 compressor proof of concept! In this example the compressed code is 208 chars.
  • u/KilledByAPixel
    #COMPRESSOR replace $ with your 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 'for(I=O="";Q="'+o+'".charCodeAt(I/2);O+="'+n+'"[Q>>I++%2*5&31]);eval(O)'
  • u/tomxor
    This is way better than my crazy delta compressor, but it's still surprisingly difficult to stick to a 32 char set.

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.

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).

  • Dwitter compressor 3.0 (194B pack) Remix with larger text area and triggers on input instead of onblur. #compressed #tool

Please log in (or register) to comment.

Loading...
Next page