Processing draws graphics in a PGraphics (named g) and at the end of draw(), copies this buffer to screen. So, yes, it is doing double buffering (the video buffer and g). Although I don't know if it handles correctly video synchronization to display the buffer, as I see sometime a bit of tearing with large objects moving on screen.