client-side graphing