web gui

Hi,

Simon Ratcliffe (the other Ratcliff :-)) and myself are working on an
MPL backend that uses the HTML5 Canvas element. It is nearly done and
soon to be released, once we get permission from our employer to
release it under an open-source license. It does zooming and pretty
good animation as well. It also has no additional dependencies except
for Matplotlib and currently runs on the latest HTML5-compliant
browsers (Chrome 4+, Safari 5, IE9 when released, Firefox nightlies).

Some idea of its functionality can be seen at
http://genotrak.webfactional.com/mplh5canvas/.

We will keep the list updated on its progress.

Regards,
Ludwig Schwardt

That would be exactly what I need. Do you have any time frame for the
release? The problem is that I need it right now. So I'll try to
finish my own stuff today, so that I can at least work and then later
improve it or switch to your stuff.

Ondrej

···

On Thu, Jun 17, 2010 at 6:57 AM, Ludwig Schwardt <ludwig.schwardt@...149...> wrote:

Hi,

Simon Ratcliffe (the other Ratcliff :-)) and myself are working on an
MPL backend that uses the HTML5 Canvas element. It is nearly done and
soon to be released, once we get permission from our employer to
release it under an open-source license. It does zooming and pretty
good animation as well. It also has no additional dependencies except
for Matplotlib and currently runs on the latest HTML5-compliant
browsers (Chrome 4+, Safari 5, IE9 when released, Firefox nightlies).

Some idea of its functionality can be seen at
http://genotrak.webfactional.com/mplh5canvas/.

We will keep the list updated on its progress.

How do you deal with interactivity?

···

On Thu, Jun 17, 2010 at 9:57 AM, Ludwig Schwardt <ludwig.schwardt@…149…> wrote:

Hi,

Simon Ratcliffe (the other Ratcliff :-)) and myself are working on an

MPL backend that uses the HTML5 Canvas element. It is nearly done and

soon to be released, once we get permission from our employer to

release it under an open-source license. It does zooming and pretty

good animation as well. It also has no additional dependencies except

for Matplotlib and currently runs on the latest HTML5-compliant

browsers (Chrome 4+, Safari 5, IE9 when released, Firefox nightlies).

Some idea of its functionality can be seen at

http://genotrak.webfactional.com/mplh5canvas/.

We will keep the list updated on its progress.

Regards,

Ludwig Schwardt


ThinkGeek and WIRED’s GeekDad team up for the Ultimate

GeekDad Father’s Day Giveaway. ONE MASSIVE PRIZE to the

lucky parental unit. See the prize list and enter to win:

http://p.sf.net/sfu/thinkgeek-promo


Matplotlib-devel mailing list

Matplotlib-devel@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Hi,

How do you deal with interactivity?

When you create a figure, a WebSocket server is spawned on its own
socket, with its own thread. The client (browser) then interacts with
these threads. Zooming, panning and resizing are all done on the
server side, under request from the client. This allows you the full
functionality of matplotlib, as this corresponds to how other
interactive backends work. The interactivity is better than expected -
with local connections we achieve 40 frames per second while animating
a 2000-point plot, for example.

We also provide a management port, which serves as the portal for the
available figures. At the start of your session, you connect the
browser to this management port. Thereafter, new figures pop up as new
thumbnails on this page, and can be selected for viewing. This port
also provides the static HTML/JS framework for the plots.

This interactivity is what makes it a true replacement for the other
interactive backends. If people are interested, we can put together a
screencast of the functionality.

Ludwig

···

On Thu, Jun 17, 2010 at 8:07 PM, william ratcliff <william.ratcliff@...149...> wrote:

I would be interested in seeing the screencast. For the websocket, are you using “Comet” (which is what we use for our live data through the used of orbited and STOMP, so I could see being able to do interactivity, but thought it would be too slow for interactivity, which is why we went with FLOT and were planning to start adding functionality–legends, etc.), or the new proposed html5 websocket?

William

···

On Fri, Jun 18, 2010 at 3:01 AM, Ludwig Schwardt <ludwig.schwardt@…149…> wrote:

Hi,

On Thu, Jun 17, 2010 at 8:07 PM, william ratcliff > <william.ratcliff@…149…> wrote:

How do you deal with interactivity?

When you create a figure, a WebSocket server is spawned on its own

socket, with its own thread. The client (browser) then interacts with

these threads. Zooming, panning and resizing are all done on the

server side, under request from the client. This allows you the full

functionality of matplotlib, as this corresponds to how other

interactive backends work. The interactivity is better than expected -

with local connections we achieve 40 frames per second while animating

a 2000-point plot, for example.

We also provide a management port, which serves as the portal for the

available figures. At the start of your session, you connect the

browser to this management port. Thereafter, new figures pop up as new

thumbnails on this page, and can be selected for viewing. This port

also provides the static HTML/JS framework for the plots.

This interactivity is what makes it a true replacement for the other

interactive backends. If people are interested, we can put together a

screencast of the functionality.

Ludwig

Hi William,

We are using the HTML5 websocket as proposed in
draft-hixie-thewebsocketprotocol-75. This is supported by Chrome 4/5
and now Safari 5. This standard is evolving and Chrome 6 onwards will
be using draft-ietf-hybi-thewebsocketprotocol-00 which simplifies the
syntax somewhat but does break our current implementation.

Our websocket server is based on the pywebsocket code produced by the
Chrome developers. Our first version used a persistent AJAX style
connection which was pretty flaky, websockets seem to work much better
and give good speed.

As Ludwig mentioned we can achieve pretty good frame rates in animated
plots (easy animation without local threading issues was the primary
driver for developing this in the first place). Obviously it does
depend somewhat on the bandwidth available between the web client and
the server, but certainly for local/LAN connections everything is
pretty snappy.

We still have some issues to work out with plots that use large
numbers of markers as there are no HTML5 primitive constructs
available (as they are in SVG) to speed up drawing the same object
multiple times.

I will try and add a screencast to the demo page by early next week.

Cheers,

Simon Ratcliffe

···

On Fri, Jun 18, 2010 at 11:10 AM, william ratcliff <william.ratcliff@...149...> wrote:

I would be interested in seeing the screencast. For the websocket, are you
using "Comet" (which is what we use for our live data through the used of
orbited and STOMP, so I could see being able to do interactivity, but
thought it would be too slow for interactivity, which is why we went with
FLOT and were planning to start adding functionality--legends, etc.), or the
new proposed html5 websocket?
William

On Fri, Jun 18, 2010 at 3:01 AM, Ludwig Schwardt <ludwig.schwardt@...761.....> > wrote:

Hi,

On Thu, Jun 17, 2010 at 8:07 PM, william ratcliff >> <william.ratcliff@...149...> wrote:
> How do you deal with interactivity?

When you create a figure, a WebSocket server is spawned on its own
socket, with its own thread. The client (browser) then interacts with
these threads. Zooming, panning and resizing are all done on the
server side, under request from the client. This allows you the full
functionality of matplotlib, as this corresponds to how other
interactive backends work. The interactivity is better than expected -
with local connections we achieve 40 frames per second while animating
a 2000-point plot, for example.

We also provide a management port, which serves as the portal for the
available figures. At the start of your session, you connect the
browser to this management port. Thereafter, new figures pop up as new
thumbnails on this page, and can be selected for viewing. This port
also provides the static HTML/JS framework for the plots.

This interactivity is what makes it a true replacement for the other
interactive backends. If people are interested, we can put together a
screencast of the functionality.

Ludwig

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Hi,

···

On Thu, Jun 17, 2010 at 6:30 PM, Ondrej Certik <ondrej@...583...> wrote:

That would be exactly what I need. Do you have any time frame for the
release? The problem is that I need it right now. So I'll try to
finish my own stuff today, so that I can at least work and then later
improve it or switch to your stuff.

We have the go-ahead to release the HTML5 Canvas backend and will get
it out by Monday. Testers will be welcome!

Ludwig

Great!

···

On Fri, Jun 18, 2010 at 5:43 AM, Ludwig Schwardt <ludwig.schwardt@…149…> wrote:

Hi,

On Thu, Jun 17, 2010 at 6:30 PM, Ondrej Certik <ondrej@…583…> wrote:

That would be exactly what I need. Do you have any time frame for the

release? The problem is that I need it right now. So I’ll try to

finish my own stuff today, so that I can at least work and then later

improve it or switch to your stuff.

We have the go-ahead to release the HTML5 Canvas backend and will get

it out by Monday. Testers will be welcome!

Ludwig