100 million balls in superellipse billiards

Further elaboration in maxing out the number of particles in dynamical billiards... PyTorch was used this time as the next natural step, turning the graphics rendering the real bottleneck. The billiards shown are |x/1.5|^n + |y|^2 = 1 for n = {2, 4, 8}. Further, rasterisation by 2D histograms were necessary for bitrate reduction and rendering time. Log scaled density for emphasizing low-density caustics. Still a bit crappy from a visual point of view imo though. Next time, 1B points and better graphics. Music by ‪@gpcbass‬ . The song is called No Way Out. Shoutout to my brilliant colleagues Björn Lindenberg and Jonas Nordqvist for discussions, inspiration and motivation. Frames from Python and video from FFmpeg