dwitter.net | tomxor (5334)

+ 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 2 remixes fullscreen
remix of d/15534 by u/tomxor

function u(t) {

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


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

  • Photon-Mapping using a Random-March Scattering Model
  • Show more comments…
  • u/tomxor
    I think you're getting hung up on the array like key notation, but it's not being used as an array. Think of -1,-2,-3 as an abitrary property name on an object, the u.-1,-2,-3 property syntax would be equivalent if not for the invalid chars. u[k]++ simply increments a number stored for the property k, ++ only works because that property value has been previously initialised using u[k]|=0 which will convert undefined values to 0.
  • u/jellyedwards
    Holy crap! They need to add a dwitter category to the Nobel awards for stuff like this!
  • u/0x61
    [insert image of dribbling cat] We're not worthy. This is endgame
  • u/KilledByAPixel
    https://www.reddit.com/r/tinycode/comments/1…

Please log in (or register) to comment.

show FPS hide FPS share fullscreen
remix of d/27932 by u/tomxor

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 1 remix fullscreen
remix of d/15559 by u/tomxor

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 1 remix fullscreen

function u(t) {

}//
128/140


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

  • Smolr Tree Lake
  • Show more comments…
  • u/pavel
    for(X=t&&X+r*25,i=h=11+6*C(t*4+X%1)<<5;--i;x.fillRect(...t?[X-r*i/8,600+(r*8&3?i-h:h-i),i/4,2]:[i*8,r*600,h,r]))r=1+S(i^X)
  • u/pavel
    122
  • u/KilledByAPixel
    I knew you could do it pavel!
  • u/aleamb
    beautiful!!

Please log in (or register) to comment.

show FPS hide FPS share fullscreen
remix of d/21783 by u/tomxor

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

  • u/tomxor
    Squashed each ant into a 16bit bit field, [X,Y,D] = 0b 111111 111111 0111. These ants were generated with: X=7,Y=7,D=0,[[-X,-Y,3+D],[+Y,-X,2+D],[+X,+Y,1+D],[-Y,+X,0+D]].map(([X,Y,D])=>X+60<<10|Y+32<<4|D%4<<0)
  • u/mark1626
    This is incredible. Just one question, how does s = u[a >> 4] ^= 1 work?
  • u/tomxor
    Thanks :) a>>4 is the cell index of a 64x64 grid. the lower 4 bits are for the ant's direction so shifting them off to the right leaves only the 12 X and Y bits (see above). u is just an object, so all of these indicies will be undefined initially, but undefined is falsey and bitwise operators coerce falsey into 0, i.e undefined ^ 1 == 0 ^ 1 == 1, in otherwords XOR just treats all of the initial cell values as 0. Using the assignment version ^= means we toggle each cell between 0 and 1 each time an ant passes through it (which is part of the langton ant rules).

Please log in (or register) to comment.

show FPS hide FPS share fullscreen
remix of d/19945 by u/katkip

function u(t) {

}//
139/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 1 remix fullscreen
remix of d/18413 by u/pavel

function u(t) {

}//
139/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).

  • u/lionleaf
    #compressed #shading I'm really enjoying all these space related dweets
  • u/tomxor
    Thanks lion :) glad your enjoying them, I think i've almost run out of things ot map to pseudo spheres now though :P
  • u/rnbw
    breathtaking

Please log in (or register) to comment.

show FPS hide FPS share 1 remix fullscreen

function u(t) {

}//
118/140


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

  • Smoler Isometric Divisions
  • Show more comments…
  • u/KilledByAPixel
    nice!
  • u/pavel
    Weirdly the numeric error from approximating pi/3 seems to matter a lot.
  • u/tomxor
    Yeah, I think it's because it causes a deviation in the sequence at j=0. Although the output of 0|3*C(r) generally gives the expected low period of +1,+2,+1,-1,-2,-1 as j decrements, it ends on a 3, but only when using lower precision PI/3. full precision PI/3 pushes all of the 2s into 3s, which can be corrected by lowering the coefficient to 2.9, but this also makes j=0 output 2 which then seems to destroy the complexity.
  • u/pavel
    I tried getting rid of the sin/cos by using hex coordinates but I was unable to make a complex picture. Usually just one of the six slices drew-in.

Please log in (or register) to comment.

Loading...
Next page