nteract / semiotic

A data visualization framework combining React & D3
https://semioticv1.nteract.io/
Other
2.43k stars 133 forks source link

Enhancements regards canvas rendering: retina display and progressive rendering #523

Closed BigFatDog closed 4 years ago

BigFatDog commented 4 years ago

Hi, I'm evaluating semiotic for large dataset rendering. Currently I'm using canvas integration example. I have observed two potential enhancements:

  1. Circles are not sharp on Macbook retina display. I checked Frame.tsx and found retina support is not turned on for canvases

  2. Currently all points are displayed at the same time. It takes a while for the chart to show (this is expected because this is large data set). Is it possible to add progressive rendering? Parallel Coordinates has such a function. Furthermore, the render progress can be interrupted when end user forces to re-render the chart. A reference implementation is here: RenderQueue

If these enhancements can be included in the future plan, I'm willing to help.

Thanks.

emeeks commented 4 years ago

I had no idea about the retina support, I'll take a look at that.

Progressive rendering does need to happen, you're absolutely right. I'll see if I can knock that out if I can carve out the time. If you want to put in a PR, I'd be happy to review it.

BigFatDog commented 4 years ago

Both are rendered on canvas. Left: retina support on Right(semiotic): retina support off

compare-raw-with-retina
emeeks commented 4 years ago

Just pushed support for both retina and progressive rendering. Should be in rc4 as soon as I fix a couple other bugs.

BigFatDog commented 4 years ago

Thank you!

emeeks commented 4 years ago

Take a look at 2.0.0.rc4 which just got published which should have both.