This is the project cocde as of the end of the twenty sixth day of Devember. The bug in yesterday's image preloading was traced to a bug in rendering that would translate the canvas and then not restore it, which makes all rendering seem to happen at the same location and has been resolved. The Image preloading was enhanced so that when several requests for the same image are made, they all return the same img tag instance, which saves a tiny bit of memory for object references (I think) since the browser should hopefully be smart enough to use the same underlying data for both anyway. We now all support audio preloading, although currently sound is a little crude in that you need to use the normal HTMLAudioElement interface. The audio preloading also uses the same mechanism for returning the same tag as the previous attempt if it reuses a URL, although this may not be the best since any one audio tag can only play its sound once, so sharing it leads to sound drops. That will be fixed next.