The following widget demonstrates an iterated function system, rendered in a web worker and passed to the main thread as an ImageBitmap where available, or a shared ArrayBuffer otherwise (Safari in particular).

However, I observe massive memory usage for this in Firefox. Within minutes it has my system swapping heavily, and shortly after the process gets killed for resource exhaustion. The problem is tracked in Mozilla bug #1312148. This post here is meant to preserve that state, to help debugging. I may update it to provide a link to an improved version.