Whilst it shouldn't be surprising, I'm astounded as to how much of a science and balancing act it is to achieve frames that at least ~feel~ smooth, especially on web browsers.
I'll be working away as much as possible to try and make things silky all over. Thanks for your patience until then!
Maybe that’s just inevitable when using the canvas for painting?
EDIT: Actually, I just tried it again in entirety, and noticed some juddering from time to time. However, when I am looking at the beautiful background artwork (which is most of the time), that juddering is less obvious. I guess it depends if you are looking at the background art or the foreground animation as to whether it is really apparent for you.
I guess people who have a "gaming capable" PC will notice the micro-stuttering more than others, because they are used to fluid animations.
It's interesting how no one minds about low FPS when watching a movie (24 FPS is "cinematic"!), but when in a game (or any interactive experience where you provide a nontrivial amount of input) suddenly FPS has a huge impact on the experience.
Stuttering in WebGL is not an inherent issue in browsers. :)
To me it seems like something in their code is thrashing the GC. Maybe the `getLUT` function which creates a new 100-length array every frame...
Mean rant below: However, this suffers from terrible hitching and framerate issues. I tried it both in Firefox and Chrome (latest stable release for both), on Windows, on a i7-6700k cpu and nVidia GTX 1080ti gpu. The framerate just isn't stable and there are random hitches of one or two dropped frames. By itself this wouldn't be that big of a problem, but combined with the very contrasting art style (black on full white), it started giving me a headache and making me seriously sick after a short while. Even when not dropping frames, the motion was quite juddery, e.g. I saw the nearby poles jumping from position to position. I won't ask that the authors resolve the frame-rate issues, because I suspect it's an inherent issue to the browsers. Instead I would suggest that motion blur be implemented to hide the harsh frame-to-frame transitions and less contrast be employed between foreground and background (maybe make the background a bright grey rather than 100% full white).