@lingkkkk/atlas-mindmap 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -6
- package/assets/render-preview.webp +0 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -5,6 +5,57 @@ data in a normalized store, geometry in typed arrays, viewport lookup in a spati
|
|
|
5
5
|
rendering on one Canvas. The package has zero runtime dependencies and includes ESM, CommonJS,
|
|
6
6
|
browser-IIFE, type declarations, and CSS builds.
|
|
7
7
|
|
|
8
|
+
## Rendering preview
|
|
9
|
+
|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
This production-demo capture renders **20,001 topics across 201 levels** on one Canvas. The fixed
|
|
13
|
+
DOM toolbar and performance HUD remain interactive while topics, connectors, selection, collapse
|
|
14
|
+
controls, and branch colors are drawn by the renderer. The same preview file ships inside this npm
|
|
15
|
+
package at `assets/render-preview.webp`.
|
|
16
|
+
|
|
17
|
+
## Performance snapshot
|
|
18
|
+
|
|
19
|
+
The following qualification ran the public `dist/index.js` build in headed Chromium 151 on an
|
|
20
|
+
Apple M1 Max, using a 1440 × 900 viewport at DPR 1. Each size used a fresh page, explicit CDP garbage
|
|
21
|
+
collection, 120 sampled frames per view, and seven samples per editing operation.
|
|
22
|
+
Version 0.1.1 is a documentation-and-preview release and does not change the measured runtime
|
|
23
|
+
source from 0.1.0.
|
|
24
|
+
|
|
25
|
+
| Topics | First render | Forced-GC JS heap | Page Elements | Topic Elements |
|
|
26
|
+
| ---: | ---: | ---: | ---: | ---: |
|
|
27
|
+
| 100 | 84.10 ms | 1.49 MB | 110 | 0 |
|
|
28
|
+
| 500 | 66.80 ms | 1.69 MB | 110 | 0 |
|
|
29
|
+
| 1,000 | 65.90 ms | 1.85 MB | 110 | 0 |
|
|
30
|
+
| 2,000 | 75.50 ms | 2.17 MB | 110 | 0 |
|
|
31
|
+
| 5,000 | 104.90 ms | 3.20 MB | 110 | 0 |
|
|
32
|
+
| 10,000 | 153.70 ms | 5.23 MB | 110 | 0 |
|
|
33
|
+
| 20,000 | 242.00 ms | 7.56 MB | 110 | 0 |
|
|
34
|
+
| 50,000 | 565.50 ms | 15.87 MB | 110 | 0 |
|
|
35
|
+
| 100,000 | 971.40 ms | 29.72 MB | 110 | 0 |
|
|
36
|
+
|
|
37
|
+
First render is measured from the page navigation timeline until the Canvas renderer completes its
|
|
38
|
+
first draw. JS heap is V8 heap after forced garbage collection; it is not total browser, GPU, or OS
|
|
39
|
+
memory. Page Elements are counted immediately after first render and before benchmark interaction.
|
|
40
|
+
Topic Elements stay at zero because topics are Canvas-drawn rather than represented by DOM nodes.
|
|
41
|
+
|
|
42
|
+
| Topics | Full-map Fit FPS / frame P95 | Focused FPS / frame P95 | Text edit P95 | Drag reparent |
|
|
43
|
+
| ---: | ---: | ---: | ---: | ---: |
|
|
44
|
+
| 20,000 | 119.9 / 8.70 ms | 114.6 / 12.70 ms | 16.15 ms | 14.61 ms · passed |
|
|
45
|
+
| 50,000 | 90.9 / 16.91 ms | 118.0 / 9.31 ms | 26.80 ms | 32.99 ms · passed |
|
|
46
|
+
| 100,000 | 47.6 / 33.21 ms | 116.7 / 10.51 ms | 46.97 ms | 41.34 ms · passed |
|
|
47
|
+
|
|
48
|
+
The 50,000 and 100,000-topic startup paths cross the report's 250 ms synchronous-blocking
|
|
49
|
+
threshold, even though focused editing remains smooth on this machine. Treat startup capacity and
|
|
50
|
+
post-startup interaction as separate acceptance criteria.
|
|
51
|
+
|
|
52
|
+
The workload is a deterministic **normalized XMind topic model** containing topic kind, markers,
|
|
53
|
+
labels, and task data. It measures layout and rendering after import; it does not include `.xmind`
|
|
54
|
+
ZIP extraction, `content.json` parsing, image decoding, attachment loading, formulas, or
|
|
55
|
+
collaboration traffic.
|
|
56
|
+
|
|
57
|
+
Read the [complete performance and technical-review report](https://cdn.jsdelivr.net/npm/@lingkkkk/atlas-mindmap@0.1.1/PERFORMANCE.md) for all frame, cull, draw, style, editing, pointer-integrity, environment, and limitation data.
|
|
58
|
+
|
|
8
59
|
## Install
|
|
9
60
|
|
|
10
61
|
```bash
|
|
@@ -60,9 +111,9 @@ Load `node_modules/@lingkkkk/atlas-mindmap/dist/index.css` with your bundler or
|
|
|
60
111
|
## CDN / browser IIFE
|
|
61
112
|
|
|
62
113
|
```html
|
|
63
|
-
<link rel="stylesheet" href="https://unpkg.com/@lingkkkk/atlas-mindmap@0.1.
|
|
114
|
+
<link rel="stylesheet" href="https://unpkg.com/@lingkkkk/atlas-mindmap@0.1.1/dist/index.css">
|
|
64
115
|
<div id="mindmap" style="height:720px"></div>
|
|
65
|
-
<script src="https://unpkg.com/@lingkkkk/atlas-mindmap@0.1.
|
|
116
|
+
<script src="https://unpkg.com/@lingkkkk/atlas-mindmap@0.1.1/dist/index.global.js"></script>
|
|
66
117
|
<script>
|
|
67
118
|
const map = new AtlasMindMap.MindMap({
|
|
68
119
|
container: '#mindmap',
|
|
@@ -128,7 +179,7 @@ animation frame; debounce geometry-changing controls until input commit.
|
|
|
128
179
|
|
|
129
180
|
## Safe icon and image strategy
|
|
130
181
|
|
|
131
|
-
Version 0.1.
|
|
182
|
+
Version 0.1.1 stores XMind-compatible `markers` and `image` metadata, but does not claim arbitrary
|
|
132
183
|
remote-image icon rendering as a completed feature. A high-volume icon plugin should use cached
|
|
133
184
|
`Path2D` objects or a decoded bitmap atlas, key the cache by icon/size/DPR, cap its pixel budget,
|
|
134
185
|
hide icons in low-zoom LOD, and never allocate an Image, SVG, or Promise inside the frame loop.
|
|
@@ -145,9 +196,10 @@ map.destroy()
|
|
|
145
196
|
|
|
146
197
|
## Performance evidence
|
|
147
198
|
|
|
148
|
-
See [
|
|
149
|
-
100,000-topic headed-Chromium
|
|
150
|
-
|
|
199
|
+
See the [complete performance report](https://cdn.jsdelivr.net/npm/@lingkkkk/atlas-mindmap@0.1.1/PERFORMANCE.md)
|
|
200
|
+
for the 100/500/1,000/2,000/5,000/10,000/20,000/50,000/100,000-topic headed-Chromium
|
|
201
|
+
qualification, environment, interaction checks, memory scope, and limitations. The report
|
|
202
|
+
distinguishes full-map overview from 100% focused editing.
|
|
151
203
|
|
|
152
204
|
## Browser support
|
|
153
205
|
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lingkkkk/atlas-mindmap",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Framework-agnostic high-performance Canvas mind map for large JavaScript datasets",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mindmap",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
19
|
+
"assets",
|
|
19
20
|
"README.md",
|
|
20
21
|
"PERFORMANCE.md"
|
|
21
22
|
],
|