- integrated into the main event loop - location, movement etc all entirely themeable and animation enabled - must be non-blocking - takes control of frame rate/buffer swapping - can handle all media types; video, audio and data only