One of the first things I did when I got Codea - like the first day - was hack in my own spritepack. Fun, but a stunt - I couldn’t share it with anyone, so I can’t really use it for things I wanted to share.
When we got images, one of the first things I did was get my own graphics in via source (tomfez). That could be shared, but a teensy 64x64 sprite was super-huge in source.
A big part of the reason I was pulling for persistent data was to cache and share graphics between projects. The problem is, with .codea sharing disabled, I can’t encode graphics into persistent storage and share them via projects.
I also expect demand for importing graphics to grow after 1.3 is released.
We need a real way to get our own graphics into a project. Spritepacks are limited, and having someone have to download and install a custom spritepack is yucky as well (although it might not be bad if apple allowed a 1-click import from a URL).
Suggestion: enhance sprite to take a URL, or make a loadsprite() command to fetch a png from a URL and save it to a project-local spritepack. That way, instead of having to bandy about giant chunks of source, or mess with persistent storage, a program could say:
loadsprite("http://home.bortels.us/images/planet.png")
sprite("planet", WIDTH/2, HEIGHT/2)
loadsprite would check to see if the image is cached in the project, and use the local one if it’s already there. if not, it would fetch it from the internet. A sprite() call that doesn’t match one of the global spritepacks would look in project storage for the sprite.
This is, incidentally, the functionality I wanted first from sockets. (Second was for multiplayer gaming, but this doesn’t address that need)
Because of it’s caching nature, this should be fairly immune to abuse (any cached image wouldn’t make the web call, so it couldn’t be used trivially for OOB data). Codea could check to ensure the png is valid or error out.