dwitter.net | tomxor (5429)

+ 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: #Food
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 1 remix fullscreen

function u(t) {

}//
99/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/21734 by u/tomxor

function u(t) {

}//
133/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) {

}//
115/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 2 remixes fullscreen
remix of d/21704 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/12335 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
    With subpixel anti-aliasing :) ... ok that was an accident... but atand back and look at those cute RGB fringes!

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/tomxor
    I felt that there are too many extremely unecessarily long examples of xorshift32 implementations out there, with lots of fluff around the outside. It's a very nice and simple little PRNG and this is all the code you need to turn it into a unit interval (i.e the type and range you get from Math.random()): (x>>>0) * 2**-32. This conversion method is far from perfect and results in some bias, but so does the PRNG itself...

Please log in (or register) to comment.

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

function u(t) {

}//
131/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/21620 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) {

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

Loading...
Next page