I’ve open-sourced my client-side Gabor patch generator, gaborgen-js. I made it because my online experiments expose participants to different distributions of features in stimuli like Gabor patches, and there are a lot of different values those stimuli can hold. Generating them beforehand and uploading and hosting those stimuli to a server can be annoying or restricted by participants’ limited bandwidth.
I don’t use this anymore, though. I found that hosting static stimuli on S3 is more efficient for loading times and that 8-bit grayscale Gabor patches are very small in size. Also, the compute power required to generate these can be restrictive for really old computers. But someone might find this useful or at least interesting.