Hi, I will admit here that I don’t know very much about openframe so take that into account if I seem to over-sell pi3d and under-sell openframe!
Openframe seems to be a very professional web orientated, image management and display system whereas pi3d is really ‘just’ a way for python to access GPU functionality. @sapnho’s PictureFrame app is a single script with an awful lot of functionality bundled into it (because it’s evolved over quite a time). But that works because python is such a (relatively) easy language to do that kind of thing.
if len(sys.argv) > 1:
PIC_DIR = sys.argv
PIC_DIR = '/home/pi/pi3d_demos/textures' #or wherever you want to default
Or add the argument on the end as a subdirectory etc. A resent question was how to do something similar to change the picture directory using MQTT messages and it’s a similarly simple change of only a couple of lines.
On your other questions: pi3d also uses shaders - but they’re pretty efficient c.f. ones written in the expectation of a more powerful GPU. And pi3d needs a reasonable memory split - but 128MB should be fine - that’s enough space for two textures 2000x2000 (foreground and background for transition effects). If images are too big then it might cause problems but pi3d will resize to match one of the ‘magic’ numbers that the earlier GPUs relied on. (You can tell it not to if using the RPi4 and you manage the image sizes yourself)
pi3d uses PIL (now Pillow) for image reading and that has most image types available (though I’ve not tried many) https://pillow.readthedocs.io/en/5.1.x/handbook/image-file-formats.html
Anyway, glad you’re interested - let me know if you’ve any other questions.