I wanted to be able to move images rapidly around the screen on the Raspberry Pi with Python, loading new images while the app was running as they became available. My initial attempts were a flop, I tried PyGame and various other methods. This either resulted in utter confusion for me, or failure to do anything smoothly and at a decent speed. Even things that indicated they were hardware accelerated were disappointing.
Months later and I came across Pi3D, a 3D graphics library for the Raspberry Pi. I ran some samples and was blown away by the smoothness of the graphics and their movement. Loading a texture, which could be a JPG, which I could then map that on to an object (a cube for example) and then make that object fly around the screen and spin at up to 55fps without a blink from the RPi. Actually creating the program was made quite easy by the samples that are provided – the biggest problem I had was working out how X, Y and Z co-ordinates work. With zero for the co-ordinates appearing to be centre of the screen at the very front. My first few attempts resulted in a blank screen, but once I actually placed the object further away from me (increased Z value) I could actually see it!
I won’t go in to a huge amount of detail here, other than to suggest checking out http://pi3d.github.io/html/ and having a play with Pi3D – it really is amazing what the RPi can do.