Skip to content

Commit 31cb0d6

Browse files
committed
Adding README.
Change-Id: Ib7542c7a78f747fb7e0b10c7cb9c1e3fc6950bb0
0 parents  commit 31cb0d6

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
2+
Megaplot is a TypeScript + WebGL engine for implementing high-performance,
3+
large-scale, interactive data visualizations.
4+
5+
Visualizations rendered with Megaplot are:
6+
7+
* Smooth — Visualizations should not be jittery or laggy and should respond
8+
quickly to user interaction. The API should make it easy for developers to
9+
carry out expensive operations without locking up.
10+
* Beautiful — Elements should be superbly designed and rendered with the
11+
greatest fidelity afforded by the platform.
12+
* Fast — Operations should be performed as quickly as possible without
13+
sacrificing the quality of the user experience.
14+
* Big — The engine should be able to handle as much data as the browser can
15+
receive and process. Data points should be able to number into the hundreds
16+
of thousands without significant degradation.
17+
* Accessible — Different viewers have different needs. Visualizations made with
18+
Megaplot should work for as many users as possible. While ultimately the
19+
appearance and functionality of a visualization made with Megaplot
20+
depends on the implementer, Megaplot should provide functionality to make
21+
it easy for implementers to make visualizations that are widely accessible.
22+
23+
## Megaplot Benefits
24+
25+
Compared to other web-based, data visualization rendering options, Megaplot
26+
offers these unique benefits:
27+
28+
* Integrated Coordinate Systems — Many rendering environments assume a
29+
particular coordinate system (such as 2D pixel space or 3D world coordinates).
30+
Megaplot combines world coordinates and pixel coordinates. Objects can
31+
have positions in both systems, and these are additive. This allows the
32+
developer to achieve previously challenging effects such labels with fixed
33+
pixel offsets from particular world coordinates, or size minimums/maximums
34+
specified in pixels.
35+
* Interactive Vector Graphics at Scale — Megaplot is designed to render hundreds
36+
of thousands of data objects while still responding to user input. Data is
37+
expected to change in response to user interactions.
38+
* Ubiquitous Interruptible Animations — Sprite attributes are interpolated on
39+
the GPU for smooth animations frame-by-frame. Animations are interruptible,
40+
with most attributes preserving momentum between changes (no abrupt stop and
41+
restart).
42+
43+
In addition to those benefits, Megaplot offers these features:
44+
45+
* Scale - Render hundreds of thousands of datapoints.
46+
* High Fidelity — Objects rendered by Megaplot have shapes and borders computed
47+
on the GPU with vector-graphic precision. No pixelation of curves and other
48+
shapes when zoomed.
49+
* Declarative, Attribute-based API — Each Sprite has a number of attributes
50+
which can be set to define its position and appearance.
51+
* Hit Testing — To support mouse/touch interactivity, Megaplot provides a hit
52+
testing API wherein the developer can probe for which objects intersect a
53+
particular pixel coordinate of interest.
54+
* High-Performance Text — In a DOM context, glyphs of text are tiny vector
55+
images. While text with fixed coordinates can often be rendered quickly, text
56+
that moves can be slow. Megaplot uses a generated Signed Distance Field (SDF)
57+
texture for rendering glyphs efficiently at scale, commingled with other
58+
visual elements.
59+

0 commit comments

Comments
 (0)