app ---> commands over pipe --> gfxEngine <--- events over pipe <--- (where the app can be written in *any* language)