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: #growth
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
    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.


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.

show FPS hide FPS share 1 remix 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 ! pack 194B into 140 char ! adapted from xem
  • Show more comments…
  • u/f8f82804
    personally, I thought that this was intentional, and that the char counting was counting 16-bit char codes, not unicode code points (e.g. the difference between charCodeAt and codePointAt)
  • u/metamero
    u/f8f82804 https://github.com/lionleaf/dwitter/issues/1…
  • u/katkip
    WOW!
  • u/KilledByAPixel
    Uncompressor: https://www.dwitter.net/d/14004

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.

Loading...
Next page