Copy disabled (too large)
Download .txt
Showing preview only (24,719K chars total). Download the full file to get everything.
Repository: jacomyal/sigma.js
Branch: main
Commit: 13062dc5be4f
Files: 379
Total size: 23.5 MB
Directory structure:
gitextract_qrh9r3c_/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── stale.yml
│ └── workflows/
│ ├── build.yml
│ ├── tests.yml
│ └── website.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── babel.config.js
├── bin/
│ └── create-package.ts
├── eslint.config.mjs
├── lerna.json
├── package.json
├── packages/
│ ├── demo/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── public/
│ │ │ └── dataset.json
│ │ ├── src/
│ │ │ ├── canvas-utils.ts
│ │ │ ├── index.tsx
│ │ │ ├── styles.css
│ │ │ ├── types.ts
│ │ │ ├── use-debounce.ts
│ │ │ └── views/
│ │ │ ├── ClustersPanel.tsx
│ │ │ ├── DescriptionPanel.tsx
│ │ │ ├── GraphDataController.tsx
│ │ │ ├── GraphEventsController.tsx
│ │ │ ├── GraphSettingsController.tsx
│ │ │ ├── GraphTitle.tsx
│ │ │ ├── Panel.tsx
│ │ │ ├── Root.tsx
│ │ │ ├── SearchField.tsx
│ │ │ └── TagsPanel.tsx
│ │ ├── tsconfig.json
│ │ ├── vite-env.d.ts
│ │ └── vite.config.mts
│ ├── edge-curve/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── edge-labels.ts
│ │ │ ├── factory.ts
│ │ │ ├── index.ts
│ │ │ ├── shader-frag.ts
│ │ │ ├── shader-vert.ts
│ │ │ └── utils.ts
│ │ └── tsconfig.json
│ ├── export-image/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── downloadAsImage.ts
│ │ │ ├── drawOnCanvas.ts
│ │ │ ├── index.ts
│ │ │ ├── options.ts
│ │ │ └── toImage.ts
│ │ └── tsconfig.json
│ ├── layer-leaflet/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── index.ts
│ │ │ └── utils.ts
│ │ └── tsconfig.json
│ ├── layer-maplibre/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── index.ts
│ │ │ └── utils.ts
│ │ └── tsconfig.json
│ ├── layer-webgl/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── bind-webgl-layer.ts
│ │ │ ├── contours/
│ │ │ │ ├── index.ts
│ │ │ │ ├── shader-frag.ts
│ │ │ │ └── types.ts
│ │ │ ├── index.ts
│ │ │ └── webgl-layer-program/
│ │ │ ├── index.ts
│ │ │ └── shader-vert.ts
│ │ └── tsconfig.json
│ ├── node-border/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── factory.ts
│ │ │ ├── index.ts
│ │ │ ├── shader-frag.ts
│ │ │ ├── shader-vert.ts
│ │ │ └── utils.ts
│ │ └── tsconfig.json
│ ├── node-image/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── factory.ts
│ │ │ ├── index.ts
│ │ │ ├── shader-frag.ts
│ │ │ ├── shader-vert.ts
│ │ │ └── texture.ts
│ │ └── tsconfig.json
│ ├── node-piechart/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── factory.ts
│ │ │ ├── index.ts
│ │ │ ├── shader-frag.ts
│ │ │ ├── shader-vert.ts
│ │ │ └── utils.ts
│ │ └── tsconfig.json
│ ├── node-square/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── index.ts
│ │ │ ├── program.ts
│ │ │ ├── shader-frag.ts
│ │ │ ├── shader-vert.ts
│ │ │ └── utils.ts
│ │ └── tsconfig.json
│ ├── sigma/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── package.json
│ │ ├── rendering/
│ │ │ └── package.json
│ │ ├── settings/
│ │ │ └── package.json
│ │ ├── src/
│ │ │ ├── core/
│ │ │ │ ├── camera.ts
│ │ │ │ ├── captors/
│ │ │ │ │ ├── captor.ts
│ │ │ │ │ ├── mouse.ts
│ │ │ │ │ └── touch.ts
│ │ │ │ └── labels.ts
│ │ │ ├── index-bundle.ts
│ │ │ ├── index.ts
│ │ │ ├── rendering/
│ │ │ │ ├── edge-labels.ts
│ │ │ │ ├── edge.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── node-hover.ts
│ │ │ │ ├── node-labels.ts
│ │ │ │ ├── node.ts
│ │ │ │ ├── program.ts
│ │ │ │ ├── programs/
│ │ │ │ │ ├── edge-arrow/
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── edge-arrow-head/
│ │ │ │ │ │ ├── frag.glsl.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── vert.glsl.ts
│ │ │ │ │ ├── edge-clamped/
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── vert.glsl.ts
│ │ │ │ │ ├── edge-double-arrow/
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── edge-double-clamped/
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── vert.glsl.ts
│ │ │ │ │ ├── edge-line/
│ │ │ │ │ │ ├── frag.glsl.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── vert.glsl.ts
│ │ │ │ │ ├── edge-rectangle/
│ │ │ │ │ │ ├── frag.glsl.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── vert.glsl.ts
│ │ │ │ │ ├── edge-triangle/
│ │ │ │ │ │ ├── frag.glsl.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── vert.glsl.ts
│ │ │ │ │ ├── node-circle/
│ │ │ │ │ │ ├── frag.glsl.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── vert.glsl.ts
│ │ │ │ │ └── node-point/
│ │ │ │ │ ├── frag.glsl.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── vert.glsl.ts
│ │ │ │ └── utils.ts
│ │ │ ├── settings.ts
│ │ │ ├── sigma.ts
│ │ │ ├── types.ts
│ │ │ └── utils/
│ │ │ ├── animate.ts
│ │ │ ├── colors.ts
│ │ │ ├── coordinates.ts
│ │ │ ├── data.ts
│ │ │ ├── easings.ts
│ │ │ ├── graph.ts
│ │ │ ├── index.ts
│ │ │ ├── matrices.ts
│ │ │ ├── misc.ts
│ │ │ └── normalization.ts
│ │ ├── tsconfig.json
│ │ ├── types/
│ │ │ └── package.json
│ │ ├── utils/
│ │ │ └── package.json
│ │ └── vite.config.mts
│ ├── storybook/
│ │ ├── .gitignore
│ │ ├── .storybook/
│ │ │ ├── main.ts
│ │ │ ├── manager.tsx
│ │ │ ├── preview.tsx
│ │ │ └── theme.ts
│ │ ├── package.json
│ │ ├── public/
│ │ │ ├── arctic.gexf
│ │ │ ├── data.csv
│ │ │ └── pina-colada.jsonld
│ │ ├── stories/
│ │ │ ├── 0-docs/
│ │ │ │ └── introduction.mdx
│ │ │ ├── 1-core-features/
│ │ │ │ ├── 1-load-gexf-file/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── 2-events/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── 3-layouts/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── 4-use-reducers/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── 5-custom-rendering/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── node-gradient-frag.glsl.ts
│ │ │ │ │ ├── node-gradient-vert.glsl.ts
│ │ │ │ │ ├── node-gradient.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── 6-csv-to-network-map/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ └── 7-camera-control/
│ │ │ │ ├── index.html
│ │ │ │ ├── index.ts
│ │ │ │ └── stories.ts
│ │ │ ├── 2-advanced-usecases/
│ │ │ │ ├── cluster-label/
│ │ │ │ │ ├── euroSIS.json
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── events-shadowdom/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── fit-sizes-to-positions/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── large-graphs/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── load-rdf-file/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ └── mouse-manipulations/
│ │ │ │ ├── index.html
│ │ │ │ ├── index.ts
│ │ │ │ └── stories.ts
│ │ │ ├── 3-additional-packages/
│ │ │ │ ├── edge-curve/
│ │ │ │ │ ├── arrow-heads.ts
│ │ │ │ │ ├── basic.ts
│ │ │ │ │ ├── data/
│ │ │ │ │ │ ├── arctic.json
│ │ │ │ │ │ └── les-miserables.json
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interactions.ts
│ │ │ │ │ ├── labels.ts
│ │ │ │ │ ├── parallel-edges.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── export-image/
│ │ │ │ │ ├── available-options.ts
│ │ │ │ │ ├── custom-layers-and-renderers.ts
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── layer-leaflet/
│ │ │ │ │ ├── basic.ts
│ │ │ │ │ ├── data/
│ │ │ │ │ │ ├── airports.json
│ │ │ │ │ │ └── sample-geojson.json
│ │ │ │ │ ├── geojson.ts
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── resize.ts
│ │ │ │ │ ├── stories.ts
│ │ │ │ │ └── tilelayer.ts
│ │ │ │ ├── layer-maplibre/
│ │ │ │ │ ├── basic.ts
│ │ │ │ │ ├── data/
│ │ │ │ │ │ ├── airports.json
│ │ │ │ │ │ └── sample-geojson.json
│ │ │ │ │ ├── geojson.ts
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── resize.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── layer-webgl/
│ │ │ │ │ ├── contours-highlight-group.ts
│ │ │ │ │ ├── contours-metaballs.ts
│ │ │ │ │ ├── contours-multi-levels.ts
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── node-border/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── node-border.ts
│ │ │ │ │ ├── pixels-border.ts
│ │ │ │ │ ├── stories.ts
│ │ │ │ │ ├── variable-sizes.ts
│ │ │ │ │ └── with-images.ts
│ │ │ │ ├── node-image/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── local-images.ts
│ │ │ │ │ ├── node-images.ts
│ │ │ │ │ ├── node-pictograms-background.ts
│ │ │ │ │ ├── node-pictograms.ts
│ │ │ │ │ ├── options-showcase.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── node-piechart/
│ │ │ │ │ ├── fixed-colors.ts
│ │ │ │ │ ├── fixed-values.ts
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── offsets.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ ├── node-square/
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── mixed-programs.ts
│ │ │ │ │ └── stories.ts
│ │ │ │ └── utils/
│ │ │ │ ├── fit-viewport-to-nodes.ts
│ │ │ │ ├── get-nodes-in-viewport.ts
│ │ │ │ ├── index.html
│ │ │ │ └── stories.ts
│ │ │ ├── _data/
│ │ │ │ └── data.json
│ │ │ └── utils.ts
│ │ ├── tsconfig.json
│ │ └── types/
│ │ ├── images.d.ts
│ │ └── raw.d.ts
│ ├── template/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ └── index.ts
│ │ └── tsconfig.json
│ ├── test/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── app/
│ │ │ ├── index.html
│ │ │ └── index.ts
│ │ ├── benchmarks/
│ │ │ └── suite.bench.ts
│ │ ├── datasets/
│ │ │ ├── arctic.json
│ │ │ ├── large-graph.json
│ │ │ └── les-miserables.json
│ │ ├── e2e/
│ │ │ └── basics.spec.ts
│ │ ├── helpers.ts
│ │ ├── package.json
│ │ ├── playwright.config.ts
│ │ ├── tsconfig.json
│ │ ├── unit/
│ │ │ ├── _helpers.ts
│ │ │ ├── layer-leaflet/
│ │ │ │ └── lifecycle.ts
│ │ │ ├── layer-maplibre/
│ │ │ │ └── lifecycle.ts
│ │ │ ├── sigma/
│ │ │ │ ├── camera.ts
│ │ │ │ ├── events.ts
│ │ │ │ ├── lifecycle.ts
│ │ │ │ ├── mouse.ts
│ │ │ │ ├── rendering.ts
│ │ │ │ ├── settings.ts
│ │ │ │ ├── touch.ts
│ │ │ │ └── utils.ts
│ │ │ └── utils/
│ │ │ └── fitViewportToNodes.ts
│ │ ├── vite.config.mts
│ │ └── vitest.config.mts
│ ├── utils/
│ │ ├── .gitignore
│ │ ├── .npmignore
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── fitViewportToNodes.ts
│ │ │ ├── getNodesInViewport.ts
│ │ │ └── index.ts
│ │ └── tsconfig.json
│ └── website/
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── docs/
│ │ ├── advanced/
│ │ │ ├── _category_.json
│ │ │ ├── coordinate-systems.md
│ │ │ ├── customization.md
│ │ │ ├── data.md
│ │ │ ├── events.md
│ │ │ ├── layers.md
│ │ │ ├── lifecycle.md
│ │ │ ├── migration-v2-v3.md
│ │ │ ├── new-packages.md
│ │ │ ├── publish.md
│ │ │ ├── renderers.md
│ │ │ └── sizes.md
│ │ ├── index.mdx
│ │ ├── quickstart.md
│ │ └── resources.md
│ ├── docusaurus.config.js
│ ├── package.json
│ ├── sidebars.js
│ ├── src/
│ │ ├── css/
│ │ │ └── custom.css
│ │ └── theme/
│ │ ├── Footer/
│ │ │ └── index.js
│ │ ├── Navbar/
│ │ │ └── Logo/
│ │ │ └── index.js
│ │ └── NotFound.js
│ └── static/
│ ├── fonts/
│ │ └── cascadia/
│ │ └── CascadiaCode-Regular.otf
│ ├── homepage.html
│ └── styles.css
├── tsconfig.base.json
└── tsconfig.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ""
labels: bug
assignees: ""
---
## Guidelines
Please note that GitHub issues are only meant for bug reports/feature requests.
If you have questions on how to use Sigma.js, please ask on [StackOverflow](https://stackoverflow.com/questions/tagged/sigma.js) instead of creating an issue here.
To help us understand your issue, please specify important details, primarily:
- Sigma.js version : X.Y.Z
- Graphology version : X.Y.Z
- Operating system: (for example Windows 95/Ubuntu 16.04)
- Web browser: (for example Firefox 82.0.2)
- **Steps to reproduce**
- Expected behavior
- Actual behavior
Additionally, include (as appropriate) console logs, stacktraces, and other debug info.
We recommend you to create a live example of your issue on [CodeSandbox](https://codesandbox.io/) so we can reproduce it. You can start with this template: https://codesandbox.io/p/sandbox/sigma-template-82mpns
## Example bug report
Modification of the node default color in the settings has no effect
**Sigma.js version:** 2.0.0
**Graphology version:** 0.19.2
**Operating System:** Ubuntu 15.10
**Web browser:** Firefox 82.0.2
### Steps to reproduce
Check the live example https://codesandbox.io/s/sigmajs-issue-example-om8c0
### Expected behavior
Nodes should be displayed in red
### Actual behavior
Nodes are displayed in black
## Note
If the issue has an inactivity of **30 days**, it becomes stale.
With an additional inactivity of **14 days**, the issue is closed
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ""
labels: enhancement
assignees: ""
---
## Guidelines
Please note that GitHub issues are only meant for bug reports/feature requests.
If you have questions on how to use Sigma.js, please ask on [StackOverflow](https://stackoverflow.com/questions/tagged/sigma.js) instead of creating an issue here.
## Feature request template
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## Pull request type
Check the type of change your PR introduces:
- [ ] Bugfix
- [ ] Feature
- [ ] Code style update (formatting, renaming)
- [ ] Refactoring (no functional changes, no api changes)
- [ ] Build related changes
- [ ] Documentation content changes
- [ ] Other (please describe):
> **_NOTE:_** Before to create a PR, read our [contributing guide](https://github.com/jacomyal/sigma.js/blob/main/CONTRIBUTING.md)
> **_NOTE:_** Try to limit your pull request to one type, submit multiple pull requests if needed.
## What is the current behavior?
Issue Number: N/A
> **_NOTE:_** Describe the current behavior that you are modifying, or link to a relevant issue.
## What is the new behavior?
> **_NOTE:_** Describe the behavior or changes that are being added by this PR.
## Other information
> **_NOTE:_** Any other information that is important to this PR such as screenshots of how the component looks before and after the change.
================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 40
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 15
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- enhancement
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
# Limit to only `issues` or `pulls`
only: issues
================================================
FILE: .github/workflows/build.yml
================================================
name: Build
on:
push:
tags: "*"
jobs:
build:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Build sources
run: npm install && npm run build
- name: Uploading files
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./packages/sigma/dist/sigma.min.js
tag: ${{ github.ref }}
overwrite: true
file_glob: true
================================================
FILE: .github/workflows/tests.yml
================================================
name: Tests
on: [push, pull_request]
jobs:
tests:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Cache node_modules
uses: actions/cache@v4
with:
path: "node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('package-lock.json') }}
- name: Playwright version
id: playwright-version
run: echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./package-lock.json').packages['node_modules/playwright'].version)")" >> $GITHUB_ENV
- name: Cache Playwright binaries
uses: actions/cache@v4
id: playwright-cache
with:
path: "~/.cache/ms-playwright"
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
- name: Install dependencies
run: npm ci
- name: Compile all packages
run: npm run build
- name: Install Playwright Browsers
run: npx playwright install --with-deps
if: steps.playwright-cache.outputs.cache-hit != 'true'
- name: Check for linting errors
continue-on-error: true
run: npm run lint
- name: Run all tests
run: npm run test
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
================================================
FILE: .github/workflows/website.yml
================================================
name: Website
on:
push:
branches:
- main
jobs:
publish:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Build website
run: npm run website:build
- name: Deploy to GitHub Pages
uses: crazy-max/ghaction-github-pages@v4
with:
target_branch: gh-pages
build_dir: packages/website/build
fqdn: www.sigmajs.org
jekyll: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .gitignore
================================================
node_modules
*.tgz
*.log
*.swp
.DS_Store
.idea
.vscode
*storybook.log
================================================
FILE: .prettierignore
================================================
**/dist/*
**/build/*
**/node_modules/*
# Tests
**/coverage/**
**/playwright-report/**
**/test-results/**
# Doc and examples
**/storybook-static/*
**/typedoc/**
**/.docusaurus/**
================================================
FILE: .prettierrc.json
================================================
{
"trailingComma": "all",
"printWidth": 120,
"importOrder": ["<THIRD_PARTY_MODULES>", "^[./]"],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"importOrderGroupNamespaceSpecifiers": true,
"plugins": ["@trivago/prettier-plugin-sort-imports"]
}
================================================
FILE: CHANGELOG.md
================================================
# sigma.js - changelog:
## 3.0.2
### Bug fixes
- [#1517](https://github.com/jacomyal/sigma.js/issues/1517) - Fixing calling `setGraph` with highlighted nodes (thanks to @AeternusSamurai)
- Fixing an issue, with sigma not properly cleaning WebGL contexts in its `kill()` method ([commit](https://github.com/jacomyal/sigma.js/commit/c292888d69cf5d9b111194d554df0cb3a86f4a60))
## 3.0.1
### Bug fix
- [#1500](https://github.com/jacomyal/sigma.js/issues/1500) - Fixing lag on stop dragging (thanks @ouzhou for the report and the research)
## 3.0.0
### Breaking changes
- **Completely rewrites programs API**
- **Renames all existing programs**
- **Restructures sources as a multi-package repository (using [Lerna](https://lerna.js.org/))**
- **Replaces the default node program by `NodeCircleProgram`**
- **Moves the `node.image` renderer as a new package [`@sigma/node-image`](https://www.npmjs.com/package/@sigma/node-image)**
- **Moves `labelRenderer`, `hoverRenderer` and `edgeLabelRenderer` from settings to each renderer**
### Features
- [#1386](https://github.com/jacomyal/sigma.js/issues/1386) Improves `Sigma.kill` method
- [#1382](https://github.com/jacomyal/sigma.js/issues/1382) Handles click/hover nodes and edges with [picking](https://webglfundamentals.org/webgl/lessons/webgl-picking.html) rather than with custom computations
- [#1372](https://github.com/jacomyal/sigma.js/issues/1372) Improves render/refresh lifecycle and APIs
- [#1322](https://github.com/jacomyal/sigma.js/issues/1322) Implements [WebGL instancing](https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/drawArraysInstanced) in programs
- [#1346](https://github.com/jacomyal/sigma.js/issues/1346) Adds documentation in the website
- [#1034](https://github.com/jacomyal/sigma.js/issues/1034) Adds new `Sigma.setCamera` method
- [#1185](https://github.com/jacomyal/sigma.js/issues/1185) Adds new `zoomToSizeRatioFunction` and `itemSizesReference` setting
- [#1231](https://github.com/jacomyal/sigma.js/issues/1231) Adds new [`@sigma/edge-curve`](https://www.npmjs.com/package/@sigma/edge-curve) renderer, as a new package
- Adds new [`@sigma/node-border`](https://www.npmjs.com/package/@sigma/node-border) renderer, as a new package
## 2.4.0
### Features
- [#1289](https://github.com/jacomyal/sigma.js/issues/1289) - Adding `Camera.updateState`
- Program classes given in settings (`nodeProgramClasses`, `edgeProgramClasses`) are now merged with default ones for convenience
- [#1287](https://github.com/jacomyal/sigma.js/pull/1287) - Adding the `hoverNodeProgramClasses` setting so that it is possible to have different programs rendering nodes and their hover
- [#1273](https://github.com/jacomyal/sigma.js/issues/1273) - Adding the `Sigma.setGraph` method to renderers
- Adding renderer generic type to specify graph type (thanks to @lf-)
### Bug fixes
- [#1285](https://github.com/jacomyal/sigma.js/issues/1285) - Fixing label selection when camera is rotated
- [#1206](https://github.com/jacomyal/sigma.js/pull/1206), [#1257](https://github.com/jacomyal/sigma.js/issues/1257) - Fixing `node.image` program (thanks to @kaij and @boogheta)
- [#1286](https://github.com/jacomyal/sigma.js/issues/1286) - Fixing right-click erroneously triggering camera drag events
- [#1242](https://github.com/jacomyal/sigma.js/pull/1242), [#1282](https://github.com/jacomyal/sigma.js/pull/1282) - Fixing multiple issues related to touch captor (thanks to @kaij and @boogheta)
- [#1272](https://github.com/jacomyal/sigma.js/issues/1272) - Fixing quadtree-related stack overflows
- Fixing graph event leak on `Sigma.kill`
- [#1253](https://github.com/jacomyal/sigma.js/issues/1253) - Fixing `edge.fast` program not respecting `hidden`
- Fixing `edge.fast` vert shader not unpacking color correctly
- [#1251](https://github.com/jacomyal/sigma.js/pull/1251) - Fixing alpha value parsing of hex colors (thanks to @kaij)
## 2.3.1
### Feature
- [#1239](https://github.com/jacomyal/sigma.js/pull/1239) - Adds `getContainer` method to public API (thanks to @stefanprobst)
### Bug fixes
- [#1230](https://github.com/jacomyal/sigma.js/pull/1230) - Updates broken link to graphology in README.md (thanks to @alexduhem)
- [#1236](https://github.com/jacomyal/sigma.js/issues/1236) - Fixes `#.preventSigmaDefault` scoping
- [#1237](https://github.com/jacomyal/sigma.js/issues/1237) - Updates `pixelRatio` on resize
- [#1240](https://github.com/jacomyal/sigma.js/issues/1240) - Fixes click events for touch devices
- [#1244](https://github.com/jacomyal/sigma.js/issues/1244) - Stops relying on graphology for types (issue only partially fixed yet)
- [#1249](https://github.com/jacomyal/sigma.js/issues/1249) - Fixes hovered nodes layer not being cleared
## 2.3.0
### Features
- _undocumented_ - Publishes examples to the website
- [#1142](https://github.com/jacomyal/sigma.js/issues/1142) - Improves TypeScript typings for events
- [#1170](https://github.com/jacomyal/sigma.js/issues/1170) - Simplifies and optimizes `multiplyVec` internal function
- [#1196](https://github.com/jacomyal/sigma.js/issues/1196) - Adds new `allowInvalidContainer` to prevent sigma.js from throwing errors when it does not find valid width and/or height
- [#1205](https://github.com/jacomyal/sigma.js/issues/1205) - Adds a new example showcasing sigma's scalability and performances
- [#1215](https://github.com/jacomyal/sigma.js/issues/1215) - (ticket still opened) Improves `animateNodes`
- [#1224](https://github.com/jacomyal/sigma.js/issues/1224) - Adds new internal function `floatArrayColor`
- [#1225](https://github.com/jacomyal/sigma.js/issues/1225) - Adds new `beforeRender` and `resize` events
- [#1227](https://github.com/jacomyal/sigma.js/issues/1227) - Implements `#preventSigmaDefault` for mouse move events
### Bug fixes
- [#1214](https://github.com/jacomyal/sigma.js/issues/1214) - Cleans graph lifecycle events handling
- [#1216](https://github.com/jacomyal/sigma.js/issues/1216) - Fixes CodeSandbox configuration for multiple examples (and the template)
- [#1219](https://github.com/jacomyal/sigma.js/issues/1219) - Fixes hidden / excess renderings from `node.ts` program
- [#1223](https://github.com/jacomyal/sigma.js/issues/1223) - Fixes dynamic constant color in various fragment shaders
- [#1226](https://github.com/jacomyal/sigma.js/issues/1226) - Fixes broken `node.ts` program
## 2.2.0
### Features
- [#1161](https://github.com/jacomyal/sigma.js/issues/1161) - Adds `minZoom` and `maxZoom` settings
- [#1166](https://github.com/jacomyal/sigma.js/issues/1166) - Adds HTML colors support
- [#1167](https://github.com/jacomyal/sigma.js/issues/1167) - Adds events TypeScript types
- [#1176](https://github.com/jacomyal/sigma.js/issues/1176) - Cleans and improves event payloads
- [#1177](https://github.com/jacomyal/sigma.js/issues/1177) - Allows overriding arguments with `#graphToViewport` and `#viewportToGraph`
- [#1182](https://github.com/jacomyal/sigma.js/issues/1182) - Adds cached data (from custom reducers) to custom renderers
- [#1187](https://github.com/jacomyal/sigma.js/issues/1187) - Adds `forceLabel` for nodes and edges
- [#1188](https://github.com/jacomyal/sigma.js/issues/1188) - Drops `graphology-metrics` dependency
### Bug fixes
- _undocumented_ - Updates dependencies
- _undocumented_ - Fixes various bugs with the `node.image` program
- _undocumented_ - Fixes the `build/sigma.js` and `build/sigma.min.js` expositions of sigma
- [#1172](https://github.com/jacomyal/sigma.js/issues/1172) - Fixes labels grid display (changes which node labels are displayed by default)
- [#1192](https://github.com/jacomyal/sigma.js/issues/1192) - Fixes alpha blending for most recent WebGL layers
- [#1193](https://github.com/jacomyal/sigma.js/issues/1193) - Fixes dragging with mouse out of stage
- [#1194](https://github.com/jacomyal/sigma.js/issues/1194) - Fixes camera transitions to `angle: 0`
- [#1195](https://github.com/jacomyal/sigma.js/issues/1195) - Improves edge events handling (thanks to @avenzi)
- [#1199](https://github.com/jacomyal/sigma.js/issues/1199) - Fixes issue with hidden nodes and labels rendering (thanks to @avenzi)
- [#1200](https://github.com/jacomyal/sigma.js/issues/1200) - Fixes issue with node labels `""`
- [#1203](https://github.com/jacomyal/sigma.js/issues/1203) - Fixes examples build process
## 2.1.3
### Bug fixes
- [#1178](https://github.com/jacomyal/sigma.js/issues/1178) - Fixes uncaught error in Firefox when using node.image with images with no size
- [#1180](https://github.com/jacomyal/sigma.js/issues/1180) - Fixes edge events not being fired when edge size not set in the graph
- [#1183](https://github.com/jacomyal/sigma.js/issues/1183) - Moves edge labels layer behind nodes layer
- [#1186](https://github.com/jacomyal/sigma.js/issues/1186) - Fixes hovered nodes when mouse not hover sigma container
## 2.1.2
### Bug fixes
- [#1168](https://github.com/jacomyal/sigma.js/issues/1168) - Fixes hover and click events when mouse is hovering a hidden node
- [#1169](https://github.com/jacomyal/sigma.js/issues/1169) - Fixes x / y values in sigma events when mouse is not hovering the sigma container
- [#1173](https://github.com/jacomyal/sigma.js/issues/1173) - Fixes issue where unused program no longer deallocate back to zero
- [#1175](https://github.com/jacomyal/sigma.js/issues/1175) - Fixes zoom scrolling in a scrolled webpage
## 2.1.1
### Bug fix
- [#1165](https://github.com/jacomyal/sigma.js/issues/1165) - Fixes "ghost hovered nodes" issue
## 2.1.0
### Features
- _undocumented_ - Adds edge events
- _undocumented_ - Cleans and fixes all nodes and edges programs
- [#1153](https://github.com/jacomyal/sigma.js/issues/1153) - Adds double-click and wheel events for nodes and edges, with a new `#preventSigmaDefault()` method
- [#1149](https://github.com/jacomyal/sigma.js/issues/1149) - Graphology (and related libs) update to 0.22.1
- [#1102](https://github.com/jacomyal/sigma.js/issues/1102) - Allows custom node and edge label colors
- [#1150](https://github.com/jacomyal/sigma.js/issues/1150) - Adds public methods to enable implementing a proper PNG export, adds related [`png-export` example](https://codesandbox.io/s/github/jacomyal/sigma.js/tree/main/examples/png-snapshot)
### Bug fixes
- _undocumented_ - Edges thickness rendering is now pixel perfect at camera ratio 1, and no more twice bigger on Retina displays
- _undocumented_ - Cleans some browser warnings
- [#1157](https://github.com/jacomyal/sigma.js/issues/1157) - Fixes unexpected node interaction with zIndex
- [#1148](https://github.com/jacomyal/sigma.js/issues/1148) - Fixes `mousemove` unexpected behaviors
- [#1163](https://github.com/jacomyal/sigma.js/issues/1163) - Implements edge labels ellipsis
## 2.0.0
- Complete rewrite of the library.
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
alexis@ouestware.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
================================================
FILE: CONTRIBUTING.md
================================================
# Contributor Guide
Thank you for investing your time in contributing to our project!
In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
## Development Workflow
1. If you are a first-time contributor:
- Go to https://github.com/jacomyal/sigma.js and click on the **fork** button to create your own copy of the project.
- Clone the project to your local computer: `git clone git@github.com:your-username/sigma.js.git`
- Navigate to the folder sigma.js and add the upstream repository: `git remote add upstream git@github.com:jacomyal/sigma.js.git`
- Now, you have remote repositories named:
- `upstream`, which refers to the `sigma.js` repository
- `origin`, which refers to your personal fork
- Next, you need to set up your build environment: `npm install`
2. Develop your contribution:
- Pull the latest changes from upstream
```
git checkout main
git pull upstream main
```
- Create a branch for the feature you want to work on. Since the branch name will appear in the merge message, use a sensible name such as 'bugfix-for-issue-1480': `git checkout -b bugfix-for-issue-1480`
- Commit locally as you progress (`git add` and `git commit`)
3. Test your contribution:
- Run the test suite locally: `npm run test`
4. Submit your contribution:
- Push your changes back to your fork on GitHub: `git push origin bugfix-for-issue-1480`
- Go to GitHub. The new branch will show up with a green Pull Request button, just click it.
5. Review process:
- Every Pull Request (PR) update triggers a set of [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) services
that check that the code is up to standards and passes all our tests.
These checks must pass before your PR can be merged. If one of the
checks fails, you can find out why by clicking on the "failed" icon (red
cross) and inspecting the build and test log.
- Reviewers (the other developers and interested community members) will
write inline and/or general comments on your PR to help
you improve its implementation, documentation, and style.
It's a friendly conversation from which we all learn and the
overall code quality benefits.Don't let the review
discourage you from contributing, its only aim is to improve the quality
of project, not to criticize. We are, after all, very grateful for the
time you're donating!.
- To update your PR, make your changes on your local repository
and commit. As soon as those changes are pushed up (to the same branch as
before) the PR will update automatically.
> **_NOTE:_** If the PR closes an issue, make sure that GitHub knows to automatically close the issue when the PR is merged.
> For example, if the PR closes issue number 1480, you could use the phrase "Fixes #1480" in the PR description or commit message.
## Divergence from `upstream main`
If GitHub indicates that the branch of your Pull Request can no longer
be merged automatically, merge the main branch into yours :
```
git fetch upstream main
git rebase upstream/main
```
If any conflicts occur, they need to be fixed before continuing.
> **_NOTE:_** Please use **rebase** and not **merge**,
## Bugs
Please report bugs on [GitHub](https://github.com/jacomyal/sigma.js/issues).
================================================
FILE: LICENSE.txt
================================================
Copyright (C) 2013-2025, Alexis Jacomy, Guillaume Plique, Benoît Simard https://www.sigmajs.org
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
================================================
FILE: README.md
================================================
[](https://github.com/jacomyal/sigma.js/actions)
<br />

**[Website](https://www.sigmajs.org/)** | **[Documentation](https://www.sigmajs.org/docs)** | **[Storybook](https://www.sigmajs.org/storybook)** | <strong><a rel="me" href="https://vis.social/@sigmajs">Mastodon</a></strong>
---
[Sigma.js](https://www.sigmajs.org) is an open-source JavaScript library aimed at visualizing graphs of thousands of nodes and edges using WebGL, mainly developed by [@jacomyal](https://github.com/jacomyal) and [@Yomguithereal](https://github.com/Yomguithereal), and built on top of [graphology](https://graphology.github.io/).
## How to use in your project
To integrate sigma into your project, follow these simple steps:
1. **Installation:** Add `sigma` and `graphology` to your project by running the following command:
```bash
npm install sigma graphology
```
2. **Usage:** Import sigma into your JavaScript or TypeScript file:
```javascript
import Graph from "graphology";
import Sigma from "sigma";
```
Then, create a new `Sigma` instance with your graph data and target container:
```javascript
const graph = new Graph();
graph.addNode("1", { label: "Node 1", x: 0, y: 0, size: 10, color: "blue" });
graph.addNode("2", { label: "Node 2", x: 1, y: 1, size: 20, color: "red" });
graph.addEdge("1", "2", { size: 5, color: "purple" });
const sigmaInstance = new Sigma(graph, document.getElementById("container"));
```
## How to develop locally
To run the [Storybook](https://storybook.js.org/) locally:
```bash
git clone git@github.com:jacomyal/sigma.js.git
cd sigma.js
npm install
npm run start
```
This will open the Storybook in your web browser, which live reloads when you modify the stories or the package sources.
## Resources
- **GitHub Project:** The source code and collaborative development efforts for Sigma.js are hosted on [GitHub](https://github.com/jacomyal/sigma.js).
- **Website:** The official website, [sigmajs.org](https://sigmajs.org), kindly designed by [Robin de Mourat](https://github.com/robindemourat/) from the [Sciences-Po médialab](https://medialab.sciencespo.fr/en/) team, showcases the library's capabilities.
- **Documentation:** A detailed documentation, built with [Docusaurus](https://docusaurus.io/), is available at [sigmajs.org/docs](https://sigmajs.org/docs). It provides extensive guides and API references for users.
- **Storybook:** Interactive examples can be found at [sigmajs.org/storybook](https://sigmajs.org/storybook).
- **Demo:** A comprehensive demo, available at [sigmajs.org/demo](https://sigmajs.org/demo), features a full-featured React-based web application utilizing Sigma.js.
## How to contribute
You can contribute by submitting [issues tickets](http://github.com/jacomyal/sigma.js/issues) and proposing [pull requests](http://github.com/jacomyal/sigma.js/pulls). Make sure that tests and linting pass before submitting any pull request.
You can also browse the related documentation [here](https://github.com/jacomyal/sigma.js/tree/main/CONTRIBUTING.md).
## How to start a new package
Run `npm run createPackage` from the project root. It will:
- Ask you the new package name
- Copy the `packages/template` folder
- Update the new package `package.json` entries (name, description, exports)
- Update various other files (buildable packages list in `tsconfig.json`, Preconstruct compatible packages list in `package.json`...)
================================================
FILE: babel.config.js
================================================
module.exports = {
presets: ["@babel/preset-env", "@babel/preset-typescript"],
};
================================================
FILE: bin/create-package.ts
================================================
/* global __dirname */
import * as process from "node:process";
import * as path from "path";
import * as readline from "readline";
import { spawn } from "child_process";
import { promises as fs } from "fs";
async function readJSONFile<T = unknown>(filePath: string): Promise<T> {
const fileContent = await fs.readFile(filePath, "utf8");
return JSON.parse(fileContent);
}
async function writeJSONFile(filePath: string, data: unknown) {
await fs.writeFile(filePath, JSON.stringify(data, null, 2), "utf8");
}
function prompt(question: string): Promise<string> {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
return new Promise((resolve) =>
rl.question(question, (answer) => {
rl.close();
resolve(answer);
}),
);
}
async function copyFolder(src: string, dest: string) {
await fs.mkdir(dest, { recursive: true });
const entries = await fs.readdir(src, { withFileTypes: true });
const copyPromises = entries.map(async (entry) => {
const srcPath = path.join(src, entry.name);
const destPath = path.join(dest, entry.name);
if (entry.isDirectory()) {
return copyFolder(srcPath, destPath);
} else {
return fs.copyFile(srcPath, destPath);
}
});
await Promise.all(copyPromises);
}
function runCommand(command: string, args: string[]): Promise<void> {
return new Promise((resolve, reject) => {
const child = spawn(command, args, { stdio: "inherit" });
child.on("close", (code) => {
if (code === 0) {
resolve();
} else {
reject(new Error(`Command failed with exit code ${code}`));
}
});
});
}
async function createPackage() {
// 1. Ask for a new package name
const packageName = await prompt("Enter a new package name (lowercase letters, digits, and dashes only): ");
// Validate the package name
if (!/^[a-z0-9-]+$/.test(packageName)) {
throw new Error("Package name can only contain lowercase letters, digits, and dashes.");
}
// 2. Copy the template folder
const srcDir = path.resolve(__dirname, "../packages/template");
const destDir = path.resolve(__dirname, `../packages/${packageName}`);
await copyFolder(srcDir, destDir);
// 3. Update the package.json
const packageJsonPath = path.join(destDir, "package.json");
const packageJson = await readJSONFile<Record<string, unknown>>(packageJsonPath);
packageJson.name = `@sigma/${packageName}`;
packageJson.description = "TODO";
(packageJson.repository as Record<string, unknown>).directory = `packages/${packageName}`;
delete packageJson.private;
await writeJSONFile(packageJsonPath, packageJson);
// 4. Update the references in tsconfig.json
const tsconfigPath = path.resolve(__dirname, "../tsconfig.json");
const tsconfig = await readJSONFile<Record<string, unknown>>(tsconfigPath);
(tsconfig.references as { path: string }[]).push({ path: `./packages/${packageName}` });
await writeJSONFile(tsconfigPath, tsconfig);
// 5. Add the package to the Preconstruct packages array in package.json
const rootPackageJsonPath = path.resolve(__dirname, "../package.json");
const rootPackageJson = await readJSONFile<Record<string, unknown> & { preconstruct: { packages: string[] } }>(
rootPackageJsonPath,
);
rootPackageJson.preconstruct = {
...(rootPackageJson.preconstruct || {}),
packages: (rootPackageJson.preconstruct.packages || []).concat(`packages/${packageName}`),
};
await writeJSONFile(rootPackageJsonPath, rootPackageJson);
// 7. Run npm run prettify and npm install using spawn with stdio inheritance
await runCommand("npm", ["run", "prettify"]);
await runCommand("npx", ["preconstruct", "fix"]);
await runCommand("npm", ["install"]);
// eslint-disable-next-line no-console
console.log(`Package ${packageName} has been successfully created.`);
}
// Run the script
createPackage().catch((e: Error) => {
// eslint-disable-next-line no-console
console.error(e);
process.exit(1);
});
================================================
FILE: eslint.config.mjs
================================================
import { fixupPluginRules } from "@eslint/compat";
import { FlatCompat } from "@eslint/eslintrc";
import js from "@eslint/js";
import typescriptEslint from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import _import from "eslint-plugin-import";
import globals from "globals";
import path from "node:path";
import { fileURLToPath } from "node:url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all,
});
export default [
{
ignores: [
"**/*.js",
// Built files
"**/dist/*",
"**/build/*",
"**/node_modules/*",
// Doc and examples
"**/storybook-static/*",
"**/typedoc",
"**/.docusaurus",
],
},
...compat.extends(
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/eslint-recommended",
"prettier",
"plugin:storybook/recommended",
),
{
plugins: {
import: fixupPluginRules(_import),
"@typescript-eslint": typescriptEslint,
},
languageOptions: {
globals: {
...globals.jest,
...globals.browser,
},
parser: tsParser,
},
rules: {
"no-undef": "error",
"no-prototype-builtins": "off",
"no-console": "warn",
"import/extensions": [
"warn",
"never",
{
json: "always",
glsl: "always",
},
],
"@typescript-eslint/no-unused-vars": [
"warn",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
},
],
},
},
{
files: ["**/dist/*.d.ts", "**/dist/**/*.d.ts", "**/dist/*.d.mts", "**/dist/**/*.d.mts"],
rules: {
"import/extensions": "off",
"@typescript-eslint/no-explicit-any": "off",
},
},
];
================================================
FILE: lerna.json
================================================
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
"version": "independent",
"private": false,
"push": false,
"includeMergedTags": true
}
================================================
FILE: package.json
================================================
{
"name": "@sigma/root",
"description": "A JavaScript library aimed at visualizing graphs of thousands of nodes and edges.",
"homepage": "https://www.sigmajs.org",
"bugs": "http://github.com/jacomyal/sigma.js/issues",
"workspaces": [
"packages/*"
],
"scripts": {
"clean": "npm exec --workspaces -- npx rimraf node_modules && npx rimraf node_modules",
"build": "preconstruct build && npm run build-bundle --workspace=sigma",
"prettify": "prettier --write .",
"lint": "eslint .",
"test": "npm run test --workspace=@sigma/test",
"start": "preconstruct dev && npm run start --workspace=@sigma/storybook",
"createPackage": "ts-node bin/create-package.ts",
"postinstall": "preconstruct dev",
"postpublish": "preconstruct dev",
"website:build": "npm run build --workspace=@sigma/website && npm run build --workspace=@sigma/demo && cp -R packages/demo/build packages/website/build/demo && npm run build --workspace=@sigma/storybook && cp -R packages/storybook/storybook-static packages/website/build/storybook",
"prepublishOnly": "npm run test && npm run build && npm run lint"
},
"devDependencies": {
"@babel/core": "^7.26.0",
"@babel/preset-typescript": "^7.26.0",
"@eslint/compat": "^1.2.5",
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "^9.18.0",
"@preconstruct/cli": "^2.8.10",
"@trivago/prettier-plugin-sort-imports": "^5.2.1",
"@typescript-eslint/eslint-plugin": "^8.20.0",
"@typescript-eslint/parser": "^8.20.0",
"eslint": "^9.18.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-prettier": "^5.2.2",
"eslint-plugin-storybook": "^0.11.2",
"globals": "^15.14.0",
"lerna": "^8.1.9",
"prettier": "^3.4.2",
"rimraf": "^6.0.1",
"ts-node": "^10.9.2",
"typescript": "^5.7.3",
"typescript-eslint": "^8.20.0"
},
"preconstruct": {
"packages": [
"packages/sigma",
"packages/node-border",
"packages/node-image",
"packages/node-piechart",
"packages/node-square",
"packages/edge-curve",
"packages/layer-leaflet",
"packages/layer-maplibre",
"packages/layer-webgl",
"packages/export-image",
"packages/utils"
],
"exports": {
"importConditionDefaultExport": "default"
}
}
}
================================================
FILE: packages/demo/.gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
tsconfig.tsbuildinfo
================================================
FILE: packages/demo/README.md
================================================
# Sigma.js full-featured demo
This project aims to provide a full-features "real life" application using sigma.js. It is built using [Vite](https://vitejs.dev/), and uses [react-sigma](https://sim51.github.io/react-sigma/), to interface sigma.js with React.
## Dataset
The dataset has been kindly crafted by the [Sciences-Po médialab](https://medialab.sciencespo.fr/) and [OuestWare](https://www.ouestware.com/en/) teams using [Seealsology](https://densitydesign.github.io/strumentalia-seealsology/). It represents a network of Wikipedia pages, connected by ["See also"](https://en.wikipedia.org/wiki/See_also) links. It then was tagged by hand.
## Available Scripts
In the project directory, you can run:
### `npm start`
Runs the app in the development mode.\
Open [localhost:5173](http://localhost:5173) to view it in the browser.
The page will reload if you make edits.\
You will also see any lint errors in the console.
### `npm run build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
================================================
FILE: packages/demo/index.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#e22653" />
<meta name="description" content="A cartography of Wikipedia pages around data visualization" />
<title>A cartography of Wikipedia pages around data visualization</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>
================================================
FILE: packages/demo/package.json
================================================
{
"name": "@sigma/demo",
"private": true,
"homepage": "/demo",
"scripts": {
"start": "vite",
"build": "tsc && vite build",
"preview": "vite preview"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"dependencies": {
"@react-sigma/core": "^5.0.1",
"@sigma/node-image": ">=3.0.0",
"graphology": "^0.25.4",
"graphology-layout-forceatlas2": "^0.10.1",
"graphology-types": "^0.24.8",
"lodash": "^4.17.21",
"react": "^19.0.0",
"react-animate-height": "^3.2.3",
"react-dom": "^19.0.0",
"react-icons": "^5.4.0"
},
"peerDependencies": {
"sigma": ">=3.0.0-beta.33"
},
"devDependencies": {
"@types/lodash": "^4.17.14",
"@types/node": "^22.10.7",
"@types/react": "^19.0.7",
"@types/react-dom": "^19.0.3",
"@vitejs/plugin-react": "^4.3.4",
"typescript": "^5.7.3",
"vite": "^6.0.7",
"vite-plugin-checker": "^0.8.0",
"vite-tsconfig-paths": "^5.1.4"
}
}
================================================
FILE: packages/demo/public/dataset.json
================================================
{
"nodes": [
{
"key": "cytoscape",
"label": "Cytoscape",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Cytoscape",
"cluster": "0",
"x": 643.82275390625,
"y": -770.3126220703125,
"score": 0.00006909602204225056
},
{
"key": "microsoft excel",
"label": "Microsoft Excel",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Microsoft%20Excel",
"cluster": "1",
"x": -857.2847900390625,
"y": 602.7734375,
"score": 0.0018317394731443256
},
{
"key": "gephi",
"label": "Gephi",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Gephi",
"cluster": "0",
"x": 343.4423828125,
"y": -749.0428466796875,
"score": 0.0010242079745792347
},
{
"key": "microsoft power bi",
"label": "Microsoft Power BI",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Microsoft%20Power%20BI",
"cluster": "1",
"x": -900.3515014648438,
"y": 633.4600830078125,
"score": 0.0000049571249591405295
},
{
"key": "qlik",
"label": "Qlik",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Qlik",
"cluster": "1",
"x": -627.0659790039062,
"y": 459.9796447753906,
"score": 0
},
{
"key": "venn diagram",
"label": "Venn diagram",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Venn%20diagram",
"cluster": "3",
"x": -237.4854736328125,
"y": -1150.8712158203125,
"score": 0.007071322614031072
},
{
"key": "radar chart",
"label": "Radar chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Radar%20chart",
"cluster": "4",
"x": 330.8612365722656,
"y": 203.5203857421875,
"score": 0
},
{
"key": "flowchart",
"label": "Flowchart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Flowchart",
"cluster": "5",
"x": -476.044677734375,
"y": 692.1626586914062,
"score": 0.01584614746684067
},
{
"key": "box plot",
"label": "Box plot",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Box%20plot",
"cluster": "6",
"x": 600.8757934570312,
"y": 1116.4998779296875,
"score": 0.004182562905931715
},
{
"key": "treemap",
"label": "Treemap",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Treemap",
"cluster": "7",
"x": -47.31597137451172,
"y": 626.2732543945312,
"score": 0.00013330980758652467
},
{
"key": "line chart",
"label": "Line chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Line%20chart",
"cluster": "8",
"x": 427.3127136230469,
"y": 564.1660766601562,
"score": 0.0008676497465946685
},
{
"key": "network chart",
"label": "Network chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Network%20chart",
"cluster": "8",
"x": 128.4100341796875,
"y": 1197.5357666015625,
"score": 0
},
{
"key": "pareto chart",
"label": "Pareto chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Pareto%20chart",
"cluster": "6",
"x": 777.5546875,
"y": 850.110107421875,
"score": 0.006791135145885246
},
{
"key": "control chart",
"label": "Control chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Control%20chart",
"cluster": "10",
"x": 458.7308044433594,
"y": 1091.70458984375,
"score": 0.004527940052048223
},
{
"key": "run chart",
"label": "Run chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Run%20chart",
"cluster": "8",
"x": 231.94883728027344,
"y": 866.6333618164062,
"score": 0
},
{
"key": "scatter plot",
"label": "Scatter plot",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Scatter%20plot",
"cluster": "8",
"x": 583.4140625,
"y": 789.25634765625,
"score": 0
},
{
"key": "histogram",
"label": "Histogram",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Histogram",
"cluster": "6",
"x": 848.766357421875,
"y": 836.5435791015625,
"score": 0.00818393070072517
},
{
"key": "bar chart",
"label": "Bar chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Bar%20chart",
"cluster": "8",
"x": 534.9988403320312,
"y": 1043.3865966796875,
"score": 0.002130763205627607
},
{
"key": "table (information)",
"label": "Table (information)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Table%20%28information%29",
"cluster": "7",
"x": 26.95672035217285,
"y": 233.09812927246094,
"score": 0.00401487359118649
},
{
"key": "mosaic plot",
"label": "Mosaic plot",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Mosaic%20plot",
"cluster": "7",
"x": -216.06298828125,
"y": 647.0496826171875,
"score": 0
},
{
"key": "tree structure",
"label": "Tree structure",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Tree%20structure",
"cluster": "4",
"x": 396.307861328125,
"y": -480.81427001953125,
"score": 0.01282269554695697
},
{
"key": "topic maps",
"label": "Topic maps",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Topic%20maps",
"cluster": "11",
"x": -910.932861328125,
"y": 449.8558044433594,
"score": 0.0014923384377384381
},
{
"key": "semantic network",
"label": "Semantic network",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Semantic%20network",
"cluster": "11",
"x": -675.4869384765625,
"y": -406.92138671875,
"score": 0.02294857488492768
},
{
"key": "sociogram",
"label": "Sociogram",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Sociogram",
"cluster": "12",
"x": 484.12945556640625,
"y": -15.758939743041992,
"score": 0.004432159081664743
},
{
"key": "organizational chart",
"label": "Organizational chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Organizational%20chart",
"cluster": "12",
"x": 33.159915924072266,
"y": 330.671875,
"score": 0
},
{
"key": "object-role modeling",
"label": "Object-role modeling",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Object-role%20modeling",
"cluster": "11",
"x": -807.170654296875,
"y": -45.31650161743164,
"score": 0.009309705456285613
},
{
"key": "mind map",
"label": "Mind map",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Mind%20map",
"cluster": "13",
"x": -48.011146545410156,
"y": -285.1162109375,
"score": 0.007887202121152629
},
{
"key": "issue tree",
"label": "Issue tree",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Issue%20tree",
"cluster": "14",
"x": 265.8011779785156,
"y": 398.28131103515625,
"score": 0.001831348650231925
},
{
"key": "issue-based information system",
"label": "Issue-based information system",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Issue-based%20information%20system",
"cluster": "14",
"x": -26.45574188232422,
"y": -66.8399658203125,
"score": 0.010124206482050582
},
{
"key": "dendrogram",
"label": "Dendrogram",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Dendrogram",
"cluster": "15",
"x": 536.2782592773438,
"y": -755.9024047851562,
"score": 0.001728198449690851
},
{
"key": "graph drawing",
"label": "Graph drawing",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Graph%20drawing",
"cluster": "0",
"x": 338.7585144042969,
"y": -795.7013549804688,
"score": 0
},
{
"key": "hyperbolic tree",
"label": "Hyperbolic tree",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Hyperbolic%20tree",
"cluster": "4",
"x": 804.0816650390625,
"y": -315.2249755859375,
"score": 0.0016892239172192722
},
{
"key": "decision tree",
"label": "Decision tree",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Decision%20tree",
"cluster": "16",
"x": 77.14590454101562,
"y": -23.381113052368164,
"score": 0.024013165654432657
},
{
"key": "conceptual graph",
"label": "Conceptual graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Conceptual%20graph",
"cluster": "3",
"x": -475.8210754394531,
"y": -624.5569458007812,
"score": 0.016546673196177822
},
{
"key": "concept map",
"label": "Concept map",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Concept%20map",
"cluster": "11",
"x": -703.615478515625,
"y": -224.4598846435547,
"score": 0
},
{
"key": "cognitive map",
"label": "Cognitive map",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Cognitive%20map",
"cluster": "17",
"x": 679.1165161132812,
"y": 94.37969970703125,
"score": 0.004329984537894845
},
{
"key": "cladistics",
"label": "Cladistics",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Cladistics",
"cluster": "15",
"x": 635.1257934570312,
"y": -818.5034790039062,
"score": 0.014021129902730895
},
{
"key": "argument map",
"label": "Argument map",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Argument%20map",
"cluster": "14",
"x": -77.0009536743164,
"y": -261.25689697265625,
"score": 0.018709398747628874
},
{
"key": "argument technology",
"label": "Argument technology",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Argument%20technology",
"cluster": "14",
"x": -126.40925598144531,
"y": -357.4993591308594,
"score": 0
},
{
"key": "argumentation framework",
"label": "Argumentation framework",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Argumentation%20framework",
"cluster": "14",
"x": -161.99148559570312,
"y": -519.1444702148438,
"score": 0.0029248393536956767
},
{
"key": "argumentation scheme",
"label": "Argumentation scheme",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Argumentation%20scheme",
"cluster": "14",
"x": 252.83218383789062,
"y": 435.0225830078125,
"score": 0.0008077899689775658
},
{
"key": "bayesian network",
"label": "Bayesian network",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Bayesian%20network",
"cluster": "18",
"x": 352.8931884765625,
"y": -30.181875228881836,
"score": 0.03415176824171303
},
{
"key": "dialogue mapping",
"label": "Dialogue mapping",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Dialogue%20mapping",
"cluster": "14",
"x": 41.850669860839844,
"y": -110.37294006347656,
"score": 0.011078995724305082
},
{
"key": "flow (policy debate)",
"label": "Flow (policy debate)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Flow%20%28policy%20debate%29",
"cluster": "14",
"x": -94.31243133544922,
"y": -289.2084045410156,
"score": 0
},
{
"key": "informal fallacy",
"label": "Informal fallacy",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Informal%20fallacy",
"cluster": "14",
"x": 37.87177276611328,
"y": -339.2242736816406,
"score": 0.00018498260920536065
},
{
"key": "logic and dialectic",
"label": "Logic and dialectic",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Logic%20and%20dialectic",
"cluster": "14",
"x": -70.99295043945312,
"y": -503.11273193359375,
"score": 0.0002646249575517496
},
{
"key": "logic of argumentation",
"label": "Logic of argumentation",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Logic%20of%20argumentation",
"cluster": "14",
"x": -86.10369110107422,
"y": -496.8826599121094,
"score": 0.00020819317444045873
},
{
"key": "natural deduction",
"label": "Natural deduction",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Natural%20deduction",
"cluster": "14",
"x": -277.50994873046875,
"y": -616.25146484375,
"score": 0.0015530343269026423
},
{
"key": "practical arguments",
"label": "Practical arguments",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Practical%20arguments",
"cluster": "14",
"x": -102.90691375732422,
"y": -510.39715576171875,
"score": 0.0006441744391927475
},
{
"key": "rhetorical structure theory",
"label": "Rhetorical structure theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Rhetorical%20structure%20theory",
"cluster": "14",
"x": -254.94761657714844,
"y": -263.9010009765625,
"score": 0.0007035242527660784
},
{
"key": "semantic tableau",
"label": "Semantic tableau",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20tableau",
"cluster": "14",
"x": -224.5263214111328,
"y": -553.0567016601562,
"score": 0.00009424027510621452
},
{
"key": "bioinformatics",
"label": "Bioinformatics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Bioinformatics",
"cluster": "15",
"x": 658.8048706054688,
"y": -643.3179931640625,
"score": 0.01821204533179773
},
{
"key": "biomathematics",
"label": "Biomathematics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Biomathematics",
"cluster": "15",
"x": 828.9928588867188,
"y": -452.6299133300781,
"score": 0.005368314648936528
},
{
"key": "coalescent theory",
"label": "Coalescent theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Coalescent%20theory",
"cluster": "15",
"x": 767.1087036132812,
"y": -743.3150634765625,
"score": 0
},
{
"key": "common descent",
"label": "Common descent",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Common%20descent",
"cluster": "15",
"x": 660.1932373046875,
"y": -949.0615234375,
"score": 0.0001598866394411984
},
{
"key": "glossary of scientific naming",
"label": "Glossary of scientific naming",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Glossary%20of%20scientific%20naming",
"cluster": "15",
"x": 610.0006103515625,
"y": -932.854248046875,
"score": 0.0018040231794235473
},
{
"key": "language family",
"label": "Language family",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Language%20family",
"cluster": "19",
"x": 496.6799621582031,
"y": -1091.396240234375,
"score": 0.008996244358047963
},
{
"key": "phylogenetic network",
"label": "Phylogenetic network",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Phylogenetic%20network",
"cluster": "15",
"x": 725.3146362304688,
"y": -850.9909057617188,
"score": 0
},
{
"key": "scientific classification",
"label": "Scientific classification",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Scientific%20classification",
"cluster": "15",
"x": 519.0574340820312,
"y": -829.2457275390625,
"score": 0.003850595544769641
},
{
"key": "subclade",
"label": "Subclade",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Subclade",
"cluster": "15",
"x": 723.3982543945312,
"y": -907.066162109375,
"score": 0.00023239220950615761
},
{
"key": "systematics",
"label": "Systematics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Systematics",
"cluster": "15",
"x": 551.040771484375,
"y": -684.6061401367188,
"score": 0.007052832035228139
},
{
"key": "three-taxon analysis",
"label": "Three-taxon analysis",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Three-taxon%20analysis",
"cluster": "15",
"x": 677.3460083007812,
"y": -861.2525024414062,
"score": 0
},
{
"key": "tree model",
"label": "Tree model",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Tree%20model",
"cluster": "19",
"x": 489.556884765625,
"y": -1068.211181640625,
"score": 0.0010120088005887815
},
{
"key": "cognitive geography",
"label": "Cognitive geography",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Cognitive%20geography",
"cluster": "18",
"x": 426.025390625,
"y": 328.4589538574219,
"score": 0.0006151236604467582
},
{
"key": "fuzzy cognitive map",
"label": "Fuzzy cognitive map",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Fuzzy%20cognitive%20map",
"cluster": "17",
"x": 629.9107666015625,
"y": 129.70657348632812,
"score": 0.0007484619024323138
},
{
"key": "motion perception",
"label": "Motion perception",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Motion%20perception",
"cluster": "17",
"x": 1172.5955810546875,
"y": 275.5877380371094,
"score": 0.0032502597718893607
},
{
"key": "repertory grid",
"label": "Repertory grid",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Repertory%20grid",
"cluster": "20",
"x": -83.24153900146484,
"y": -338.01910400390625,
"score": 0.006250994475848417
},
{
"key": "alphabet of human thought",
"label": "Alphabet of human thought",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Alphabet%20of%20human%20thought",
"cluster": "11",
"x": -623.0442504882812,
"y": -486.6029968261719,
"score": 0.0015020515862330388
},
{
"key": "chunking (psychology)",
"label": "Chunking (psychology)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Chunking%20%28psychology%29",
"cluster": "21",
"x": -471.457763671875,
"y": -568.8685302734375,
"score": 0.004866983827236221
},
{
"key": "resource description framework",
"label": "Resource Description Framework",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Resource%20Description%20Framework",
"cluster": "11",
"x": -842.5576782226562,
"y": -229.8006591796875,
"score": 0.025971659653706878
},
{
"key": "sparql",
"label": "SPARQL",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/SPARQL",
"cluster": "11",
"x": -790.0882568359375,
"y": -583.29541015625,
"score": 0.0006707967423604117
},
{
"key": "abstract semantic graph",
"label": "Abstract semantic graph",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Abstract%20semantic%20graph",
"cluster": "5",
"x": -709.9312744140625,
"y": -198.11097717285156,
"score": 0.003233840402677494
},
{
"key": "cmaptools",
"label": "CmapTools",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/CmapTools",
"cluster": "11",
"x": -707.029052734375,
"y": -473.86700439453125,
"score": 0
},
{
"key": "network diagram",
"label": "Network diagram",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Network%20diagram",
"cluster": "11",
"x": -697.0083618164062,
"y": -471.2865295410156,
"score": 0
},
{
"key": "ontology (information science)",
"label": "Ontology (information science)",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Ontology%20%28information%20science%29",
"cluster": "11",
"x": -747.0429077148438,
"y": -196.23089599609375,
"score": 0.013788094782959398
},
{
"key": "semantic lexicon",
"label": "Semantic lexicon",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20lexicon",
"cluster": "11",
"x": -617.2353515625,
"y": -375.40704345703125,
"score": 0.00026242067012252217
},
{
"key": "semantic similarity network",
"label": "Semantic similarity network",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20similarity%20network",
"cluster": "11",
"x": -562.7909545898438,
"y": -468.2868347167969,
"score": 0
},
{
"key": "semantic neural network",
"label": "Semantic neural network",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20neural%20network",
"cluster": "11",
"x": -717.395751953125,
"y": -470.8447570800781,
"score": 0
},
{
"key": "semeval",
"label": "SemEval",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/SemEval",
"cluster": "11",
"x": -865.1612548828125,
"y": -296.4136047363281,
"score": 0.0005222645900929032
},
{
"key": "semantic analysis (computational)",
"label": "Semantic analysis (computational)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20analysis%20%28computational%29",
"cluster": "11",
"x": -791.0706787109375,
"y": -238.4806365966797,
"score": 0.0009648148717646707
},
{
"key": "sparse distributed memory",
"label": "Sparse distributed memory",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Sparse%20distributed%20memory",
"cluster": "18",
"x": -55.231285095214844,
"y": -355.26177978515625,
"score": 0
},
{
"key": "taxonomy (general)",
"label": "Taxonomy (general)",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Taxonomy%20%28general%29",
"cluster": "11",
"x": -286.0745849609375,
"y": -460.0727233886719,
"score": 0.01849228078475779
},
{
"key": "unified medical language system",
"label": "Unified Medical Language System",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Unified%20Medical%20Language%20System",
"cluster": "22",
"x": -565.118408203125,
"y": -576.4724731445312,
"score": 0.00034029327622420733
},
{
"key": "cognition network technology",
"label": "Cognition Network Technology",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Cognition%20Network%20Technology",
"cluster": "11",
"x": -701.9165649414062,
"y": -460.1814880371094,
"score": 0
},
{
"key": "lexipedia",
"label": "Lexipedia",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Lexipedia",
"cluster": "11",
"x": -711.7052001953125,
"y": -460.4881591796875,
"score": 0
},
{
"key": "opencog",
"label": "OpenCog",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/OpenCog",
"cluster": "11",
"x": -715.8640747070312,
"y": -493.5049133300781,
"score": 0.0008456220201094614
},
{
"key": "open mind common sense",
"label": "Open Mind Common Sense",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Open%20Mind%20Common%20Sense",
"cluster": "11",
"x": -924.6856689453125,
"y": -355.55181884765625,
"score": 0.0023321444317702077
},
{
"key": "schema.org",
"label": "Schema.org",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Schema.org",
"cluster": "11",
"x": -846.623046875,
"y": -197.66310119628906,
"score": 0
},
{
"key": "snomed ct",
"label": "SNOMED CT",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/SNOMED%20CT",
"cluster": "22",
"x": -515.9702758789062,
"y": -649.560546875,
"score": 0.003600203402059478
},
{
"key": "universal networking language",
"label": "Universal Networking Language",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Universal%20Networking%20Language",
"cluster": "11",
"x": -829.3536987304688,
"y": -278.9306335449219,
"score": 0.002090073039330873
},
{
"key": "wikidata",
"label": "Wikidata",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Wikidata",
"cluster": "11",
"x": -855.0623168945312,
"y": -398.7132263183594,
"score": 0.0017145817111678021
},
{
"key": "freebase (database)",
"label": "Freebase (database)",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Freebase%20%28database%29",
"cluster": "11",
"x": -929.4356689453125,
"y": -396.67376708984375,
"score": 0.0038487242945481562
},
{
"key": "sparql query results xml format",
"label": "SPARQL Query Results XML Format",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/SPARQL%20Query%20Results%20XML%20Format",
"cluster": "11",
"x": -840.5682373046875,
"y": -626.5060424804688,
"score": 0
},
{
"key": "rdfa",
"label": "RDFa",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/RDFa",
"cluster": "21",
"x": -842.9970092773438,
"y": 133.79840087890625,
"score": 0.0003232369320399352
},
{
"key": "json-ld",
"label": "JSON-LD",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/JSON-LD",
"cluster": "11",
"x": -924.232666015625,
"y": -262.08056640625,
"score": 0
},
{
"key": "notation3",
"label": "Notation3",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Notation3",
"cluster": "11",
"x": -918.1101684570312,
"y": -268.0645751953125,
"score": 0
},
{
"key": "entity–attribute–value model",
"label": "Entity–attribute–value model",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value%20model",
"cluster": "11",
"x": -1004.7867431640625,
"y": -56.98497009277344,
"score": 0.0004002538527626173
},
{
"key": "graph theory",
"label": "Graph theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Graph%20theory",
"cluster": "0",
"x": 144.78919982910156,
"y": -839.4916381835938,
"score": 0.026377687709942383
},
{
"key": "tag (metadata)",
"label": "Tag (metadata)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Tag%20%28metadata%29",
"cluster": "11",
"x": -632.1871948242188,
"y": -86.4168930053711,
"score": 0.004148488943511288
},
{
"key": "scicrunch",
"label": "SciCrunch",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/SciCrunch",
"cluster": "11",
"x": -871.8386840820312,
"y": -213.283203125,
"score": 0.000095803398040257
},
{
"key": "semantic technology",
"label": "Semantic technology",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Semantic%20technology",
"cluster": "11",
"x": -894.3898315429688,
"y": -162.6959991455078,
"score": 0.0061972116669557825
},
{
"key": "associative model of data",
"label": "Associative model of data",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Associative%20model%20of%20data",
"cluster": "11",
"x": -972.6192016601562,
"y": 155.2799072265625,
"score": 0.0009083069994413123
},
{
"key": "business intelligence 2.0",
"label": "Business Intelligence 2.0",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Business%20Intelligence%202.0",
"cluster": "11",
"x": -725.814453125,
"y": 78.32054901123047,
"score": 0.0023852623482935394
},
{
"key": "data portability",
"label": "Data portability",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Data%20portability",
"cluster": "11",
"x": -932.8716430664062,
"y": -266.43719482421875,
"score": 0
},
{
"key": "folksonomy",
"label": "Folksonomy",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Folksonomy",
"cluster": "11",
"x": -430.01275634765625,
"y": -253.80511474609375,
"score": 0.00903214155183702
},
{
"key": "lsid",
"label": "LSID",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/LSID",
"cluster": "11",
"x": -893.6924438476562,
"y": -213.79568481445312,
"score": 0.0004353327368013828
},
{
"key": "swoogle",
"label": "Swoogle",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Swoogle",
"cluster": "11",
"x": -951.0037231445312,
"y": -201.06761169433594,
"score": 0.0002597811302235445
},
{
"key": "void",
"label": "VoID",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/VoID",
"cluster": "11",
"x": -971.4874267578125,
"y": -182.17935180664062,
"score": 0
},
{
"key": "language acquisition",
"label": "Language acquisition",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Language%20acquisition",
"cluster": "19",
"x": -0.9998851418495178,
"y": -882.901123046875,
"score": 0.0004615138730214264
},
{
"key": "flow (psychology)",
"label": "Flow (psychology)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Flow%20%28psychology%29",
"cluster": "21",
"x": -38.28602600097656,
"y": -17.09149169921875,
"score": 0.00029537892476822977
},
{
"key": "forgetting curve",
"label": "Forgetting curve",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Forgetting%20curve",
"cluster": "21",
"x": -427.970703125,
"y": -414.4608459472656,
"score": 0
},
{
"key": "generalization (learning)",
"label": "Generalization (learning)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Generalization%20%28learning%29",
"cluster": "21",
"x": -500.75921630859375,
"y": -610.4454956054688,
"score": 0
},
{
"key": "knowledge representation and reasoning",
"label": "Knowledge representation and reasoning",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Knowledge%20representation%20and%20reasoning",
"cluster": "21",
"x": -476.34344482421875,
"y": -422.58416748046875,
"score": 0.00818075440257721
},
{
"key": "memory",
"label": "Memory",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Memory",
"cluster": "21",
"x": -550.5669555664062,
"y": -611.5762939453125,
"score": 0.0000922964714159353
},
{
"key": "merge (linguistics)",
"label": "Merge (linguistics)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Merge%20%28linguistics%29",
"cluster": "21",
"x": -504.92333984375,
"y": -601.8806762695312,
"score": 0
},
{
"key": "method of loci",
"label": "Method of loci",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Method%20of%20loci",
"cluster": "21",
"x": -573.13427734375,
"y": -661.1122436523438,
"score": 0
},
{
"key": "mnemonic",
"label": "Mnemonic",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Mnemonic",
"cluster": "21",
"x": -589.94140625,
"y": -681.6317749023438,
"score": 0.00007913403771406845
},
{
"key": "algebraic logic",
"label": "Algebraic logic",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Algebraic%20logic",
"cluster": "3",
"x": -700.435546875,
"y": -795.292724609375,
"score": 0.00016231446702861122
},
{
"key": "language of thought hypothesis",
"label": "Language of thought hypothesis",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Language%20of%20thought%20hypothesis",
"cluster": "19",
"x": -295.2800598144531,
"y": -771.2247314453125,
"score": 0.0002577585913602634
},
{
"key": "natural semantic metalanguage",
"label": "Natural semantic metalanguage",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Natural%20semantic%20metalanguage",
"cluster": "11",
"x": -647.8865356445312,
"y": -346.5642395019531,
"score": 0.0015117620751910312
},
{
"key": "philosophical language",
"label": "Philosophical language",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Philosophical%20language",
"cluster": "11",
"x": -574.2839965820312,
"y": -493.2090148925781,
"score": 0.0004692635330238385
},
{
"key": "upper ontology",
"label": "Upper ontology",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Upper%20ontology",
"cluster": "11",
"x": -674.0167846679688,
"y": -239.4491424560547,
"score": 0.0027976343609007206
},
{
"key": "authority control",
"label": "Authority control",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Authority%20control",
"cluster": "11",
"x": -822.5309448242188,
"y": -127.29187774658203,
"score": 0
},
{
"key": "formal ontology",
"label": "Formal ontology",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Formal%20ontology",
"cluster": "11",
"x": -726.9469604492188,
"y": -293.3465881347656,
"score": 0.0001625247713546905
},
{
"key": "library classification",
"label": "Library classification",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Library%20classification",
"cluster": "15",
"x": -308.6916198730469,
"y": -442.2139587402344,
"score": 0
},
{
"key": "process ontology",
"label": "Process ontology",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Process%20ontology",
"cluster": "11",
"x": -402.7458801269531,
"y": 171.14451599121094,
"score": 0
},
{
"key": "semantic interoperability",
"label": "Semantic interoperability",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Semantic%20interoperability",
"cluster": "11",
"x": -914.43359375,
"y": 77.43998718261719,
"score": 0.002211746710645076
},
{
"key": "metalanguage",
"label": "Metalanguage",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Metalanguage",
"cluster": "11",
"x": -498.27093505859375,
"y": -361.5093994140625,
"score": 0.0004533172352591103
},
{
"key": "universal grammar",
"label": "Universal grammar",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Universal%20grammar",
"cluster": "19",
"x": 7.053833484649658,
"y": -930.2678833007812,
"score": 0
},
{
"key": "world view",
"label": "World view",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/World%20view",
"cluster": "19",
"x": -218.56655883789062,
"y": -771.2120971679688,
"score": 0
},
{
"key": "boolean algebra",
"label": "Boolean algebra",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Boolean%20algebra",
"cluster": "3",
"x": -649.5697631835938,
"y": -993.843994140625,
"score": 0
},
{
"key": "codd's theorem",
"label": "Codd's theorem",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Codd%27s%20theorem",
"cluster": "3",
"x": -752.46630859375,
"y": -735.5181274414062,
"score": 0
},
{
"key": "mnemonic major system",
"label": "Mnemonic major system",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Mnemonic%20major%20system",
"cluster": "21",
"x": -613.9334106445312,
"y": -693.0994262695312,
"score": 0
},
{
"key": "belief revision",
"label": "Belief revision",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Belief%20revision",
"cluster": "21",
"x": -320.6951904296875,
"y": -377.97650146484375,
"score": 0
},
{
"key": "commonsense knowledge base",
"label": "Commonsense knowledge base",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Commonsense%20knowledge%20base",
"cluster": "21",
"x": -493.8531188964844,
"y": -445.00018310546875,
"score": 0
},
{
"key": "datr",
"label": "DATR",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/DATR",
"cluster": "21",
"x": -495.4014587402344,
"y": -456.7448425292969,
"score": 0
},
{
"key": "logico-linguistic modeling",
"label": "Logico-linguistic modeling",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Logico-linguistic%20modeling",
"cluster": "21",
"x": -484.49884033203125,
"y": -453.5343322753906,
"score": 0
},
{
"key": "personal knowledge base",
"label": "Personal knowledge base",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Personal%20knowledge%20base",
"cluster": "14",
"x": -284.18359375,
"y": -120.49275970458984,
"score": 0.015741458409185748
},
{
"key": "knowledge graph",
"label": "Knowledge graph",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Knowledge%20graph",
"cluster": "11",
"x": -759.041259765625,
"y": -285.4691162109375,
"score": 0.00037975842884294196
},
{
"key": "knowledge management",
"label": "Knowledge management",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Knowledge%20management",
"cluster": "21",
"x": -388.5101623535156,
"y": 30.686166763305664,
"score": 0.008861628698140528
},
{
"key": "valuation-based system",
"label": "Valuation-based system",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Valuation-based%20system",
"cluster": "21",
"x": -503.8725280761719,
"y": -448.6062927246094,
"score": 0
},
{
"key": "imagination",
"label": "Imagination",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Imagination",
"cluster": "21",
"x": 71.3614273071289,
"y": -137.79916381835938,
"score": 0
},
{
"key": "ovsiankina effect",
"label": "Ovsiankina effect",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Ovsiankina%20effect",
"cluster": "21",
"x": 74.63014221191406,
"y": 505.1304931640625,
"score": 0
},
{
"key": "wu wei",
"label": "Wu wei",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Wu%20wei",
"cluster": "21",
"x": 170.06521606445312,
"y": 127.3057632446289,
"score": 0
},
{
"key": "evolutionary linguistics",
"label": "Evolutionary linguistics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Evolutionary%20linguistics",
"cluster": "19",
"x": 302.83514404296875,
"y": -1021.9174194335938,
"score": 0.00011517517628958691
},
{
"key": "evolutionary psychology of language",
"label": "Evolutionary psychology of language",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Evolutionary%20psychology%20of%20language",
"cluster": "19",
"x": 204.8646240234375,
"y": -1000.9155883789062,
"score": 0
},
{
"key": "foxp2",
"label": "FOXP2",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/FOXP2",
"cluster": "19",
"x": 178.49044799804688,
"y": -941.7884521484375,
"score": 0
},
{
"key": "origin of language",
"label": "Origin of language",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Origin%20of%20language",
"cluster": "19",
"x": 288.3348083496094,
"y": -943.5899658203125,
"score": 0.0007183779982126437
},
{
"key": "semantic translation",
"label": "Semantic translation",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20translation",
"cluster": "11",
"x": -1023.00537109375,
"y": -21.59303092956543,
"score": 0.000517135176520443
},
{
"key": "semantic unification",
"label": "Semantic unification",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20unification",
"cluster": "11",
"x": -1086.5980224609375,
"y": -89.59039306640625,
"score": 0.0007015673678323802
},
{
"key": "ontology (computer science)",
"label": "Ontology (computer science)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Ontology%20%28computer%20science%29",
"cluster": "11",
"x": -773.9939575195312,
"y": -175.59030151367188,
"score": 0.006193785807766692
},
{
"key": "darpa agent markup language",
"label": "DARPA Agent Markup Language",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/DARPA%20Agent%20Markup%20Language",
"cluster": "11",
"x": -1019.974365234375,
"y": -350.868408203125,
"score": 0
},
{
"key": "web ontology language",
"label": "Web Ontology Language",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Web%20Ontology%20Language",
"cluster": "11",
"x": -911.4971923828125,
"y": -28.525930404663086,
"score": 0.004396283897128895
},
{
"key": "semantic web",
"label": "Semantic Web",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Semantic%20Web",
"cluster": "11",
"x": -925.17236328125,
"y": -117.87979888916016,
"score": 0.015146260330629708
},
{
"key": "collective intelligence",
"label": "Collective intelligence",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Collective%20intelligence",
"cluster": "20",
"x": -165.6166534423828,
"y": -142.6343536376953,
"score": 0
},
{
"key": "enterprise bookmarking",
"label": "Enterprise bookmarking",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Enterprise%20bookmarking",
"cluster": "23",
"x": -432.62164306640625,
"y": -111.2158432006836,
"score": 0.005025707901539079
},
{
"key": "faceted classification",
"label": "Faceted classification",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Faceted%20classification",
"cluster": "11",
"x": -331.2969055175781,
"y": 48.29027557373047,
"score": 0
},
{
"key": "hierarchical clustering",
"label": "Hierarchical clustering",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Hierarchical%20clustering",
"cluster": "4",
"x": 580.143310546875,
"y": -513.3453979492188,
"score": 0.02034966284199348
},
{
"key": "semantic similarity",
"label": "Semantic similarity",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20similarity",
"cluster": "11",
"x": -568.1552124023438,
"y": -92.3887710571289,
"score": 0
},
{
"key": "thesaurus",
"label": "Thesaurus",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Thesaurus",
"cluster": "11",
"x": -460.56292724609375,
"y": -234.09898376464844,
"score": 0
},
{
"key": "weak ontology",
"label": "Weak ontology",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Weak%20ontology",
"cluster": "11",
"x": -659.6484375,
"y": -230.6053009033203,
"score": 0
},
{
"key": "linked data",
"label": "Linked Data",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Linked%20Data",
"cluster": "11",
"x": -950.0712280273438,
"y": -90.6455078125,
"score": 0.0004654952256748535
},
{
"key": "ontology alignment",
"label": "Ontology alignment",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Ontology%20alignment",
"cluster": "11",
"x": -1023.9115600585938,
"y": -82.35829162597656,
"score": 0.0013050311543932555
},
{
"key": "relationship extraction",
"label": "Relationship extraction",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Relationship%20extraction",
"cluster": "11",
"x": -647.7926635742188,
"y": 108.23262786865234,
"score": 0
},
{
"key": "semantic grid",
"label": "Semantic grid",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20grid",
"cluster": "11",
"x": -768.1111450195312,
"y": -74.05943298339844,
"score": 0.0002438726619144268
},
{
"key": "semantic web rule language",
"label": "Semantic Web Rule Language",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20Web%20Rule%20Language",
"cluster": "11",
"x": -653.3441772460938,
"y": -174.26751708984375,
"score": 0
},
{
"key": "spreadmart",
"label": "Spreadmart",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Spreadmart",
"cluster": "11",
"x": -846.5366821289062,
"y": 372.75830078125,
"score": 0
},
{
"key": "triplestore",
"label": "Triplestore",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Triplestore",
"cluster": "11",
"x": -1059.2547607421875,
"y": 58.725223541259766,
"score": 0
},
{
"key": "attribute-value system",
"label": "Attribute-value system",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Attribute-value%20system",
"cluster": "11",
"x": -941.8338623046875,
"y": 250.4564666748047,
"score": 0
},
{
"key": "metadata",
"label": "Metadata",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Metadata",
"cluster": "11",
"x": -877.3441772460938,
"y": 118.20881652832031,
"score": 0
},
{
"key": "semantic heterogeneity",
"label": "Semantic heterogeneity",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Semantic%20heterogeneity",
"cluster": "11",
"x": -1062.4501953125,
"y": -47.555110931396484,
"score": 0
},
{
"key": "semantic integration",
"label": "Semantic integration",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20integration",
"cluster": "11",
"x": -1055.708984375,
"y": -21.736474990844727,
"score": 0.003061842742018204
},
{
"key": "semantic matching",
"label": "Semantic matching",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Semantic%20matching",
"cluster": "11",
"x": -1014.1257934570312,
"y": -146.5421600341797,
"score": 0
},
{
"key": "expert system",
"label": "Expert system",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Expert%20system",
"cluster": "21",
"x": -619.6608276367188,
"y": -162.21267700195312,
"score": 0
},
{
"key": "human–computer interaction",
"label": "Human–computer interaction",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Human%E2%80%93computer%20interaction",
"cluster": "11",
"x": -593.35302734375,
"y": -0.813096284866333,
"score": 0
},
{
"key": "knowledge transfer",
"label": "Knowledge transfer",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Knowledge%20transfer",
"cluster": "21",
"x": -545.2042236328125,
"y": -27.003341674804688,
"score": 0
},
{
"key": "management information system",
"label": "Management information system",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Management%20information%20system",
"cluster": "7",
"x": -412.3898010253906,
"y": 380.8659973144531,
"score": 0.0070447599877772145
},
{
"key": "subject indexing",
"label": "Subject indexing",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Subject%20indexing",
"cluster": "11",
"x": -654.24462890625,
"y": -141.134521484375,
"score": 0
},
{
"key": "gallery of named graphs",
"label": "Gallery of named graphs",
"tag": "List",
"URL": "https://en.wikipedia.org/wiki/Gallery%20of%20named%20graphs",
"cluster": "0",
"x": 218.6732635498047,
"y": -734.7560424804688,
"score": 0
},
{
"key": "glossary of graph theory",
"label": "Glossary of graph theory",
"tag": "List",
"URL": "https://en.wikipedia.org/wiki/Glossary%20of%20graph%20theory",
"cluster": "0",
"x": 388.5685729980469,
"y": -655.8279418945312,
"score": 0.0003438702405837157
},
{
"key": "algebraic graph theory",
"label": "Algebraic graph theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Algebraic%20graph%20theory",
"cluster": "0",
"x": 228.02835083007812,
"y": -988.830810546875,
"score": 0.00008165350056458872
},
{
"key": "citation graph",
"label": "Citation graph",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Citation%20graph",
"cluster": "0",
"x": -84.32083892822266,
"y": -137.9530029296875,
"score": 0.00008819636926134623
},
{
"key": "data structure",
"label": "Data structure",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Data%20structure",
"cluster": "4",
"x": 95.36343383789062,
"y": -340.4019470214844,
"score": 0.0015348531672156373
},
{
"key": "dual-phase evolution",
"label": "Dual-phase evolution",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Dual-phase%20evolution",
"cluster": "23",
"x": 557.9822387695312,
"y": -229.10963439941406,
"score": 0
},
{
"key": "entitative graph",
"label": "Entitative graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Entitative%20graph",
"cluster": "3",
"x": -356.9773864746094,
"y": -963.9048461914062,
"score": 0.0005571481305572723
},
{
"key": "existential graph",
"label": "Existential graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Existential%20graph",
"cluster": "3",
"x": -330.99444580078125,
"y": -996.155517578125,
"score": 0.0027082286245061838
},
{
"key": "graph algebra",
"label": "Graph algebra",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Graph%20algebra",
"cluster": "0",
"x": 148.67645263671875,
"y": -901.763671875,
"score": 0
},
{
"key": "graph automorphism",
"label": "Graph automorphism",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Graph%20automorphism",
"cluster": "0",
"x": 193.9133758544922,
"y": -970.962158203125,
"score": 0
},
{
"key": "graph coloring",
"label": "Graph coloring",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Graph%20coloring",
"cluster": "0",
"x": 122.90592193603516,
"y": -920.8076171875,
"score": 0
},
{
"key": "graph database",
"label": "Graph database",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Graph%20database",
"cluster": "7",
"x": -246.09805297851562,
"y": -663.9519653320312,
"score": 0.00028836496421552214
},
{
"key": "graph (data structure)",
"label": "Graph (data structure)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Graph%20%28data%20structure%29",
"cluster": "0",
"x": 8.46218204498291,
"y": -760.5272216796875,
"score": 0.00012777254849138906
},
{
"key": "graph rewriting",
"label": "Graph rewriting",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Graph%20rewriting",
"cluster": "5",
"x": -142.51065063476562,
"y": -547.5338745117188,
"score": 0.004048981217291292
},
{
"key": "graph property",
"label": "Graph property",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Graph%20property",
"cluster": "0",
"x": 199.94528198242188,
"y": -964.14501953125,
"score": 0
},
{
"key": "intersection graph",
"label": "Intersection graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Intersection%20graph",
"cluster": "0",
"x": 141.39031982421875,
"y": -908.7203979492188,
"score": 0
},
{
"key": "knight's tour",
"label": "Knight's Tour",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Knight%27s%20Tour",
"cluster": "0",
"x": 147.06390380859375,
"y": -916.5116577148438,
"score": 0
},
{
"key": "logical graph",
"label": "Logical graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Logical%20graph",
"cluster": "3",
"x": -333.1943664550781,
"y": -1014.9374389648438,
"score": 0.008395215526123193
},
{
"key": "loop (graph theory)",
"label": "Loop (graph theory)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Loop%20%28graph%20theory%29",
"cluster": "0",
"x": 230.75820922851562,
"y": -801.9268188476562,
"score": 0.00007999418160411841
},
{
"key": "network theory",
"label": "Network theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Network%20theory",
"cluster": "23",
"x": 565.5464477539062,
"y": -313.09527587890625,
"score": 0.005150786057953524
},
{
"key": "null graph",
"label": "Null graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Null%20graph",
"cluster": "0",
"x": 277.75640869140625,
"y": -790.2318115234375,
"score": 0
},
{
"key": "percolation",
"label": "Percolation",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Percolation",
"cluster": "23",
"x": 555.105224609375,
"y": -269.66583251953125,
"score": 0.0002635149024042669
},
{
"key": "quantum graph",
"label": "Quantum graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Quantum%20graph",
"cluster": "0",
"x": 143.5575408935547,
"y": -929.2946166992188,
"score": 0
},
{
"key": "semantic networks",
"label": "Semantic networks",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Semantic%20networks",
"cluster": "11",
"x": -645.2720336914062,
"y": -433.6141662597656,
"score": 0.0031743495756569487
},
{
"key": "spectral graph theory",
"label": "Spectral graph theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Spectral%20graph%20theory",
"cluster": "0",
"x": 247.72479248046875,
"y": -955.4554443359375,
"score": 0.00011326443053580646
},
{
"key": "strongly regular graph",
"label": "Strongly regular graph",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Strongly%20regular%20graph",
"cluster": "0",
"x": 211.5841522216797,
"y": -944.821533203125,
"score": 0
},
{
"key": "symmetric graph",
"label": "Symmetric graph",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Symmetric%20graph",
"cluster": "0",
"x": 215.30694580078125,
"y": -899.9691772460938,
"score": 0
},
{
"key": "transitive reduction",
"label": "Transitive reduction",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Transitive%20reduction",
"cluster": "4",
"x": 223.14500427246094,
"y": -848.6118774414062,
"score": 0
},
{
"key": "tree (data structure)",
"label": "Tree (data structure)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Tree%20%28data%20structure%29",
"cluster": "4",
"x": 375.03179931640625,
"y": -554.2734375,
"score": 0.007480545127913062
},
{
"key": "bellman–ford algorithm",
"label": "Bellman–Ford algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford%20algorithm",
"cluster": "0",
"x": 136.70851135253906,
"y": -980.599853515625,
"score": 0
},
{
"key": "borůvka's algorithm",
"label": "Borůvka's algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Bor%C5%AFvka%27s%20algorithm",
"cluster": "0",
"x": 149.03213500976562,
"y": -973.4923706054688,
"score": 0
},
{
"key": "breadth-first search",
"label": "Breadth-first search",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Breadth-first%20search",
"cluster": "0",
"x": 151.68226623535156,
"y": -1090.56982421875,
"score": 0.00007913403771406845
},
{
"key": "depth-first search",
"label": "Depth-first search",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Depth-first%20search",
"cluster": "0",
"x": 142.94589233398438,
"y": -1087.94091796875,
"score": 0.00007913403771406845
},
{
"key": "dijkstra's algorithm",
"label": "Dijkstra's algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Dijkstra%27s%20algorithm",
"cluster": "0",
"x": 144.21620178222656,
"y": -1013.4470825195312,
"score": 9.161683092800978e-7
},
{
"key": "edmonds–karp algorithm",
"label": "Edmonds–Karp algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp%20algorithm",
"cluster": "0",
"x": 197.15943908691406,
"y": -885.60693359375,
"score": 0
},
{
"key": "floyd–warshall algorithm",
"label": "Floyd–Warshall algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall%20algorithm",
"cluster": "0",
"x": 138.6576385498047,
"y": -989.224853515625,
"score": 0
},
{
"key": "ford–fulkerson algorithm",
"label": "Ford–Fulkerson algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Ford%E2%80%93Fulkerson%20algorithm",
"cluster": "0",
"x": 296.34466552734375,
"y": -775.94775390625,
"score": 0
},
{
"key": "hopcroft–karp algorithm",
"label": "Hopcroft–Karp algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Hopcroft%E2%80%93Karp%20algorithm",
"cluster": "0",
"x": 208.3922576904297,
"y": -836.5798950195312,
"score": 0.0000621063952801626
},
{
"key": "hungarian algorithm",
"label": "Hungarian algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Hungarian%20algorithm",
"cluster": "0",
"x": 189.7929229736328,
"y": -892.115478515625,
"score": 0
},
{
"key": "kruskal's algorithm",
"label": "Kruskal's algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Kruskal%27s%20algorithm",
"cluster": "0",
"x": 152.76881408691406,
"y": -1001.6660766601562,
"score": 0
},
{
"key": "prim's algorithm",
"label": "Prim's algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Prim%27s%20algorithm",
"cluster": "0",
"x": 170.48452758789062,
"y": -975.9755249023438,
"score": 0.00011980710267787669
},
{
"key": "tarjan's strongly connected components algorithm",
"label": "Tarjan's strongly connected components algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Tarjan%27s%20strongly%20connected%20components%20algorithm",
"cluster": "0",
"x": 125.54205322265625,
"y": -954.9275512695312,
"score": 0
},
{
"key": "topological sorting",
"label": "Topological sorting",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Topological%20sorting",
"cluster": "0",
"x": 117.33892059326172,
"y": -954.7590942382812,
"score": 0
},
{
"key": "geometric graph theory",
"label": "Geometric graph theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Geometric%20graph%20theory",
"cluster": "0",
"x": 296.9145812988281,
"y": -852.4370727539062,
"score": 0.00006717518939355758
},
{
"key": "extremal graph theory",
"label": "Extremal graph theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Extremal%20graph%20theory",
"cluster": "0",
"x": 119.41769409179688,
"y": -1018.818603515625,
"score": 0
},
{
"key": "random graph",
"label": "Random graph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Random%20graph",
"cluster": "23",
"x": 568.1471557617188,
"y": -360.8318786621094,
"score": 0.005327292784487605
},
{
"key": "topological graph theory",
"label": "Topological graph theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Topological%20graph%20theory",
"cluster": "0",
"x": 218.49147033691406,
"y": -1016.6495361328125,
"score": 0.00008247693968146494
},
{
"key": "combinatorics",
"label": "Combinatorics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Combinatorics",
"cluster": "15",
"x": 435.55230712890625,
"y": -850.6735229492188,
"score": 0.0008953729515199642
},
{
"key": "group theory",
"label": "Group theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Group%20theory",
"cluster": "0",
"x": 163.24407958984375,
"y": -918.5950927734375,
"score": 0
},
{
"key": "knot theory",
"label": "Knot theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Knot%20theory",
"cluster": "0",
"x": 61.89107894897461,
"y": -1084.978759765625,
"score": 0
},
{
"key": "ramsey theory",
"label": "Ramsey theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Ramsey%20theory",
"cluster": "0",
"x": 114.66838073730469,
"y": -1012.0784912109375,
"score": 0
},
{
"key": "hypergraph",
"label": "Hypergraph",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Hypergraph",
"cluster": "3",
"x": -34.0966796875,
"y": -700.4102172851562,
"score": 0.0023015537747276466
},
{
"key": "abstract simplicial complex",
"label": "Abstract simplicial complex",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Abstract%20simplicial%20complex",
"cluster": "0",
"x": 139.17201232910156,
"y": -922.0830688476562,
"score": 0
},
{
"key": "noga alon",
"label": "Noga Alon",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Noga%20Alon",
"cluster": "0",
"x": 155.56820678710938,
"y": -910.853515625,
"score": 0
},
{
"key": "john adrian bondy",
"label": "John Adrian Bondy",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/John%20Adrian%20Bondy",
"cluster": "0",
"x": 160.35073852539062,
"y": -903.3408813476562,
"score": 0
},
{
"key": "gabriel andrew dirac",
"label": "Gabriel Andrew Dirac",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Gabriel%20Andrew%20Dirac",
"cluster": "0",
"x": 126.69784545898438,
"y": -906.927734375,
"score": 0
},
{
"key": "paul erdős",
"label": "Paul Erdős",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Paul%20Erd%C5%91s",
"cluster": "0",
"x": 128.62188720703125,
"y": -928.2205810546875,
"score": 0
},
{
"key": "percy john heawood",
"label": "Percy John Heawood",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Percy%20John%20Heawood",
"cluster": "0",
"x": 132.42514038085938,
"y": -915.6151733398438,
"score": 0
},
{
"key": "anton kotzig",
"label": "Anton Kotzig",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Anton%20Kotzig",
"cluster": "0",
"x": 134.90591430664062,
"y": -901.9312133789062,
"score": 0
},
{
"key": "dénes kőnig",
"label": "Dénes Kőnig",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/D%C3%A9nes%20K%C5%91nig",
"cluster": "0",
"x": 153.53500366210938,
"y": -923.6826171875,
"score": 0
},
{
"key": "lászló lovász",
"label": "László Lovász",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/L%C3%A1szl%C3%B3%20Lov%C3%A1sz",
"cluster": "0",
"x": 122.37181854248047,
"y": -987.25,
"score": 0.000124302219858327
},
{
"key": "paul seymour (mathematician)",
"label": "Paul Seymour (mathematician)",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Paul%20Seymour%20%28mathematician%29",
"cluster": "0",
"x": 119.23326110839844,
"y": -912.132568359375,
"score": 0
},
{
"key": "w. t. tutte",
"label": "W. T. Tutte",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/W.%20T.%20Tutte",
"cluster": "4",
"x": 604.9615478515625,
"y": -694.9256591796875,
"score": 0.00010984090169089748
},
{
"key": "hassler whitney",
"label": "Hassler Whitney",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Hassler%20Whitney",
"cluster": "0",
"x": 169.03988647460938,
"y": -909.9524536132812,
"score": 0
},
{
"key": "slowly changing dimension",
"label": "Slowly changing dimension",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Slowly%20changing%20dimension",
"cluster": "11",
"x": -1162.8721923828125,
"y": 46.6432991027832,
"score": 0
},
{
"key": "microformat",
"label": "Microformat",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Microformat",
"cluster": "21",
"x": -786.9326782226562,
"y": 236.78131103515625,
"score": 0
},
{
"key": "microdata (html)",
"label": "Microdata (HTML)",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Microdata%20%28HTML%29",
"cluster": "21",
"x": -788.9451293945312,
"y": 227.4476776123047,
"score": 0
},
{
"key": "xml",
"label": "XML",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/XML",
"cluster": "5",
"x": -812.0134887695312,
"y": 514.8312377929688,
"score": 0
},
{
"key": "babelnet",
"label": "BabelNet",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/BabelNet",
"cluster": "11",
"x": -944.9154052734375,
"y": -368.1926574707031,
"score": 0.002164478246721345
},
{
"key": "dbpedia",
"label": "DBpedia",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/DBpedia",
"cluster": "11",
"x": -968.5007934570312,
"y": -368.9994812011719,
"score": 0.00021646377368071811
},
{
"key": "semantic mediawiki",
"label": "Semantic MediaWiki",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Semantic%20MediaWiki",
"cluster": "11",
"x": -912.4962768554688,
"y": -328.338623046875,
"score": 0.0006947545325407717
},
{
"key": "cyc",
"label": "Cyc",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Cyc",
"cluster": "11",
"x": -954.6949462890625,
"y": -454.6947021484375,
"score": 0.003306565356892153
},
{
"key": "entity–relationship model",
"label": "Entity–relationship model",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Entity%E2%80%93relationship%20model",
"cluster": "11",
"x": -944.5690307617188,
"y": 23.748191833496094,
"score": 0.0028532348742788646
},
{
"key": "true knowledge",
"label": "True Knowledge",
"tag": "Company",
"URL": "https://en.wikipedia.org/wiki/True%20Knowledge",
"cluster": "11",
"x": -995.8724975585938,
"y": -471.5167541503906,
"score": 0.000028272045598960805
},
{
"key": "yago (database)",
"label": "YAGO (database)",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/YAGO%20%28database%29",
"cluster": "11",
"x": -893.7944946289062,
"y": -382.844482421875,
"score": 0.0005575594191295055
},
{
"key": "knowledge vault",
"label": "Knowledge Vault",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Knowledge%20Vault",
"cluster": "11",
"x": -936.792236328125,
"y": -298.59075927734375,
"score": 0.00031094409765345505
},
{
"key": "clinical data interchange standards consortium",
"label": "Clinical Data Interchange Standards Consortium",
"tag": "Organization",
"URL": "https://en.wikipedia.org/wiki/Clinical%20Data%20Interchange%20Standards%20Consortium",
"cluster": "22",
"x": -516.7845458984375,
"y": -416.3999938964844,
"score": 0.0004273748036375761
},
{
"key": "clinical care classification system",
"label": "Clinical Care Classification System",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Clinical%20Care%20Classification%20System",
"cluster": "22",
"x": -412.52435302734375,
"y": -790.51025390625,
"score": 0
},
{
"key": "docle",
"label": "DOCLE",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/DOCLE",
"cluster": "22",
"x": -469.29522705078125,
"y": -732.8194580078125,
"score": 0.000041170313398274394
},
{
"key": "en 13606",
"label": "EN 13606",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/EN%2013606",
"cluster": "22",
"x": -527.2703857421875,
"y": -620.049072265625,
"score": 0.00026394686829500326
},
{
"key": "medcin",
"label": "MEDCIN",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/MEDCIN",
"cluster": "22",
"x": -352.59442138671875,
"y": -791.632080078125,
"score": 0.0010589604938370035
},
{
"key": "meddra",
"label": "MedDRA",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/MedDRA",
"cluster": "22",
"x": -444.18988037109375,
"y": -569.1815185546875,
"score": 0.00020010930469793362
},
{
"key": "omaha system",
"label": "Omaha System",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Omaha%20System",
"cluster": "22",
"x": -306.0516662597656,
"y": -796.6760864257812,
"score": 0.0010640522752898786
},
{
"key": "foundational model of anatomy",
"label": "Foundational Model of Anatomy",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Foundational%20Model%20of%20Anatomy",
"cluster": "22",
"x": -571.9398803710938,
"y": -710.5590209960938,
"score": 0
},
{
"key": "attempto controlled english",
"label": "Attempto controlled English",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Attempto%20controlled%20English",
"cluster": "11",
"x": -693.1058959960938,
"y": 26.525123596191406,
"score": 0.0013385494892133177
},
{
"key": "never-ending language learning",
"label": "Never-Ending Language Learning",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Never-Ending%20Language%20Learning",
"cluster": "11",
"x": -836.1973266601562,
"y": -429.274169921875,
"score": 0.00007786245225895359
},
{
"key": "mindpixel",
"label": "Mindpixel",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Mindpixel",
"cluster": "11",
"x": -964.6343383789062,
"y": -469.32183837890625,
"score": 0.0000033791551411659985
},
{
"key": "thoughttreasure",
"label": "ThoughtTreasure",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/ThoughtTreasure",
"cluster": "11",
"x": -971.9043579101562,
"y": -425.3985900878906,
"score": 0.00001478393462905329
},
{
"key": "soar (cognitive architecture)",
"label": "Soar (cognitive architecture)",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Soar%20%28cognitive%20architecture%29",
"cluster": "11",
"x": -489.733154296875,
"y": -402.2613220214844,
"score": 0.000011574614936723598
},
{
"key": "openai",
"label": "OpenAI",
"tag": "Organization",
"URL": "https://en.wikipedia.org/wiki/OpenAI",
"cluster": "11",
"x": -647.9365844726562,
"y": -502.41143798828125,
"score": 2.2904207732002446e-7
},
{
"key": "medical classification",
"label": "Medical classification",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Medical%20classification",
"cluster": "22",
"x": -268.8819580078125,
"y": -778.7237548828125,
"score": 0.0012169888168756826
},
{
"key": "categorization",
"label": "Categorization",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Categorization",
"cluster": "15",
"x": -118.73316192626953,
"y": -440.3768310546875,
"score": 0.000832430514242821
},
{
"key": "classification (general theory)",
"label": "Classification (general theory)",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Classification%20%28general%20theory%29",
"cluster": "15",
"x": -42.45366668701172,
"y": -591.6888427734375,
"score": 0.0015474837583148715
},
{
"key": "celestial emporium of benevolent recognition",
"label": "Celestial Emporium of Benevolent Recognition",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Celestial%20Emporium%20of%20Benevolent%20Recognition",
"cluster": "11",
"x": -327.3880310058594,
"y": -506.41253662109375,
"score": 0
},
{
"key": "conflation",
"label": "Conflation",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Conflation",
"cluster": "11",
"x": -310.910400390625,
"y": -510.711181640625,
"score": 0
},
{
"key": "hypernym",
"label": "Hypernym",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Hypernym",
"cluster": "11",
"x": -538.8417358398438,
"y": -463.9079895019531,
"score": 0.00006680450549889743
},
{
"key": "knowledge representation",
"label": "Knowledge representation",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Knowledge%20representation",
"cluster": "21",
"x": -457.52752685546875,
"y": -388.3069152832031,
"score": 0.01376680905074288
},
{
"key": "lexicon",
"label": "Lexicon",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Lexicon",
"cluster": "11",
"x": -383.3857116699219,
"y": -241.419189453125,
"score": 0.0001956223005320509
},
{
"key": "protégé (software)",
"label": "Protégé (software)",
"tag": "Tool",
"URL": "https://en.wikipedia.org/wiki/Prot%C3%A9g%C3%A9%20%28software%29",
"cluster": "11",
"x": -766.2107543945312,
"y": -254.3942413330078,
"score": 0.0013839791736388841
},
{
"key": "structuralism",
"label": "Structuralism",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Structuralism",
"cluster": "11",
"x": 5.247107982635498,
"y": -18.6092472076416,
"score": 0.00011671418764303403
},
{
"key": "taxon",
"label": "Taxon",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Taxon",
"cluster": "15",
"x": 364.98291015625,
"y": -795.843017578125,
"score": 0.0010798203727240168
},
{
"key": "taxonomy for search engines",
"label": "Taxonomy for search engines",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Taxonomy%20for%20search%20engines",
"cluster": "11",
"x": -319.3077697753906,
"y": -503.34661865234375,
"score": 0
},
{
"key": "thesaurus (information retrieval)",
"label": "Thesaurus (information retrieval)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Thesaurus%20%28information%20retrieval%29",
"cluster": "11",
"x": -510.4674377441406,
"y": -266.0479736328125,
"score": 0.00007575394051360483
},
{
"key": "computational semantics",
"label": "Computational semantics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Computational%20semantics",
"cluster": "11",
"x": -965.2175903320312,
"y": -236.58160400390625,
"score": 0.0015080942907774104
},
{
"key": "natural language processing",
"label": "Natural language processing",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Natural%20language%20processing",
"cluster": "11",
"x": -653.91259765625,
"y": -112.69408416748047,
"score": 0.0006426418621691633
},
{
"key": "semantic analytics",
"label": "Semantic analytics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Semantic%20analytics",
"cluster": "11",
"x": -491.98004150390625,
"y": 96.77739715576172,
"score": 0.00014142895902837045
},
{
"key": "semantic analysis (machine learning)",
"label": "Semantic analysis (machine learning)",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Semantic%20analysis%20%28machine%20learning%29",
"cluster": "11",
"x": -710.1082153320312,
"y": -107.33619689941406,
"score": 0.000020306177099575617
},
{
"key": "word sense",
"label": "Word sense",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Word%20sense",
"cluster": "11",
"x": -1096.0675048828125,
"y": -262.6681823730469,
"score": 0.00009654725479997093
},
{
"key": "gellish",
"label": "Gellish",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Gellish",
"cluster": "11",
"x": -683.6392822265625,
"y": -173.24795532226562,
"score": 0
},
{
"key": "graph (abstract data type)",
"label": "Graph (abstract data type)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Graph%20%28abstract%20data%20type%29",
"cluster": "0",
"x": -77.38995361328125,
"y": -655.3379516601562,
"score": 0.0018856381979477153
},
{
"key": "idea networking",
"label": "Idea networking",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Idea%20networking",
"cluster": "20",
"x": 82.23460388183594,
"y": -167.45657348632812,
"score": 0.0027231880132923816
},
{
"key": "implicit relational assessment procedure",
"label": "Implicit Relational Assessment Procedure",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Implicit%20Relational%20Assessment%20Procedure",
"cluster": "20",
"x": -93.10240936279297,
"y": -371.5769958496094,
"score": 0
},
{
"key": "q methodology",
"label": "Q methodology",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Q%20methodology",
"cluster": "20",
"x": -47.5731086730957,
"y": -114.64006805419922,
"score": 0.00007896924894366487
},
{
"key": "commonsense knowledge bases",
"label": "Commonsense knowledge bases",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Commonsense%20knowledge%20bases",
"cluster": "11",
"x": -755.6460571289062,
"y": -233.0300750732422,
"score": 0.0005671759716945092
},
{
"key": "controlled vocabulary",
"label": "Controlled vocabulary",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Controlled%20vocabulary",
"cluster": "11",
"x": -712.2034301757812,
"y": -46.502952575683594,
"score": 0.002332019554736243
},
{
"key": "classification scheme (information science)",
"label": "Classification scheme (information science)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Classification%20scheme%20%28information%20science%29",
"cluster": "11",
"x": -930.228759765625,
"y": -63.278953552246094,
"score": 0.00020000396450949232
},
{
"key": "formal concept analysis",
"label": "Formal concept analysis",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Formal%20concept%20analysis",
"cluster": "4",
"x": -233.8119659423828,
"y": -231.75582885742188,
"score": 0.0009658016332339617
},
{
"key": "lattice (order)",
"label": "Lattice (order)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Lattice%20%28order%29",
"cluster": "11",
"x": -557.2487182617188,
"y": -293.2978820800781,
"score": 0.0019138917062398119
},
{
"key": "ontology",
"label": "Ontology",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Ontology",
"cluster": "11",
"x": -802.4988403320312,
"y": 104.12451171875,
"score": 0
},
{
"key": "ontology chart",
"label": "Ontology chart",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Ontology%20chart",
"cluster": "11",
"x": -812.9419555664062,
"y": -191.93759155273438,
"score": 0
},
{
"key": "open semantic framework",
"label": "Open Semantic Framework",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Open%20Semantic%20Framework",
"cluster": "11",
"x": -967.7907104492188,
"y": -35.30357360839844,
"score": 0.003212947743168521
},
{
"key": "soft ontology",
"label": "Soft ontology",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Soft%20ontology",
"cluster": "11",
"x": -802.4599609375,
"y": -210.4902801513672,
"score": 0
},
{
"key": "terminology extraction",
"label": "Terminology extraction",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Terminology%20extraction",
"cluster": "11",
"x": -631.9566040039062,
"y": -185.26966857910156,
"score": 0.001905128877444444
},
{
"key": "characteristica universalis",
"label": "Characteristica universalis",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Characteristica%20universalis",
"cluster": "11",
"x": -806.2623901367188,
"y": -200.8917694091797,
"score": 0
},
{
"key": "interoperability",
"label": "Interoperability",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Interoperability",
"cluster": "11",
"x": -627.125244140625,
"y": -20.90610122680664,
"score": 0.0021424713354572383
},
{
"key": "abstract syntax tree",
"label": "Abstract syntax tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Abstract%20syntax%20tree",
"cluster": "5",
"x": -459.3824462890625,
"y": -16.06570816040039,
"score": 0.0048607617062511165
},
{
"key": "exquisite corpse",
"label": "Exquisite corpse",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Exquisite%20corpse",
"cluster": "13",
"x": -178.0074005126953,
"y": -407.5213623046875,
"score": 0.0009569882372060549
},
{
"key": "graph (discrete mathematics)",
"label": "Graph (discrete mathematics)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Graph%20%28discrete%20mathematics%29",
"cluster": "0",
"x": 77.01103973388672,
"y": -580.4057006835938,
"score": 0.0013833863016234334
},
{
"key": "idea",
"label": "Idea",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Idea",
"cluster": "13",
"x": -71.74822235107422,
"y": -448.6311340332031,
"score": 0.0034297437843280303
},
{
"key": "mental literacy",
"label": "Mental literacy",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Mental%20literacy",
"cluster": "13",
"x": -121.71910095214844,
"y": -328.4855651855469,
"score": 0
},
{
"key": "nodal organizational structure",
"label": "Nodal organizational structure",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Nodal%20organizational%20structure",
"cluster": "10",
"x": 122.17115783691406,
"y": 217.4998321533203,
"score": 0.005763290814021886
},
{
"key": "personal wiki",
"label": "Personal wiki",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Personal%20wiki",
"cluster": "14",
"x": -311.3005676269531,
"y": -114.6126708984375,
"score": 0.0014959448800083313
},
{
"key": "rhizome (philosophy)",
"label": "Rhizome (philosophy)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Rhizome%20%28philosophy%29",
"cluster": "13",
"x": -68.34617614746094,
"y": -678.7107543945312,
"score": 0.004682216382571588
},
{
"key": "social map",
"label": "Social map",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Social%20map",
"cluster": "13",
"x": 94.21646881103516,
"y": -225.3516082763672,
"score": 0.003222587871337692
},
{
"key": "spider mapping",
"label": "Spider mapping",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Spider%20mapping",
"cluster": "13",
"x": -256.9673767089844,
"y": -302.2412109375,
"score": 0.00003330984889842856
},
{
"key": "biological motion",
"label": "Biological motion",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Biological%20motion",
"cluster": "17",
"x": 1245.595947265625,
"y": 278.42144775390625,
"score": 0.0000011833840661534595
},
{
"key": "eye movement (sensory)",
"label": "Eye movement (sensory)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Eye%20movement%20%28sensory%29",
"cluster": "17",
"x": 1221.6109619140625,
"y": 297.4622802734375,
"score": 0
},
{
"key": "illusory motion",
"label": "Illusory motion",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Illusory%20motion",
"cluster": "17",
"x": 1214.0107421875,
"y": 267.8876647949219,
"score": 0
},
{
"key": "induced movement",
"label": "Induced movement",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Induced%20movement",
"cluster": "17",
"x": 1228.5450439453125,
"y": 259.1819763183594,
"score": 3.817367955333741e-8
},
{
"key": "jerkiness",
"label": "Jerkiness",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Jerkiness",
"cluster": "17",
"x": 1264.9259033203125,
"y": 299.31048583984375,
"score": 0.0004619778699544894
},
{
"key": "lilac chaser",
"label": "Lilac chaser",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Lilac%20chaser",
"cluster": "17",
"x": 1229.3953857421875,
"y": 289.3548278808594,
"score": 0
},
{
"key": "max wertheimer",
"label": "Max Wertheimer",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Max%20Wertheimer",
"cluster": "17",
"x": 1220.01318359375,
"y": 312.4950866699219,
"score": 0
},
{
"key": "motion aftereffect",
"label": "Motion aftereffect",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Motion%20aftereffect",
"cluster": "17",
"x": 1250.07763671875,
"y": 260.91070556640625,
"score": 9.54341988833435e-7
},
{
"key": "motion (physics)",
"label": "Motion (physics)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Motion%20%28physics%29",
"cluster": "17",
"x": 1263.8114013671875,
"y": 278.351318359375,
"score": 0.0000011452103866001223
},
{
"key": "motion sensing in vision",
"label": "Motion sensing in vision",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Motion%20sensing%20in%20vision",
"cluster": "17",
"x": 1195.0745849609375,
"y": 298.7527160644531,
"score": 0
},
{
"key": "optical flow",
"label": "Optical flow",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Optical%20flow",
"cluster": "17",
"x": 1217.9952392578125,
"y": 283.680908203125,
"score": 0
},
{
"key": "peripheral drift illusion",
"label": "Peripheral drift illusion",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Peripheral%20drift%20illusion",
"cluster": "17",
"x": 1223.55859375,
"y": 275.3535461425781,
"score": 0
},
{
"key": "persistence of vision",
"label": "Persistence of vision",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Persistence%20of%20vision",
"cluster": "17",
"x": 1273.7554931640625,
"y": 287.45947265625,
"score": 0.0009262079870026258
},
{
"key": "pulfrich effect",
"label": "Pulfrich effect",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Pulfrich%20effect",
"cluster": "17",
"x": 1229.0216064453125,
"y": 304.6051940917969,
"score": 0
},
{
"key": "strobe light",
"label": "Strobe light",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Strobe%20light",
"cluster": "17",
"x": 1273.398681640625,
"y": 321.86798095703125,
"score": 0.0000017559892594535206
},
{
"key": "stroboscopic effect",
"label": "Stroboscopic effect",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Stroboscopic%20effect",
"cluster": "17",
"x": 1262.1036376953125,
"y": 333.6462707519531,
"score": 0.000002214073414093569
},
{
"key": "visual modularity",
"label": "Visual modularity",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Visual%20modularity",
"cluster": "17",
"x": 1092.1937255859375,
"y": 324.96038818359375,
"score": 0.000002366768132306919
},
{
"key": "visual perception",
"label": "Visual perception",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Visual%20perception",
"cluster": "17",
"x": 895.0927734375,
"y": 317.5968322753906,
"score": 0.000006298657126300673
},
{
"key": "wagon-wheel effect",
"label": "Wagon-wheel effect",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Wagon-wheel%20effect",
"cluster": "17",
"x": 1196.847412109375,
"y": 354.10638427734375,
"score": 0.0000027485049278402937
},
{
"key": "causal diagram",
"label": "Causal diagram",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Causal%20diagram",
"cluster": "6",
"x": 438.1298828125,
"y": 154.97250366210938,
"score": 0.0020381224013600865
},
{
"key": "causal loop diagram",
"label": "Causal loop diagram",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Causal%20loop%20diagram",
"cluster": "23",
"x": 494.7638854980469,
"y": 185.18702697753906,
"score": 0.006216810233775465
},
{
"key": "system dynamics",
"label": "System dynamics",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/System%20dynamics",
"cluster": "23",
"x": 622.8671875,
"y": 163.65269470214844,
"score": 0.0035755672016735958
},
{
"key": "ecosystem model",
"label": "Ecosystem model",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Ecosystem%20model",
"cluster": "23",
"x": 816.7540283203125,
"y": -44.04935073852539,
"score": 0
},
{
"key": "system dynamics society",
"label": "System Dynamics Society",
"tag": "Organization",
"URL": "https://en.wikipedia.org/wiki/System%20Dynamics%20Society",
"cluster": "23",
"x": 756.5075073242188,
"y": 209.07211303710938,
"score": 0
},
{
"key": "wicked problem",
"label": "Wicked problem",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Wicked%20problem",
"cluster": "20",
"x": 347.049072265625,
"y": 60.60059356689453,
"score": 0
},
{
"key": "population dynamics",
"label": "Population dynamics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Population%20dynamics",
"cluster": "23",
"x": 772.3981323242188,
"y": -59.25724411010742,
"score": 0
},
{
"key": "dynamical systems theory",
"label": "Dynamical systems theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Dynamical%20systems%20theory",
"cluster": "23",
"x": 748.3113403320312,
"y": -34.59257888793945,
"score": 0
},
{
"key": "grey box model",
"label": "Grey box model",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Grey%20box%20model",
"cluster": "23",
"x": 726.7197265625,
"y": 295.0785827636719,
"score": 0
},
{
"key": "operations research",
"label": "Operations research",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Operations%20research",
"cluster": "7",
"x": 83.52240753173828,
"y": 723.7681274414062,
"score": 0.0037512941393699627
},
{
"key": "system identification",
"label": "System identification",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/System%20identification",
"cluster": "23",
"x": 755.0643920898438,
"y": 196.7957763671875,
"score": 0
},
{
"key": "systems theory",
"label": "Systems theory",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Systems%20theory",
"cluster": "23",
"x": 719.5684204101562,
"y": 213.43527221679688,
"score": 0.004583050377830994
},
{
"key": "systems thinking",
"label": "Systems thinking",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Systems%20thinking",
"cluster": "23",
"x": 705.0557861328125,
"y": 262.6366882324219,
"score": 0.002830704567740447
},
{
"key": "triz",
"label": "TRIZ",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/TRIZ",
"cluster": "20",
"x": 236.83993530273438,
"y": 65.4411392211914,
"score": 0.0017072601698925449
},
{
"key": "directed acyclic graph",
"label": "Directed acyclic graph",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Directed%20acyclic%20graph",
"cluster": "5",
"x": -230.62423706054688,
"y": 345.4334411621094,
"score": 0
},
{
"key": "path analysis (statistics)",
"label": "Path analysis (statistics)",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Path%20analysis%20%28statistics%29",
"cluster": "23",
"x": 507.91180419921875,
"y": 191.16986083984375,
"score": 0
},
{
"key": "positive feedback",
"label": "Positive feedback",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Positive%20feedback",
"cluster": "23",
"x": 720.36474609375,
"y": 331.7070617675781,
"score": 0
},
{
"key": "structural equation modeling",
"label": "Structural equation modeling",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Structural%20equation%20modeling",
"cluster": "6",
"x": 402.60589599609375,
"y": 196.0709228515625,
"score": 0.0028791650213429673
},
{
"key": "causal map",
"label": "Causal map",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Causal%20map",
"cluster": "6",
"x": 453.74176025390625,
"y": 190.30531311035156,
"score": 0
},
{
"key": "aliasing",
"label": "Aliasing",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Aliasing",
"cluster": "17",
"x": 957.2798461914062,
"y": 460.7005615234375,
"score": 0
},
{
"key": "computer vision",
"label": "Computer vision",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Computer%20vision",
"cluster": "8",
"x": 710.0435791015625,
"y": 490.1965026855469,
"score": 0
},
{
"key": "multisensory integration",
"label": "Multisensory integration",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Multisensory%20integration",
"cluster": "17",
"x": 295.4568176269531,
"y": 322.5936584472656,
"score": 0
},
{
"key": "cognitive science",
"label": "Cognitive science",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Cognitive%20science",
"cluster": "18",
"x": 543.527587890625,
"y": 196.1392822265625,
"score": 0
},
{
"key": "modularity",
"label": "Modularity",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Modularity",
"cluster": "17",
"x": 820.330810546875,
"y": 384.6979675292969,
"score": 0
},
{
"key": "flicker (light)",
"label": "Flicker (light)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Flicker%20%28light%29",
"cluster": "17",
"x": 1306.2479248046875,
"y": 340.5159606933594,
"score": 0
},
{
"key": "flicker fusion threshold",
"label": "Flicker fusion threshold",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Flicker%20fusion%20threshold",
"cluster": "17",
"x": 1306.7171630859375,
"y": 318.5633544921875,
"score": 0
},
{
"key": "afterimage",
"label": "Afterimage",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Afterimage",
"cluster": "17",
"x": 1304.3720703125,
"y": 265.7323303222656,
"score": 0
},
{
"key": "motion capture",
"label": "Motion capture",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Motion%20capture",
"cluster": "17",
"x": 1295.796875,
"y": 275.5779113769531,
"score": 0
},
{
"key": "signage",
"label": "Signage",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Signage",
"cluster": "17",
"x": 604.0667114257812,
"y": 474.4591369628906,
"score": 0
},
{
"key": "tree (graph theory)",
"label": "Tree (graph theory)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Tree%20%28graph%20theory%29",
"cluster": "4",
"x": 486.3802795410156,
"y": -459.5943298339844,
"score": 0.0013233762903584359
},
{
"key": "tree (set theory)",
"label": "Tree (set theory)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Tree%20%28set%20theory%29",
"cluster": "4",
"x": 445.56549072265625,
"y": -643.8995971679688,
"score": 0.00047218950625679736
},
{
"key": "cardinal tree",
"label": "Cardinal tree",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Cardinal%20tree",
"cluster": "4",
"x": 449.58154296875,
"y": -610.8460693359375,
"score": 0
},
{
"key": "ordinal tree",
"label": "Ordinal tree",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Ordinal%20tree",
"cluster": "4",
"x": 442.8125915527344,
"y": -614.7493896484375,
"score": 0
},
{
"key": "hierarchy (mathematics)",
"label": "Hierarchy (mathematics)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Hierarchy%20%28mathematics%29",
"cluster": "4",
"x": 363.5637512207031,
"y": -608.8851318359375,
"score": 0.00012095185761164601
},
{
"key": "dialog tree",
"label": "Dialog tree",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Dialog%20tree",
"cluster": "4",
"x": 424.689453125,
"y": -592.5746459960938,
"score": 0
},
{
"key": "single inheritance",
"label": "Single inheritance",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Single%20inheritance",
"cluster": "4",
"x": 412.7212829589844,
"y": -596.4953002929688,
"score": 0
},
{
"key": "generative grammar",
"label": "Generative grammar",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Generative%20grammar",
"cluster": "19",
"x": -43.279937744140625,
"y": -392.4776611328125,
"score": 0.0005879925664638194
},
{
"key": "genetic programming",
"label": "Genetic programming",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Genetic%20programming",
"cluster": "0",
"x": 466.38800048828125,
"y": -489.4223327636719,
"score": 0.00019959249871609436
},
{
"key": "binary space partition tree",
"label": "Binary space partition tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Binary%20space%20partition%20tree",
"cluster": "4",
"x": 783.2446899414062,
"y": -617.8587646484375,
"score": 0.0003173754007882676
},
{
"key": "recursion",
"label": "Recursion",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Recursion",
"cluster": "19",
"x": 121.84003448486328,
"y": -595.9076538085938,
"score": 0.000186782896744112
},
{
"key": "fenwick tree",
"label": "Fenwick tree",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Fenwick%20tree",
"cluster": "4",
"x": 421.2061462402344,
"y": -601.9625244140625,
"score": 0
},
{
"key": "trie",
"label": "Trie",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Trie",
"cluster": "4",
"x": 211.989013671875,
"y": -801.8059692382812,
"score": 0.00008592036875552178
},
{
"key": "enfilade (xanadu)",
"label": "Enfilade (Xanadu)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Enfilade%20%28Xanadu%29",
"cluster": "4",
"x": 419.8973388671875,
"y": -521.6289672851562,
"score": 0.00017782551553353906
},
{
"key": "hierarchical temporal memory",
"label": "Hierarchical temporal memory",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Hierarchical%20temporal%20memory",
"cluster": "18",
"x": 35.96812057495117,
"y": -253.84210205078125,
"score": 0.0006406357836220079
},
{
"key": "card sorting",
"label": "Card sorting",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Card%20sorting",
"cluster": "20",
"x": -119.89045715332031,
"y": 121.5815658569336,
"score": 0
},
{
"key": "group concept mapping",
"label": "Group concept mapping",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Group%20concept%20mapping",
"cluster": "20",
"x": 71.61437225341797,
"y": -99.77106475830078,
"score": 0
},
{
"key": "brainstorming",
"label": "Brainstorming",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Brainstorming",
"cluster": "20",
"x": 113.1626968383789,
"y": -202.05372619628906,
"score": 0.000615542262997186
},
{
"key": "concept driven strategy",
"label": "Concept driven strategy",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Concept%20driven%20strategy",
"cluster": "20",
"x": 108.79314422607422,
"y": -39.69621658325195,
"score": 0
},
{
"key": "concept mapping",
"label": "Concept mapping",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Concept%20mapping",
"cluster": "20",
"x": -373.0652160644531,
"y": -145.80311584472656,
"score": 0
},
{
"key": "pathfinder network",
"label": "Pathfinder network",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Pathfinder%20network",
"cluster": "20",
"x": 356.67791748046875,
"y": -264.4546203613281,
"score": 0
},
{
"key": "social network analysis",
"label": "Social network analysis",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Social%20network%20analysis",
"cluster": "23",
"x": 457.07025146484375,
"y": -79.12741088867188,
"score": 0.01030046997784691
},
{
"key": "graph traversal",
"label": "Graph traversal",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Graph%20traversal",
"cluster": "0",
"x": -36.188255310058594,
"y": -768.4710083007812,
"score": 0
},
{
"key": "graph drawing software",
"label": "Graph drawing software",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Graph%20drawing%20software",
"cluster": "0",
"x": -31.414161682128906,
"y": -760.2022094726562,
"score": 0
},
{
"key": "contextualism",
"label": "Contextualism",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Contextualism",
"cluster": "13",
"x": -213.95245361328125,
"y": -883.2734985351562,
"score": 0.0004509384299439154
},
{
"key": "deleuze and guattari",
"label": "Deleuze and Guattari",
"tag": "Person",
"URL": "https://en.wikipedia.org/wiki/Deleuze%20and%20Guattari",
"cluster": "13",
"x": -67.2768783569336,
"y": -737.4854736328125,
"score": 0
},
{
"key": "heterarchy",
"label": "Heterarchy",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Heterarchy",
"cluster": "11",
"x": -259.7275695800781,
"y": -504.8309020996094,
"score": 0.0016056226327426182
},
{
"key": "minority (philosophy)",
"label": "Minority (philosophy)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Minority%20%28philosophy%29",
"cluster": "13",
"x": -71.92227172851562,
"y": -760.505126953125,
"score": 0
},
{
"key": "multiplicity (philosophy)",
"label": "Multiplicity (philosophy)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Multiplicity%20%28philosophy%29",
"cluster": "13",
"x": -151.02752685546875,
"y": -776.9718017578125,
"score": 0
},
{
"key": "mutualism (biology)",
"label": "Mutualism (biology)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Mutualism%20%28biology%29",
"cluster": "13",
"x": -64.20784759521484,
"y": -754.9276123046875,
"score": 0
},
{
"key": "perspectivism",
"label": "Perspectivism",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Perspectivism",
"cluster": "13",
"x": -224.75930786132812,
"y": -681.7512817382812,
"score": 0.0003200640410137074
},
{
"key": "plane of immanence",
"label": "Plane of immanence",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Plane%20of%20immanence",
"cluster": "13",
"x": 323.0514831542969,
"y": -403.70184326171875,
"score": 0.000003187502242703674
},
{
"key": "digital infinity",
"label": "Digital infinity",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Digital%20infinity",
"cluster": "19",
"x": 164.18714904785156,
"y": -658.8633422851562,
"score": 0.00024712393407932807
},
{
"key": "commonplace book",
"label": "Commonplace book",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Commonplace%20book",
"cluster": "14",
"x": -361.00982666015625,
"y": -132.0633087158203,
"score": 0.0006791098946793512
},
{
"key": "comparison of wiki software",
"label": "Comparison of wiki software",
"tag": "List",
"URL": "https://en.wikipedia.org/wiki/Comparison%20of%20wiki%20software",
"cluster": "14",
"x": -465.9567565917969,
"y": 38.939231872558594,
"score": 0.00005694152122469968
},
{
"key": "notetaking",
"label": "Notetaking",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Notetaking",
"cluster": "14",
"x": -358.01434326171875,
"y": -191.48202514648438,
"score": 0.00011647202265579341
},
{
"key": "outliner",
"label": "Outliner",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Outliner",
"cluster": "14",
"x": -335.67010498046875,
"y": -93.59388732910156,
"score": 0.005505165170131647
},
{
"key": "personal information manager",
"label": "Personal information manager",
"tag": "Technology",
"URL": "https://en.wikipedia.org/wiki/Personal%20information%20manager",
"cluster": "14",
"x": -274.0675354003906,
"y": 81.69979858398438,
"score": 0.0006449911111076553
},
{
"key": "personal knowledge management",
"label": "Personal knowledge management",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Personal%20knowledge%20management",
"cluster": "14",
"x": -350.107666015625,
"y": -19.07309341430664,
"score": 0.0022485017480281277
},
{
"key": "zettelkasten",
"label": "Zettelkasten",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Zettelkasten",
"cluster": "14",
"x": -282.62139892578125,
"y": -149.15438842773438,
"score": 0.0038569606030890444
},
{
"key": "antifragility",
"label": "Antifragility",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Antifragility",
"cluster": "10",
"x": 187.0358428955078,
"y": 407.0599670410156,
"score": 0.002368967331847648
},
{
"key": "complexity theory and organizations",
"label": "Complexity theory and organizations",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Complexity%20theory%20and%20organizations",
"cluster": "10",
"x": 456.2109680175781,
"y": 215.65074157714844,
"score": 0.000036150406005194665
},
{
"key": "engineering of systems",
"label": "Engineering of systems",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Engineering%20of%20systems",
"cluster": "10",
"x": 51.48921203613281,
"y": 843.0659790039062,
"score": 0.0005063911187800877
},
{
"key": "enterprise modelling",
"label": "Enterprise modelling",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Enterprise%20modelling",
"cluster": "11",
"x": -586.4564208984375,
"y": 387.7236022949219,
"score": 0.0005902892117593951
},
{
"key": "flat organization",
"label": "Flat organization",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Flat%20organization",
"cluster": "10",
"x": 252.04855346679688,
"y": 134.1737823486328,
"score": 0
},
{
"key": "information management",
"label": "Information management",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Information%20management",
"cluster": "21",
"x": -342.910400390625,
"y": 350.9992370605469,
"score": 0.012950638349086252
},
{
"key": "hierarchical organization",
"label": "Hierarchical organization",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Hierarchical%20organization",
"cluster": "10",
"x": 292.79083251953125,
"y": 76.03492736816406,
"score": 0.00007729357059752553
},
{
"key": "organizational architecture",
"label": "Organizational architecture",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Organizational%20architecture",
"cluster": "11",
"x": -512.9902954101562,
"y": 294.671630859375,
"score": 0.0001667750827767636
},
{
"key": "organizational culture",
"label": "Organizational culture",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Organizational%20culture",
"cluster": "12",
"x": 419.12542724609375,
"y": 261.25958251953125,
"score": 0.0008365501132273357
},
{
"key": "organizational structure",
"label": "Organizational structure",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Organizational%20structure",
"cluster": "11",
"x": -210.84027099609375,
"y": 261.264404296875,
"score": 0
},
{
"key": "industrial and organizational psychology",
"label": "Industrial and organizational psychology",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Industrial%20and%20organizational%20psychology",
"cluster": "12",
"x": 475.9872131347656,
"y": 441.9350891113281,
"score": 0.0008528352050131092
},
{
"key": "social group",
"label": "Social group",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Social%20group",
"cluster": "12",
"x": 534.3731689453125,
"y": -307.8911437988281,
"score": 0.000855642598364784
},
{
"key": "spontaneous order",
"label": "Spontaneous order",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Spontaneous%20order",
"cluster": "23",
"x": 342.17333984375,
"y": 252.11541748046875,
"score": 0.000053371085777238835
},
{
"key": "clandestine cell system",
"label": "Clandestine cell system",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Clandestine%20cell%20system",
"cluster": "10",
"x": 72.9683609008789,
"y": 179.9698944091797,
"score": 0.00005215585678808029
},
{
"key": "unorganisation",
"label": "Unorganisation",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Unorganisation",
"cluster": "20",
"x": -57.295021057128906,
"y": 78.55626678466797,
"score": 0.00011310373631295159
},
{
"key": "idealism",
"label": "Idealism",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Idealism",
"cluster": "14",
"x": -6.959212303161621,
"y": -600.156982421875,
"score": 0.000041064402412063116
},
{
"key": "creativity techniques",
"label": "Creativity techniques",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Creativity%20techniques",
"cluster": "20",
"x": 156.88656616210938,
"y": -232.79005432128906,
"score": 0.002513126304581234
},
{
"key": "diffusion of innovations",
"label": "Diffusion of innovations",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Diffusion%20of%20innovations",
"cluster": "20",
"x": 297.0165710449219,
"y": -256.9774169921875,
"score": 0.0037566751717212003
},
{
"key": "ideology",
"label": "Ideology",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Ideology",
"cluster": "13",
"x": -127.68160247802734,
"y": -669.994873046875,
"score": 0.00003664979465538784
},
{
"key": "notion (philosophy)",
"label": "Notion (philosophy)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Notion%20%28philosophy%29",
"cluster": "13",
"x": -253.23367309570312,
"y": -544.9735717773438,
"score": 0
},
{
"key": "object of the mind",
"label": "Object of the mind",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Object%20of%20the%20mind",
"cluster": "13",
"x": -223.0965576171875,
"y": -586.4507446289062,
"score": 0.000024846858112765485
},
{
"key": "think tank",
"label": "Think tank",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Think%20tank",
"cluster": "20",
"x": -119.1697998046875,
"y": -230.24562072753906,
"score": 0.00005902675912702533
},
{
"key": "thought experiment",
"label": "Thought experiment",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Thought%20experiment",
"cluster": "6",
"x": 68.5882339477539,
"y": 340.8675231933594,
"score": 0.00004642504782506759
},
{
"key": "history of ideas",
"label": "History of ideas",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/History%20of%20ideas",
"cluster": "13",
"x": -99.1052017211914,
"y": -807.9873657226562,
"score": 0.00023740211314220535
},
{
"key": "intellectual history",
"label": "Intellectual history",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Intellectual%20history",
"cluster": "13",
"x": -87.77902221679688,
"y": -807.7369384765625,
"score": 0.00023740211314220535
},
{
"key": "concept",
"label": "Concept",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Concept",
"cluster": "13",
"x": -320.0277404785156,
"y": -534.294921875,
"score": 0.000865834372851787
},
{
"key": "philosophical analysis",
"label": "Philosophical analysis",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Philosophical%20analysis",
"cluster": "13",
"x": 4.303709983825684,
"y": -511.58221435546875,
"score": 0.000025711553261879532
},
{
"key": "photoshop tennis",
"label": "Photoshop tennis",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Photoshop%20tennis",
"cluster": "13",
"x": -198.376953125,
"y": -455.125732421875,
"score": 0
},
{
"key": "comic jam",
"label": "Comic jam",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Comic%20jam",
"cluster": "13",
"x": -193.90914916992188,
"y": -435.8758239746094,
"score": 0
},
{
"key": "round-robin story",
"label": "Round-robin story",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Round-robin%20story",
"cluster": "13",
"x": -203.40130615234375,
"y": -446.73858642578125,
"score": 0
},
{
"key": "mindmap",
"label": "Mindmap",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Mindmap",
"cluster": "13",
"x": -162.69125366210938,
"y": -324.9837341308594,
"score": 0.006504778576802172
},
{
"key": "behavioral geography",
"label": "Behavioral geography",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Behavioral%20geography",
"cluster": "18",
"x": 460.13970947265625,
"y": 353.3959655761719,
"score": 0
},
{
"key": "cognitive psychology",
"label": "Cognitive psychology",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Cognitive%20psychology",
"cluster": "18",
"x": 289.9866638183594,
"y": 37.24297332763672,
"score": 0.000027675917676169614
},
{
"key": "spatial cognition",
"label": "Spatial cognition",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Spatial%20cognition",
"cluster": "18",
"x": 364.1803894042969,
"y": 300.1258239746094,
"score": 0.00000515344673970055
},
{
"key": "geovisualization",
"label": "Geovisualization",
"tag": "Chart type",
"URL": "https://en.wikipedia.org/wiki/Geovisualization",
"cluster": "8",
"x": 434.0361633300781,
"y": 604.18115234375,
"score": 0.001593587269742069
},
{
"key": "wayfinding",
"label": "Wayfinding",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Wayfinding",
"cluster": "7",
"x": 123.08663940429688,
"y": 417.60968017578125,
"score": 0
},
{
"key": "b-tree",
"label": "B-tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/B-tree",
"cluster": "4",
"x": 1021.5797729492188,
"y": -549.2489013671875,
"score": 0.0030606271745285364
},
{
"key": "data drilling",
"label": "Data drilling",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Data%20drilling",
"cluster": "7",
"x": 39.929752349853516,
"y": -159.58120727539062,
"score": 0
},
{
"key": "hierarchical model",
"label": "Hierarchical model",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Hierarchical%20model",
"cluster": "4",
"x": 409.6672058105469,
"y": -557.8333129882812,
"score": 0.0001067593023406819
},
{
"key": "hierarchical query",
"label": "Hierarchical query",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Hierarchical%20query",
"cluster": "4",
"x": 262.63189697265625,
"y": -593.9261474609375,
"score": 0.0004929280640588892
},
{
"key": "tree testing",
"label": "Tree testing",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Tree%20testing",
"cluster": "4",
"x": 119.97872161865234,
"y": -82.75764465332031,
"score": 0
},
{
"key": "comparative method",
"label": "Comparative method",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Comparative%20method",
"cluster": "19",
"x": 381.8501281738281,
"y": -961.7783203125,
"score": 0.0002493014885889067
},
{
"key": "genetic relationship (linguistics)",
"label": "Genetic relationship (linguistics)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Genetic%20relationship%20%28linguistics%29",
"cluster": "19",
"x": 512.11865234375,
"y": -1140.35888671875,
"score": 0.00004896738724590808
},
{
"key": "indo-european studies",
"label": "Indo-European studies",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Indo-European%20studies",
"cluster": "19",
"x": 438.0217590332031,
"y": -1109.485107421875,
"score": 0.0000031086794381373326
},
{
"key": "linkage (linguistics)",
"label": "Linkage (linguistics)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Linkage%20%28linguistics%29",
"cluster": "19",
"x": 541.4375610351562,
"y": -1190.5421142578125,
"score": 0.000045720538791417714
},
{
"key": "wave model (linguistics)",
"label": "Wave model (linguistics)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Wave%20model%20%28linguistics%29",
"cluster": "19",
"x": 459.50140380859375,
"y": -896.134521484375,
"score": 0.00005619611319968458
},
{
"key": "father tongue hypothesis",
"label": "Father Tongue hypothesis",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Father%20Tongue%20hypothesis",
"cluster": "19",
"x": 511.541259765625,
"y": -1122.0006103515625,
"score": 0
},
{
"key": "memetics",
"label": "Memetics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Memetics",
"cluster": "19",
"x": 404.36859130859375,
"y": -611.43408203125,
"score": 0
},
{
"key": "language contact",
"label": "Language contact",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Language%20contact",
"cluster": "19",
"x": 568.429443359375,
"y": -1246.2664794921875,
"score": 0
},
{
"key": "constructed language",
"label": "Constructed language",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Constructed%20language",
"cluster": "19",
"x": 20.201797485351562,
"y": -836.646484375,
"score": 0.00584311681704871
},
{
"key": "endangered language",
"label": "Endangered language",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Endangered%20language",
"cluster": "19",
"x": 610.4201049804688,
"y": -1265.57958984375,
"score": 0.0004226208063350024
},
{
"key": "extinct language",
"label": "Extinct language",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Extinct%20language",
"cluster": "19",
"x": 601.51708984375,
"y": -1171.1044921875,
"score": 0.0001429067306321368
},
{
"key": "language death",
"label": "Language death",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Language%20death",
"cluster": "19",
"x": 590.4929809570312,
"y": -1263.2750244140625,
"score": 0.0006952687550184118
},
{
"key": "global language system",
"label": "Global language system",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Global%20language%20system",
"cluster": "19",
"x": 496.7047424316406,
"y": -1227.6268310546875,
"score": 0.00026370377835445403
},
{
"key": "proto-language (historical linguistics)",
"label": "Proto-language (historical linguistics)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Proto-language%20%28historical%20linguistics%29",
"cluster": "19",
"x": 394.06378173828125,
"y": -1013.0359497070312,
"score": 0.00017890670193173032
},
{
"key": "proto-human language",
"label": "Proto-Human language",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Proto-Human%20language",
"cluster": "19",
"x": 316.417724609375,
"y": -1031.5992431640625,
"score": 0.00006060823186822491
},
{
"key": "unclassified language",
"label": "Unclassified language",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Unclassified%20language",
"cluster": "19",
"x": 559.8035278320312,
"y": -1097.541015625,
"score": 0.0001218511058851773
},
{
"key": "historical linguistics",
"label": "Historical linguistics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Historical%20linguistics",
"cluster": "19",
"x": 373.7210998535156,
"y": -1054.150634765625,
"score": 0
},
{
"key": "comparative linguistics",
"label": "Comparative linguistics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Comparative%20linguistics",
"cluster": "19",
"x": 454.6783142089844,
"y": -1097.08056640625,
"score": 0
},
{
"key": "language isolate",
"label": "Language isolate",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Language%20isolate",
"cluster": "19",
"x": 555.1766357421875,
"y": -1153.306640625,
"score": 0
},
{
"key": "biolinguistics",
"label": "Biolinguistics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Biolinguistics",
"cluster": "19",
"x": 307.0653991699219,
"y": -1047.6795654296875,
"score": 0
},
{
"key": "phylogenetic tree",
"label": "Phylogenetic tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Phylogenetic%20tree",
"cluster": "15",
"x": 517.79833984375,
"y": -929.38720703125,
"score": 0
},
{
"key": "lexicostatistics",
"label": "Lexicostatistics",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Lexicostatistics",
"cluster": "19",
"x": -163.01705932617188,
"y": -629.4994506835938,
"score": 0
},
{
"key": "proto-language",
"label": "Proto-language",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Proto-language",
"cluster": "19",
"x": 346.8216857910156,
"y": -1024.6937255859375,
"score": 0
},
{
"key": "datalog",
"label": "Datalog",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Datalog",
"cluster": "7",
"x": -420.7032775878906,
"y": -508.77197265625,
"score": 0.00026436425577523493
},
{
"key": "reachability",
"label": "Reachability",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Reachability",
"cluster": "4",
"x": 287.5516662597656,
"y": -637.5847778320312,
"score": 0
},
{
"key": "transitive closure",
"label": "Transitive closure",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Transitive%20closure",
"cluster": "4",
"x": 256.5393981933594,
"y": -758.6903686523438,
"score": 0.00002030403481614083
},
{
"key": "binary space partitioning",
"label": "Binary space partitioning",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Binary%20space%20partitioning",
"cluster": "4",
"x": 849.1033325195312,
"y": -596.1015625,
"score": 0.0009446979960149815
},
{
"key": "bounding volume hierarchy",
"label": "Bounding volume hierarchy",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Bounding%20volume%20hierarchy",
"cluster": "4",
"x": 818.5838012695312,
"y": -589.8177490234375,
"score": 0.002922237544113654
},
{
"key": "brown clustering",
"label": "Brown clustering",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Brown%20clustering",
"cluster": "4",
"x": 644.9867553710938,
"y": -527.6826171875,
"score": 0
},
{
"key": "cluster analysis",
"label": "Cluster analysis",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Cluster%20analysis",
"cluster": "4",
"x": 391.1073303222656,
"y": -361.32684326171875,
"score": 0.0024147660870920255
},
{
"key": "computational phylogenetics",
"label": "Computational phylogenetics",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Computational%20phylogenetics",
"cluster": "15",
"x": 591.9526977539062,
"y": -610.32470703125,
"score": 0.01735774593089035
},
{
"key": "cure data clustering algorithm",
"label": "CURE data clustering algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/CURE%20data%20clustering%20algorithm",
"cluster": "4",
"x": 642.5660400390625,
"y": -538.1322021484375,
"score": 0
},
{
"key": "determining the number of clusters in a data set",
"label": "Determining the number of clusters in a data set",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Determining%20the%20number%20of%20clusters%20in%20a%20data%20set",
"cluster": "4",
"x": 527.0065307617188,
"y": -459.62725830078125,
"score": 0
},
{
"key": "hierarchical clustering of networks",
"label": "Hierarchical clustering of networks",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Hierarchical%20clustering%20of%20networks",
"cluster": "4",
"x": 500.212158203125,
"y": -521.3433837890625,
"score": 0.001175909508255498
},
{
"key": "locality-sensitive hashing",
"label": "Locality-sensitive hashing",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Locality-sensitive%20hashing",
"cluster": "4",
"x": 376.1282043457031,
"y": -330.9991149902344,
"score": 0.001581099563837878
},
{
"key": "nearest neighbor search",
"label": "Nearest neighbor search",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Nearest%20neighbor%20search",
"cluster": "4",
"x": 465.8026428222656,
"y": -288.708740234375,
"score": 0.0036493991814555288
},
{
"key": "numerical taxonomy",
"label": "Numerical taxonomy",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Numerical%20taxonomy",
"cluster": "4",
"x": 564.6903076171875,
"y": -639.3377685546875,
"score": 0.001179008867470926
},
{
"key": "optics algorithm",
"label": "OPTICS algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/OPTICS%20algorithm",
"cluster": "6",
"x": 890.155029296875,
"y": 12.731932640075684,
"score": 0
},
{
"key": "statistical distance",
"label": "Statistical distance",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Statistical%20distance",
"cluster": "4",
"x": 568.5665283203125,
"y": -425.816650390625,
"score": 0
},
{
"key": "persistent homology",
"label": "Persistent homology",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Persistent%20homology",
"cluster": "4",
"x": 633.4055786132812,
"y": -539.4898071289062,
"score": 0
},
{
"key": "kurepa tree",
"label": "Kurepa tree",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Kurepa%20tree",
"cluster": "4",
"x": 485.78662109375,
"y": -686.5958251953125,
"score": 0
},
{
"key": "laver tree",
"label": "Laver tree",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Laver%20tree",
"cluster": "4",
"x": 466.20281982421875,
"y": -695.1686401367188,
"score": 0
},
{
"key": "tree (descriptive set theory)",
"label": "Tree (descriptive set theory)",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Tree%20%28descriptive%20set%20theory%29",
"cluster": "4",
"x": 431.8933410644531,
"y": -677.61962890625,
"score": 0.0005109787842997658
},
{
"key": "hypertree",
"label": "Hypertree",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Hypertree",
"cluster": "4",
"x": 535.9276733398438,
"y": -489.7192077636719,
"score": 0
},
{
"key": "unrooted binary tree",
"label": "Unrooted binary tree",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Unrooted%20binary%20tree",
"cluster": "4",
"x": 810.7046508789062,
"y": -481.6220397949219,
"score": 0
},
{
"key": "behavior tree (artificial intelligence, robotics and control)",
"label": "Behavior tree (artificial intelligence, robotics and control)",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Behavior%20tree%20%28artificial%20intelligence%2C%20robotics%20and%20control%29",
"cluster": "16",
"x": 51.23191833496094,
"y": -53.347206115722656,
"score": 0.00035325105877509553
},
{
"key": "boosting (machine learning)",
"label": "Boosting (machine learning)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Boosting%20%28machine%20learning%29",
"cluster": "16",
"x": 538.5542602539062,
"y": 277.4903564453125,
"score": 0.005156831255749363
},
{
"key": "decision cycle",
"label": "Decision cycle",
"tag": "Concept",
"URL": "https://en.wikipedia.org/wiki/Decision%20cycle",
"cluster": "10",
"x": 239.43130493164062,
"y": 666.6565551757812,
"score": 0.006254154777741675
},
{
"key": "decision list",
"label": "Decision list",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Decision%20list",
"cluster": "16",
"x": 335.5602111816406,
"y": -76.60675048828125,
"score": 0.00015620669673225667
},
{
"key": "decision table",
"label": "Decision table",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Decision%20table",
"cluster": "16",
"x": -192.65985107421875,
"y": -39.99335861206055,
"score": 0.004316264310985871
},
{
"key": "decision tree model",
"label": "Decision tree model",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Decision%20tree%20model",
"cluster": "16",
"x": -92.10061645507812,
"y": -410.23541259765625,
"score": 0.0020719254540220483
},
{
"key": "design rationale",
"label": "Design rationale",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Design%20rationale",
"cluster": "20",
"x": 3.90860915184021,
"y": 336.4949951171875,
"score": 0.001219067108741879
},
{
"key": "drakon",
"label": "DRAKON",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/DRAKON",
"cluster": "5",
"x": -402.64569091796875,
"y": 655.1260986328125,
"score": 0
},
{
"key": "markov chain",
"label": "Markov chain",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Markov%20chain",
"cluster": "18",
"x": 577.88037109375,
"y": 597.88134765625,
"score": 0.002246213475275396
},
{
"key": "random forest",
"label": "Random forest",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Random%20forest",
"cluster": "16",
"x": 492.03924560546875,
"y": 226.9278564453125,
"score": 0.002415303619937981
},
{
"key": "odds algorithm",
"label": "Odds algorithm",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Odds%20algorithm",
"cluster": "16",
"x": 173.30101013183594,
"y": -92.74720764160156,
"score": 0.0019615139762334294
},
{
"key": "topological combinatorics",
"label": "Topological combinatorics",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Topological%20combinatorics",
"cluster": "0",
"x": 188.41099548339844,
"y": -1026.896728515625,
"score": 0.0007135539694672632
},
{
"key": "truth table",
"label": "Truth table",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Truth%20table",
"cluster": "3",
"x": -426.31585693359375,
"y": -1028.725341796875,
"score": 0.011613604786483994
},
{
"key": "b+ tree",
"label": "B+ tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/B%2B%20tree",
"cluster": "4",
"x": 1083.7540283203125,
"y": -568.489013671875,
"score": 0
},
{
"key": "r-tree",
"label": "R-tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/R-tree",
"cluster": "4",
"x": 893.6261596679688,
"y": -592.5349731445312,
"score": 0.0023330799300503606
},
{
"key": "red–black tree",
"label": "Red–black tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Red%E2%80%93black%20tree",
"cluster": "4",
"x": 1101.5341796875,
"y": -541.6307373046875,
"score": 0.0003922345574105419
},
{
"key": "2–3 tree",
"label": "2–3 tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/2%E2%80%933%20tree",
"cluster": "4",
"x": 1081.713134765625,
"y": -538.3057861328125,
"score": 0.00007821786940478836
},
{
"key": "2–3–4 tree",
"label": "2–3–4 tree",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/2%E2%80%933%E2%80%934%20tree",
"cluster": "4",
"x": 1039.65087890625,
"y": -529.50439453125,
"score": 0.00003765531263750464
},
{
"key": "cartography",
"label": "Cartography",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Cartography",
"cluster": "7",
"x": 205.96640014648438,
"y": 502.0666198730469,
"score": 0
},
{
"key": "computer-aided design",
"label": "Computer-aided design",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Computer-aided%20design",
"cluster": "10",
"x": 470.032958984375,
"y": 854.808837890625,
"score": 0
},
{
"key": "computer graphics",
"label": "Computer graphics",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Computer%20graphics",
"cluster": "8",
"x": 671.0115966796875,
"y": 874.7772827148438,
"score": 0
},
{
"key": "exploratory data analysis",
"label": "Exploratory data analysis",
"tag": "Field",
"URL": "https://en.wikipedia.org/wiki/Exploratory%20data%20analysis",
"cluster": "6",
"x": 340.9304504394531,
"y": 554.6495971679688,
"score": 0.008884064405635958
},
{
"key": "geoinformatics",
"label": "Geoinformatics",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Geoinformatics",
"cluster": "8",
"x": -24.319034576416016,
"y": 355.34039306640625,
"score": 0
},
{
"key": "image processing",
"label": "Image processing",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Image%20processing",
"cluster": "8",
"x": 633.4656982421875,
"y": 795.6337280273438,
"score": 0
},
{
"key": "signal processing",
"label": "Signal processing",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Signal%20processing",
"cluster": "6",
"x": 526.5436401367188,
"y": 460.2947998046875,
"score": 0
},
{
"key": "space mapping",
"label": "Space mapping",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Space%20mapping",
"cluster": "18",
"x": 30.30461311340332,
"y": 404.57867431640625,
"score": 0
},
{
"key": "cognition",
"label": "Cognition",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Cognition",
"cluster": "18",
"x": 353.043701171875,
"y": 187.64523315429688,
"score": 0
},
{
"key": "cognitive robotics",
"label": "Cognitive robotics",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Cognitive%20robotics",
"cluster": "18",
"x": 223.8614501953125,
"y": 53.35688781738281,
"score": 0
},
{
"key": "artificial intelligence",
"label": "Artificial intelligence",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Artificial%20intelligence",
"cluster": "18",
"x": 365.1165771484375,
"y": 411.4618835449219,
"score": 0
},
{
"key": "formal fallacy",
"label": "Formal fallacy",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Formal%20fallacy",
"cluster": "14",
"x": 183.59153747558594,
"y": -162.52694702148438,
"score": 0
},
{
"key": "personal information management",
"label": "Personal information management",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Personal%20information%20management",
"cluster": "18",
"x": 209.70448303222656,
"y": 92.68804931640625,
"score": 0
},
{
"key": "taxonomy (biology)",
"label": "Taxonomy (biology)",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Taxonomy%20%28biology%29",
"cluster": "15",
"x": 492.7709655761719,
"y": -807.5087280273438,
"score": 0.00881550159019847
},
{
"key": "methodology",
"label": "methodology",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/methodology",
"cluster": "7",
"x": 188.7590789794922,
"y": -397.94281005859375,
"score": 0.00004012190055625593
},
{
"key": "global biodiversity",
"label": "Global biodiversity",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Global%20biodiversity",
"cluster": "15",
"x": 597.5812377929688,
"y": -725.9423217773438,
"score": 0
},
{
"key": "phenetics",
"label": "Phenetics",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Phenetics",
"cluster": "15",
"x": 520.6441650390625,
"y": -783.23486328125,
"score": 0.00018449452060005452
},
{
"key": "phylogeny",
"label": "Phylogeny",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Phylogeny",
"cluster": "15",
"x": 678.8300170898438,
"y": -757.751220703125,
"score": 0.0003209197557893916
},
{
"key": "phylogenetic comparative methods",
"label": "Phylogenetic comparative methods",
"tag": "Method",
"URL": "https://en.wikipedia.org/wiki/Phylogenetic%20comparative%20methods",
"cluster": "15",
"x": 674.5009765625,
"y": -586.5753784179688,
"score": 0.0055269797434169664
},
{
"key": "biodiversity",
"label": "biodiversity",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/biodiversity",
"cluster": "15",
"x": 770.2447509765625,
"y": -345.40496826171875,
"score": 0.00011130041760411372
},
{
"key": "clade",
"label": "Clade",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Clade",
"cluster": "15",
"x": 730.08837890625,
"y": -884.9166870117188,
"score": 0.00003136855288618033
},
{
"key": "haplotype",
"label": "Haplotype",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Haplotype",
"cluster": "15",
"x": 768.4527587890625,
"y": -957.6187133789062,
"score": 0
},
{
"key": "automated species identification",
"label": "Automated species identification",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Automated%20species%20identification",
"cluster": "15",
"x": 526.0171508789062,
"y": -892.4882202148438,
"score": 0
},
{
"key": "bacterial taxonomy",
"label": "Bacterial taxonomy",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Bacterial%20taxonomy",
"cluster": "15",
"x": 591.2159423828125,
"y": -873.7532348632812,
"score": 0.00012692561104268824
},
{
"key": "cladogram",
"label": "Cladogram",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Cladogram",
"cluster": "15",
"x": 576.83154296875,
"y": -824.0825805664062,
"score": 0.000053233364188603886
},
{
"key": "consortium for the barcode of life",
"label": "Consortium for the Barcode of Life",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Consortium%20for%20the%20Barcode%20of%20Life",
"cluster": "15",
"x": 538.1236572265625,
"y": -872.3402099609375,
"score": 0
},
{
"key": "consortium of european taxonomic facilities",
"label": "Consortium of European Taxonomic Facilities",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Consortium%20of%20European%20Taxonomic%20Facilities",
"cluster": "15",
"x": 528.541748046875,
"y": -870.3175048828125,
"score": 0
},
{
"key": "genetypes",
"label": "Genetypes",
"tag": "unknown",
"URL": "https://en.wikipedia.org/wiki/Genetypes",
"cluster": "15",
"x": 538.69879
gitextract_qrh9r3c_/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── stale.yml │ └── workflows/ │ ├── build.yml │ ├── tests.yml │ └── website.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── babel.config.js ├── bin/ │ └── create-package.ts ├── eslint.config.mjs ├── lerna.json ├── package.json ├── packages/ │ ├── demo/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public/ │ │ │ └── dataset.json │ │ ├── src/ │ │ │ ├── canvas-utils.ts │ │ │ ├── index.tsx │ │ │ ├── styles.css │ │ │ ├── types.ts │ │ │ ├── use-debounce.ts │ │ │ └── views/ │ │ │ ├── ClustersPanel.tsx │ │ │ ├── DescriptionPanel.tsx │ │ │ ├── GraphDataController.tsx │ │ │ ├── GraphEventsController.tsx │ │ │ ├── GraphSettingsController.tsx │ │ │ ├── GraphTitle.tsx │ │ │ ├── Panel.tsx │ │ │ ├── Root.tsx │ │ │ ├── SearchField.tsx │ │ │ └── TagsPanel.tsx │ │ ├── tsconfig.json │ │ ├── vite-env.d.ts │ │ └── vite.config.mts │ ├── edge-curve/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── edge-labels.ts │ │ │ ├── factory.ts │ │ │ ├── index.ts │ │ │ ├── shader-frag.ts │ │ │ ├── shader-vert.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── export-image/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── downloadAsImage.ts │ │ │ ├── drawOnCanvas.ts │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ └── toImage.ts │ │ └── tsconfig.json │ ├── layer-leaflet/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── layer-maplibre/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── layer-webgl/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── bind-webgl-layer.ts │ │ │ ├── contours/ │ │ │ │ ├── index.ts │ │ │ │ ├── shader-frag.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ └── webgl-layer-program/ │ │ │ ├── index.ts │ │ │ └── shader-vert.ts │ │ └── tsconfig.json │ ├── node-border/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── factory.ts │ │ │ ├── index.ts │ │ │ ├── shader-frag.ts │ │ │ ├── shader-vert.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── node-image/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── factory.ts │ │ │ ├── index.ts │ │ │ ├── shader-frag.ts │ │ │ ├── shader-vert.ts │ │ │ └── texture.ts │ │ └── tsconfig.json │ ├── node-piechart/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── factory.ts │ │ │ ├── index.ts │ │ │ ├── shader-frag.ts │ │ │ ├── shader-vert.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── node-square/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── program.ts │ │ │ ├── shader-frag.ts │ │ │ ├── shader-vert.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── sigma/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── package.json │ │ ├── rendering/ │ │ │ └── package.json │ │ ├── settings/ │ │ │ └── package.json │ │ ├── src/ │ │ │ ├── core/ │ │ │ │ ├── camera.ts │ │ │ │ ├── captors/ │ │ │ │ │ ├── captor.ts │ │ │ │ │ ├── mouse.ts │ │ │ │ │ └── touch.ts │ │ │ │ └── labels.ts │ │ │ ├── index-bundle.ts │ │ │ ├── index.ts │ │ │ ├── rendering/ │ │ │ │ ├── edge-labels.ts │ │ │ │ ├── edge.ts │ │ │ │ ├── index.ts │ │ │ │ ├── node-hover.ts │ │ │ │ ├── node-labels.ts │ │ │ │ ├── node.ts │ │ │ │ ├── program.ts │ │ │ │ ├── programs/ │ │ │ │ │ ├── edge-arrow/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── edge-arrow-head/ │ │ │ │ │ │ ├── frag.glsl.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vert.glsl.ts │ │ │ │ │ ├── edge-clamped/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vert.glsl.ts │ │ │ │ │ ├── edge-double-arrow/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── edge-double-clamped/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vert.glsl.ts │ │ │ │ │ ├── edge-line/ │ │ │ │ │ │ ├── frag.glsl.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vert.glsl.ts │ │ │ │ │ ├── edge-rectangle/ │ │ │ │ │ │ ├── frag.glsl.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vert.glsl.ts │ │ │ │ │ ├── edge-triangle/ │ │ │ │ │ │ ├── frag.glsl.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vert.glsl.ts │ │ │ │ │ ├── node-circle/ │ │ │ │ │ │ ├── frag.glsl.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vert.glsl.ts │ │ │ │ │ └── node-point/ │ │ │ │ │ ├── frag.glsl.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── vert.glsl.ts │ │ │ │ └── utils.ts │ │ │ ├── settings.ts │ │ │ ├── sigma.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── animate.ts │ │ │ ├── colors.ts │ │ │ ├── coordinates.ts │ │ │ ├── data.ts │ │ │ ├── easings.ts │ │ │ ├── graph.ts │ │ │ ├── index.ts │ │ │ ├── matrices.ts │ │ │ ├── misc.ts │ │ │ └── normalization.ts │ │ ├── tsconfig.json │ │ ├── types/ │ │ │ └── package.json │ │ ├── utils/ │ │ │ └── package.json │ │ └── vite.config.mts │ ├── storybook/ │ │ ├── .gitignore │ │ ├── .storybook/ │ │ │ ├── main.ts │ │ │ ├── manager.tsx │ │ │ ├── preview.tsx │ │ │ └── theme.ts │ │ ├── package.json │ │ ├── public/ │ │ │ ├── arctic.gexf │ │ │ ├── data.csv │ │ │ └── pina-colada.jsonld │ │ ├── stories/ │ │ │ ├── 0-docs/ │ │ │ │ └── introduction.mdx │ │ │ ├── 1-core-features/ │ │ │ │ ├── 1-load-gexf-file/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── 2-events/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── 3-layouts/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── 4-use-reducers/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── 5-custom-rendering/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── node-gradient-frag.glsl.ts │ │ │ │ │ ├── node-gradient-vert.glsl.ts │ │ │ │ │ ├── node-gradient.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── 6-csv-to-network-map/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ └── 7-camera-control/ │ │ │ │ ├── index.html │ │ │ │ ├── index.ts │ │ │ │ └── stories.ts │ │ │ ├── 2-advanced-usecases/ │ │ │ │ ├── cluster-label/ │ │ │ │ │ ├── euroSIS.json │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── events-shadowdom/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── fit-sizes-to-positions/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── large-graphs/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── load-rdf-file/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ └── stories.ts │ │ │ │ └── mouse-manipulations/ │ │ │ │ ├── index.html │ │ │ │ ├── index.ts │ │ │ │ └── stories.ts │ │ │ ├── 3-additional-packages/ │ │ │ │ ├── edge-curve/ │ │ │ │ │ ├── arrow-heads.ts │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── arctic.json │ │ │ │ │ │ └── les-miserables.json │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interactions.ts │ │ │ │ │ ├── labels.ts │ │ │ │ │ ├── parallel-edges.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── export-image/ │ │ │ │ │ ├── available-options.ts │ │ │ │ │ ├── custom-layers-and-renderers.ts │ │ │ │ │ ├── index.html │ │ │ │ │ └── stories.ts │ │ │ │ ├── layer-leaflet/ │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── airports.json │ │ │ │ │ │ └── sample-geojson.json │ │ │ │ │ ├── geojson.ts │ │ │ │ │ ├── index.html │ │ │ │ │ ├── resize.ts │ │ │ │ │ ├── stories.ts │ │ │ │ │ └── tilelayer.ts │ │ │ │ ├── layer-maplibre/ │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── airports.json │ │ │ │ │ │ └── sample-geojson.json │ │ │ │ │ ├── geojson.ts │ │ │ │ │ ├── index.html │ │ │ │ │ ├── resize.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── layer-webgl/ │ │ │ │ │ ├── contours-highlight-group.ts │ │ │ │ │ ├── contours-metaballs.ts │ │ │ │ │ ├── contours-multi-levels.ts │ │ │ │ │ ├── index.html │ │ │ │ │ └── stories.ts │ │ │ │ ├── node-border/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── node-border.ts │ │ │ │ │ ├── pixels-border.ts │ │ │ │ │ ├── stories.ts │ │ │ │ │ ├── variable-sizes.ts │ │ │ │ │ └── with-images.ts │ │ │ │ ├── node-image/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── local-images.ts │ │ │ │ │ ├── node-images.ts │ │ │ │ │ ├── node-pictograms-background.ts │ │ │ │ │ ├── node-pictograms.ts │ │ │ │ │ ├── options-showcase.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── node-piechart/ │ │ │ │ │ ├── fixed-colors.ts │ │ │ │ │ ├── fixed-values.ts │ │ │ │ │ ├── index.html │ │ │ │ │ ├── offsets.ts │ │ │ │ │ └── stories.ts │ │ │ │ ├── node-square/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── mixed-programs.ts │ │ │ │ │ └── stories.ts │ │ │ │ └── utils/ │ │ │ │ ├── fit-viewport-to-nodes.ts │ │ │ │ ├── get-nodes-in-viewport.ts │ │ │ │ ├── index.html │ │ │ │ └── stories.ts │ │ │ ├── _data/ │ │ │ │ └── data.json │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ └── types/ │ │ ├── images.d.ts │ │ └── raw.d.ts │ ├── template/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── test/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app/ │ │ │ ├── index.html │ │ │ └── index.ts │ │ ├── benchmarks/ │ │ │ └── suite.bench.ts │ │ ├── datasets/ │ │ │ ├── arctic.json │ │ │ ├── large-graph.json │ │ │ └── les-miserables.json │ │ ├── e2e/ │ │ │ └── basics.spec.ts │ │ ├── helpers.ts │ │ ├── package.json │ │ ├── playwright.config.ts │ │ ├── tsconfig.json │ │ ├── unit/ │ │ │ ├── _helpers.ts │ │ │ ├── layer-leaflet/ │ │ │ │ └── lifecycle.ts │ │ │ ├── layer-maplibre/ │ │ │ │ └── lifecycle.ts │ │ │ ├── sigma/ │ │ │ │ ├── camera.ts │ │ │ │ ├── events.ts │ │ │ │ ├── lifecycle.ts │ │ │ │ ├── mouse.ts │ │ │ │ ├── rendering.ts │ │ │ │ ├── settings.ts │ │ │ │ ├── touch.ts │ │ │ │ └── utils.ts │ │ │ └── utils/ │ │ │ └── fitViewportToNodes.ts │ │ ├── vite.config.mts │ │ └── vitest.config.mts │ ├── utils/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── fitViewportToNodes.ts │ │ │ ├── getNodesInViewport.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ └── website/ │ ├── .gitignore │ ├── README.md │ ├── babel.config.js │ ├── docs/ │ │ ├── advanced/ │ │ │ ├── _category_.json │ │ │ ├── coordinate-systems.md │ │ │ ├── customization.md │ │ │ ├── data.md │ │ │ ├── events.md │ │ │ ├── layers.md │ │ │ ├── lifecycle.md │ │ │ ├── migration-v2-v3.md │ │ │ ├── new-packages.md │ │ │ ├── publish.md │ │ │ ├── renderers.md │ │ │ └── sizes.md │ │ ├── index.mdx │ │ ├── quickstart.md │ │ └── resources.md │ ├── docusaurus.config.js │ ├── package.json │ ├── sidebars.js │ ├── src/ │ │ ├── css/ │ │ │ └── custom.css │ │ └── theme/ │ │ ├── Footer/ │ │ │ └── index.js │ │ ├── Navbar/ │ │ │ └── Logo/ │ │ │ └── index.js │ │ └── NotFound.js │ └── static/ │ ├── fonts/ │ │ └── cascadia/ │ │ └── CascadiaCode-Regular.otf │ ├── homepage.html │ └── styles.css ├── tsconfig.base.json └── tsconfig.json
SYMBOL INDEX (596 symbols across 150 files)
FILE: bin/create-package.ts
function readJSONFile (line 8) | async function readJSONFile<T = unknown>(filePath: string): Promise<T> {
function writeJSONFile (line 13) | async function writeJSONFile(filePath: string, data: unknown) {
function prompt (line 17) | function prompt(question: string): Promise<string> {
function copyFolder (line 31) | async function copyFolder(src: string, dest: string) {
function runCommand (line 49) | function runCommand(command: string, args: string[]): Promise<void> {
function createPackage (line 63) | async function createPackage() {
FILE: packages/demo/src/canvas-utils.ts
constant TEXT_COLOR (line 4) | const TEXT_COLOR = "#000000";
function drawRoundRect (line 10) | function drawRoundRect(
function drawHover (line 34) | function drawHover(context: CanvasRenderingContext2D, data: PlainObject,...
function drawLabel (line 95) | function drawLabel(
FILE: packages/demo/src/types.ts
type NodeData (line 1) | interface NodeData {
type Cluster (line 11) | interface Cluster {
type Tag (line 17) | interface Tag {
type Dataset (line 22) | interface Dataset {
type FiltersState (line 29) | interface FiltersState {
FILE: packages/demo/src/use-debounce.ts
function useDebounce (line 3) | function useDebounce<T>(value: T, delay: number): T {
FILE: packages/demo/src/views/GraphEventsController.tsx
function getMouseLayer (line 4) | function getMouseLayer() {
method clickNode (line 22) | clickNode({ node }) {
method enterNode (line 27) | enterNode({ node }) {
method leaveNode (line 33) | leaveNode() {
FILE: packages/demo/src/views/GraphSettingsController.tsx
constant NODE_FADE_COLOR (line 8) | const NODE_FADE_COLOR = "#bbb";
constant EDGE_FADE_COLOR (line 9) | const EDGE_FADE_COLOR = "#eee";
FILE: packages/demo/src/views/GraphTitle.tsx
function prettyPercentage (line 6) | function prettyPercentage(val: number): string {
FILE: packages/demo/src/views/Panel.tsx
constant DURATION (line 5) | const DURATION = 300;
FILE: packages/edge-curve/src/edge-labels.ts
type Point (line 7) | interface Point {
function getCurvePoint (line 12) | function getCurvePoint(t: number, p0: Point, p1: Point, p2: Point): Point {
function getCurveLength (line 18) | function getCurveLength(p0: Point, p1: Point, p2: Point): number {
function createDrawCurvedEdgeLabel (line 31) | function createDrawCurvedEdgeLabel<
FILE: packages/edge-curve/src/factory.ts
function createEdgeCurveProgram (line 13) | function createEdgeCurveProgram<
FILE: packages/edge-curve/src/shader-frag.ts
function getFragmentShader (line 3) | function getFragmentShader({ arrowHead }: CreateEdgeCurveProgramOptions) {
FILE: packages/edge-curve/src/shader-vert.ts
function getVertexShader (line 3) | function getVertexShader({ arrowHead }: CreateEdgeCurveProgramOptions) {
FILE: packages/edge-curve/src/utils.ts
constant DEFAULT_EDGE_CURVATURE (line 5) | const DEFAULT_EDGE_CURVATURE = 0.25;
type CreateEdgeCurveProgramOptions (line 7) | type CreateEdgeCurveProgramOptions<
constant DEFAULT_EDGE_CURVE_PROGRAM_OPTIONS (line 24) | const DEFAULT_EDGE_CURVE_PROGRAM_OPTIONS: CreateEdgeCurveProgramOptions = {
constant DEFAULT_INDEX_PARALLEL_EDGES_OPTIONS (line 33) | const DEFAULT_INDEX_PARALLEL_EDGES_OPTIONS = {
function indexParallelEdgesIndex (line 38) | function indexParallelEdgesIndex(
FILE: packages/export-image/src/downloadAsImage.ts
function downloadAsImage (line 11) | async function downloadAsImage(sigma: Sigma, opts: Partial<ToImageOption...
function downloadAsPNG (line 24) | function downloadAsPNG(sigma: Sigma, opts: Partial<Omit<ToImageOptions, ...
function downloadAsJPEG (line 31) | function downloadAsJPEG(sigma: Sigma, opts: Partial<Omit<ToImageOptions,...
FILE: packages/export-image/src/drawOnCanvas.ts
function drawOnCanvas (line 9) | async function drawOnCanvas(
FILE: packages/export-image/src/options.ts
type ToImageOptions (line 5) | type ToImageOptions = {
constant DEFAULT_TO_IMAGE_OPTIONS (line 17) | const DEFAULT_TO_IMAGE_OPTIONS: ToImageOptions = {
FILE: packages/export-image/src/toImage.ts
function toBlob (line 10) | async function toBlob(sigma: Sigma, opts: Partial<ToImageOptions> = {}):...
function toFile (line 32) | async function toFile(sigma: Sigma, opts: Partial<ToImageOptions> = {}):...
FILE: packages/layer-leaflet/src/index.ts
function bindLeafletLayer (line 16) | function bindLeafletLayer(
FILE: packages/layer-leaflet/src/utils.ts
constant LEAFLET_MAX_PIXEL (line 4) | const LEAFLET_MAX_PIXEL = 256 * 2 ** 18;
constant MAX_VALID_LATITUDE (line 5) | const MAX_VALID_LATITUDE = 85.051129;
function getWorldPixelSize (line 9) | function getWorldPixelSize(map: Map) {
function latlngToGraph (line 18) | function latlngToGraph(map: Map, coord: { lat: number; lng: number }): {...
function graphToLatlng (line 30) | function graphToLatlng(map: Map, coords: { x: number; y: number }): { la...
function syncSigmaWithMap (line 38) | function syncSigmaWithMap(sigma: Sigma, map: Map): void {
function syncMapWithSigma (line 61) | function syncMapWithSigma(sigma: Sigma, map: Map, firstIteration = false...
function setSigmaRatioBounds (line 92) | function setSigmaRatioBounds(sigma: Sigma, map: Map): void {
FILE: packages/layer-maplibre/src/index.ts
function bindMaplibreLayer (line 15) | function bindMaplibreLayer(
FILE: packages/layer-maplibre/src/utils.ts
constant MAX_VALID_LATITUDE (line 5) | const MAX_VALID_LATITUDE = 85.051129;
function latlngToGraph (line 10) | function latlngToGraph(map: Map, coord: { lat: number; lng: number }): {...
function graphToLatlng (line 22) | function graphToLatlng(map: Map, coords: { x: number; y: number }): { la...
function syncSigmaWithMap (line 31) | function syncSigmaWithMap(sigma: Sigma, map: Map): void {
function syncMapWithSigma (line 54) | function syncMapWithSigma(sigma: Sigma, map: Map): void {
FILE: packages/layer-webgl/src/bind-webgl-layer.ts
function bindWebGLLayer (line 8) | function bindWebGLLayer(id: string, renderer: Sigma, ProgramClass: WebGL...
FILE: packages/layer-webgl/src/contours/index.ts
function createContoursProgram (line 14) | function createContoursProgram<
FILE: packages/layer-webgl/src/contours/shader-frag.ts
function getFragmentShader (line 5) | function getFragmentShader({
FILE: packages/layer-webgl/src/contours/types.ts
type ContoursOptions (line 1) | type ContoursOptions = {
constant DEFAULT_CONTOURS_OPTIONS (line 15) | const DEFAULT_CONTOURS_OPTIONS: ContoursOptions = {
FILE: packages/layer-webgl/src/webgl-layer-program/index.ts
constant QUAD_VERTICES (line 8) | const QUAD_VERTICES = [-1, 1, 1, 1, -1, -1, 1, -1];
type WebGLLayerDefinition (line 10) | type WebGLLayerDefinition = {
method constructor (line 34) | constructor(
method getDefinition (line 44) | getDefinition(): ProgramDefinition<string> {
method hasNothingToRender (line 56) | hasNothingToRender() {
method setUniforms (line 59) | setUniforms(params: RenderParams, programInfo: ProgramInfo) {
method bindProgram (line 62) | protected bindProgram(program: ProgramInfo): void {
class _WebGLLayerProgramClass (line 73) | class _WebGLLayerProgramClass<
method getCustomLayerDefinition (line 78) | getCustomLayerDefinition(): WebGLLayerDefinition {
method setCameraUniforms (line 85) | setCameraUniforms(_params: RenderParams, _programInfo: ProgramInfo): v...
method cacheDataUniforms (line 88) | cacheDataUniforms(_programInfo: ProgramInfo): void {
type WebGLLayerProgramType (line 92) | type WebGLLayerProgramType<
FILE: packages/layer-webgl/src/webgl-layer-program/shader-vert.ts
function getVertexShader (line 1) | function getVertexShader() {
FILE: packages/node-border/src/factory.ts
function createNodeBorderProgram (line 12) | function createNodeBorderProgram<
FILE: packages/node-border/src/shader-frag.ts
function getFragmentShader (line 5) | function getFragmentShader({ borders }: CreateNodeBorderProgramOptions) {
FILE: packages/node-border/src/shader-vert.ts
function getVertexShader (line 3) | function getVertexShader({ borders }: CreateNodeBorderProgramOptions) {
FILE: packages/node-border/src/utils.ts
type NodeBorderSizeMode (line 4) | type NodeBorderSizeMode = "relative" | "pixels";
constant DEFAULT_BORDER_SIZE_MODE (line 5) | const DEFAULT_BORDER_SIZE_MODE: NodeBorderSizeMode = "relative";
type NodeBorderColor (line 7) | type NodeBorderColor = { value: string } | { attribute: string; defaultV...
type NodeBorderSize (line 8) | type NodeBorderSize =
type CreateNodeBorderProgramOptions (line 12) | interface CreateNodeBorderProgramOptions<
constant DEFAULT_CREATE_NODE_BORDER_OPTIONS (line 26) | const DEFAULT_CREATE_NODE_BORDER_OPTIONS: CreateNodeBorderProgramOptions...
constant DEFAULT_COLOR (line 35) | const DEFAULT_COLOR = "#000000";
FILE: packages/node-image/src/factory.ts
type CreateNodeImageProgramOptions (line 19) | interface CreateNodeImageProgramOptions<
constant DEFAULT_CREATE_NODE_IMAGE_OPTIONS (line 41) | const DEFAULT_CREATE_NODE_IMAGE_OPTIONS: CreateNodeImageProgramOptions<A...
constant UNIFORMS (line 52) | const UNIFORMS = [
function createNodeImageProgram (line 68) | function createNodeImageProgram<
FILE: packages/node-image/src/shader-frag.ts
function getFragmentShader (line 1) | function getFragmentShader({ texturesCount }: { texturesCount: number }) {
FILE: packages/node-image/src/shader-vert.ts
constant VERTEX_SHADER_SOURCE (line 2) | const VERTEX_SHADER_SOURCE = /*glsl*/ `
FILE: packages/node-image/src/texture.ts
type TextureCursor (line 8) | type TextureCursor = Coordinates & { rowHeight: number; maxRowWidth: num...
type ImageLoading (line 9) | type ImageLoading = { status: "loading" };
type ImageError (line 10) | type ImageError = { status: "error" };
type ImageReady (line 11) | type ImageReady = {
type ImageType (line 20) | type ImageType = ImageLoading | ImageError | ImageReady;
type Atlas (line 22) | type Atlas = Record<string, Coordinates & { size: number; textureIndex?:...
type TextureManagerOptions (line 24) | type TextureManagerOptions = {
type CrossOrigin (line 44) | type CrossOrigin = "anonymous" | "use-credentials";
constant DEFAULT_TEXTURE_MANAGER_OPTIONS (line 46) | const DEFAULT_TEXTURE_MANAGER_OPTIONS: TextureManagerOptions = {
constant MARGIN_IN_TEXTURE (line 56) | const MARGIN_IN_TEXTURE = 1;
function loadRasterImage (line 66) | function loadRasterImage(
function loadSVGImage (line 101) | async function loadSVGImage(
function loadImage (line 144) | async function loadImage(
function refineImage (line 167) | function refineImage(
function drawTexture (line 197) | function drawTexture(
function drawTextures (line 283) | function drawTextures(
class PictogramCenteringCorrector (line 349) | class PictogramCenteringCorrector {
method constructor (line 353) | constructor() {
method getCorrectionOffset (line 358) | getCorrectionOffset(image: HTMLImageElement, size: number): Coordinates {
class TextureManager (line 395) | class TextureManager extends EventEmitter {
method constructor (line 409) | constructor(options: Partial<TextureManagerOptions> = {}) {
method scheduleGenerateTexture (line 416) | private scheduleGenerateTexture() {
method generateTextures (line 428) | private generateTextures() {
method registerImage (line 443) | async registerImage(source: string) {
method getAtlas (line 466) | getAtlas(): Atlas {
method getTextures (line 469) | getTextures(): ImageData[] {
FILE: packages/node-piechart/src/factory.ts
function createNodePiechartProgram (line 12) | function createNodePiechartProgram<
FILE: packages/node-piechart/src/shader-frag.ts
function getFragmentShader (line 5) | function getFragmentShader({ slices, offset }: CreateNodePiechartProgram...
FILE: packages/node-piechart/src/shader-vert.ts
function getVertexShader (line 3) | function getVertexShader({ slices, offset }: CreateNodePiechartProgramOp...
FILE: packages/node-piechart/src/utils.ts
type NodeSliceColor (line 5) | type NodeSliceColor = { value: string } | { attribute: string; defaultVa...
type NodeSliceValue (line 6) | type NodeSliceValue = { value: number } | { attribute: string };
type CreateNodePiechartProgramOptions (line 8) | interface CreateNodePiechartProgramOptions<
constant DEFAULT_COLOR (line 24) | const DEFAULT_COLOR = "#000000";
constant DEFAULT_CREATE_NODE_PIECHART_OPTIONS (line 26) | const DEFAULT_CREATE_NODE_PIECHART_OPTIONS: Omit<CreateNodePiechartProgr...
FILE: packages/node-square/src/program.ts
constant UNIFORMS (line 12) | const UNIFORMS = ["u_sizeRatio", "u_correctionRatio", "u_cameraAngle", "...
class NodeSquareProgram (line 16) | class NodeSquareProgram<
method getDefinition (line 24) | getDefinition() {
method processVisibleItem (line 42) | processVisibleItem(nodeIndex: number, startIndex: number, data: NodeDi...
method setUniforms (line 53) | setUniforms(params: RenderParams, { gl, uniformLocations }: ProgramInf...
FILE: packages/node-square/src/shader-frag.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/node-square/src/shader-vert.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/node-square/src/utils.ts
function drawSquareNodeLabel (line 6) | function drawSquareNodeLabel<
function drawSquareNodeHover (line 18) | function drawSquareNodeHover<
FILE: packages/sigma/src/core/camera.ts
constant DEFAULT_ZOOMING_RATIO (line 14) | const DEFAULT_ZOOMING_RATIO = 1.5;
type CameraEvents (line 19) | type CameraEvents = {
class Camera (line 26) | class Camera extends TypedEventEmitter<CameraEvents> implements CameraSt...
method constructor (line 45) | constructor() {
method from (line 55) | static from(state: CameraState): Camera {
method enable (line 63) | enable(): this {
method disable (line 71) | disable(): this {
method getState (line 79) | getState(): CameraState {
method hasState (line 91) | hasState(state: CameraState): boolean {
method getPreviousState (line 98) | getPreviousState(): CameraState | null {
method getBoundedRatio (line 114) | getBoundedRatio(ratio: number): number {
method validateState (line 124) | validateState(state: Partial<CameraState>): Partial<CameraState> {
method isAnimated (line 137) | isAnimated(): boolean {
method setState (line 144) | setState(state: Partial<CameraState>): this {
method updateState (line 165) | updateState(updater: (state: CameraState) => Partial<CameraState>): th...
method animate (line 175) | animate(
method animatedZoom (line 244) | animatedZoom(factorOrOptions?: number | (Partial<AnimateOptions> & { f...
method animatedUnzoom (line 260) | animatedUnzoom(factorOrOptions?: number | (Partial<AnimateOptions> & {...
method animatedReset (line 276) | animatedReset(options?: Partial<AnimateOptions>): Promise<void> {
method copy (line 291) | copy(): Camera {
FILE: packages/sigma/src/core/captors/captor.ts
function getPosition (line 26) | function getPosition(e: MouseEvent | Touch, dom: HTMLElement): Coordinat...
function getMouseCoords (line 42) | function getMouseCoords(e: MouseEvent, dom: HTMLElement): MouseCoords {
function cleanMouseCoords (line 58) | function cleanMouseCoords(e: MouseCoords | TouchCoords): MouseCoords {
function getWheelCoords (line 82) | function getWheelCoords(e: WheelEvent, dom: HTMLElement): WheelCoords {
constant MAX_TOUCHES (line 89) | const MAX_TOUCHES = 2;
function getTouchesArray (line 90) | function getTouchesArray(touches: TouchList): Touch[] {
function getTouchCoords (line 104) | function getTouchCoords(e: TouchEvent, previousTouches: Touch[], dom: HT...
function getWheelDelta (line 124) | function getWheelDelta(e: WheelEvent): number {
method constructor (line 145) | constructor(container: HTMLElement, renderer: Sigma<N, E, G>) {
FILE: packages/sigma/src/core/captors/mouse.ts
constant MOUSE_SETTINGS_KEYS (line 15) | const MOUSE_SETTINGS_KEYS = [
type MouseSettingKey (line 27) | type MouseSettingKey = (typeof MOUSE_SETTINGS_KEYS)[number];
type MouseSettings (line 28) | type MouseSettings = Pick<Settings, MouseSettingKey>;
constant DEFAULT_MOUSE_SETTINGS (line 29) | const DEFAULT_MOUSE_SETTINGS = MOUSE_SETTINGS_KEYS.reduce(
type MouseCaptorEvents (line 37) | type MouseCaptorEvents = {
class MouseCaptor (line 55) | class MouseCaptor<
method constructor (line 78) | constructor(container: HTMLElement, renderer: Sigma<N, E, G>) {
method kill (line 103) | kill(): void {
method handleClick (line 117) | handleClick(e: MouseEvent): void {
method handleRightClick (line 141) | handleRightClick(e: MouseEvent): void {
method handleDoubleClick (line 147) | handleDoubleClick(e: MouseEvent): void {
method handleDown (line 168) | handleDown(e: MouseEvent): void {
method handleUp (line 188) | handleUp(e: MouseEvent): void {
method handleMove (line 238) | handleMove(e: MouseEvent): void {
method handleLeave (line 301) | handleLeave(e: MouseEvent): void {
method handleEnter (line 305) | handleEnter(e: MouseEvent): void {
method handleWheel (line 309) | handleWheel(e: WheelEvent): void {
method setSettings (line 363) | setSettings(settings: MouseSettings): void {
FILE: packages/sigma/src/core/captors/touch.ts
constant TOUCH_SETTINGS_KEYS (line 15) | const TOUCH_SETTINGS_KEYS = [
type TouchSettingKey (line 25) | type TouchSettingKey = (typeof TOUCH_SETTINGS_KEYS)[number];
type TouchSettings (line 26) | type TouchSettings = Pick<Settings, TouchSettingKey>;
constant DEFAULT_TOUCH_SETTINGS (line 27) | const DEFAULT_TOUCH_SETTINGS = TOUCH_SETTINGS_KEYS.reduce(
type TouchCaptorEventType (line 35) | type TouchCaptorEventType = "touchdown" | "touchup" | "touchmove" | "tou...
type TouchCaptorEvents (line 36) | type TouchCaptorEvents = Record<TouchCaptorEventType, (coordinates: Touc...
class TouchCaptor (line 43) | class TouchCaptor<
method constructor (line 64) | constructor(container: HTMLElement, renderer: Sigma<N, E, G>) {
method kill (line 79) | kill(): void {
method getDimensions (line 88) | getDimensions(): Dimensions {
method handleStart (line 95) | handleStart(e: TouchEvent): void {
method handleLeave (line 118) | handleLeave(e: TouchEvent): void {
method handleMove (line 201) | handleMove(e: TouchEvent): void {
method setSettings (line 321) | setSettings(settings: TouchSettings): void {
FILE: packages/sigma/src/core/labels.ts
class LabelCandidate (line 18) | class LabelCandidate {
method constructor (line 22) | constructor(key: string, size: number) {
method compare (line 27) | static compare(first: LabelCandidate, second: LabelCandidate): number {
class LabelGrid (line 44) | class LabelGrid {
method resizeAndClear (line 52) | resizeAndClear(dimensions: Dimensions, cellSize: number): void {
method getIndex (line 64) | private getIndex(pos: Coordinates): number {
method add (line 71) | add(key: string, size: number, pos: Coordinates): void {
method organize (line 85) | organize(): void {
method getLabelsToDisplay (line 92) | getLabelsToDisplay(ratio: number, density: number): Array<string> {
function edgeLabelsToDisplayFromNodes (line 128) | function edgeLabelsToDisplayFromNodes(params: {
FILE: packages/sigma/src/index-bundle.ts
class Sigma (line 21) | class Sigma extends SigmaClass {
FILE: packages/sigma/src/rendering/edge-labels.ts
type EdgeLabelDrawingFunction (line 6) | type EdgeLabelDrawingFunction<
function drawStraightEdgeLabel (line 18) | function drawStraightEdgeLabel<
FILE: packages/sigma/src/rendering/edge.ts
method kill (line 42) | kill(): void {
method process (line 46) | process(
class _EdgeProgramClass (line 74) | class _EdgeProgramClass<
method constructor (line 80) | constructor(_gl: WebGLRenderingContext, _pickingBuffer: WebGLFramebuff...
method kill (line 86) | kill(): void {
method reallocate (line 89) | reallocate(_capacity: number): void {
method process (line 92) | process(
method render (line 101) | render(_params: RenderParams): void {
type EdgeProgramType (line 105) | type EdgeProgramType<
function createEdgeCompoundProgram (line 120) | function createEdgeCompoundProgram<
FILE: packages/sigma/src/rendering/node-hover.ts
type NodeHoverDrawingFunction (line 7) | type NodeHoverDrawingFunction<
function drawDiscNodeHover (line 23) | function drawDiscNodeHover<
FILE: packages/sigma/src/rendering/node-labels.ts
type NodeLabelDrawingFunction (line 6) | type NodeLabelDrawingFunction<
function drawDiscNodeLabel (line 16) | function drawDiscNodeLabel<
FILE: packages/sigma/src/rendering/node.ts
method kill (line 38) | kill(): void {
method process (line 42) | process(nodeIndex: number, offset: number, data: NodeDisplayData): void {
class _NodeProgramClass (line 58) | class _NodeProgramClass<
method constructor (line 64) | constructor(_gl: WebGLRenderingContext, _pickingBuffer: WebGLFramebuff...
method kill (line 70) | kill(): void {
method reallocate (line 73) | reallocate(_capacity: number): void {
method process (line 76) | process(_nodeIndex: number, _offset: number, _data: NodeDisplayData): ...
method render (line 79) | render(_params: RenderParams): void {
type NodeProgramType (line 83) | type NodeProgramType<
function createNodeCompoundProgram (line 99) | function createNodeCompoundProgram<
FILE: packages/sigma/src/rendering/program.ts
constant PICKING_PREFIX (line 24) | const PICKING_PREFIX = `#define PICKING_MODE\n`;
constant SIZE_FACTOR_PER_ATTRIBUTE_TYPE (line 26) | const SIZE_FACTOR_PER_ATTRIBUTE_TYPE: Record<number, number> = {
method constructor (line 42) | constructor(_gl: WebGLRenderingContext, _pickGl: WebGLRenderingContext, ...
method constructor (line 81) | constructor(
method kill (line 141) | kill() {
method getProgramInfo (line 150) | protected getProgramInfo(
method bindProgram (line 206) | protected bindProgram(program: ProgramInfo): void {
method unbindProgram (line 235) | protected unbindProgram(program: ProgramInfo): void {
method bindAttribute (line 244) | protected bindAttribute(
method unbindAttribute (line 279) | protected unbindAttribute(attr: ProgramAttributeSpecification, program: ...
method reallocate (line 297) | reallocate(capacity: number): void {
method hasNothingToRender (line 312) | hasNothingToRender(): boolean {
method renderProgram (line 318) | protected renderProgram(params: RenderParams, programInfo: ProgramInfo):...
method render (line 334) | render(params: RenderParams): void {
method drawWebGL (line 355) | drawWebGL(method: number /* GLenum */, { gl, frameBuffer }: ProgramInfo)...
class _ProgramClass (line 371) | class _ProgramClass<
method getDefinition (line 377) | getDefinition(): ProgramDefinition<Uniform> | InstancedProgramDefiniti...
method setUniforms (line 380) | setUniforms(_params: RenderParams, _programInfo: ProgramInfo) {
type ProgramType (line 384) | type ProgramType<
FILE: packages/sigma/src/rendering/programs/edge-arrow-head/frag.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-arrow-head/index.ts
constant UNIFORMS (line 12) | const UNIFORMS = [
type CreateEdgeArrowHeadProgramOptions (line 21) | type CreateEdgeArrowHeadProgramOptions = {
constant DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS (line 27) | const DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS: CreateEdgeArrowHeadProgra...
function createEdgeArrowHeadProgram (line 33) | function createEdgeArrowHeadProgram<
FILE: packages/sigma/src/rendering/programs/edge-arrow-head/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-arrow/index.ts
function createEdgeArrowProgram (line 7) | function createEdgeArrowProgram<
FILE: packages/sigma/src/rendering/programs/edge-clamped/index.ts
constant UNIFORMS (line 13) | const UNIFORMS = [
type CreateEdgeClampedProgramOptions (line 24) | type CreateEdgeClampedProgramOptions = Pick<CreateEdgeArrowHeadProgramOp...
constant DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS (line 26) | const DEFAULT_EDGE_CLAMPED_PROGRAM_OPTIONS: CreateEdgeClampedProgramOpti...
function createEdgeClampedProgram (line 30) | function createEdgeClampedProgram<
FILE: packages/sigma/src/rendering/programs/edge-clamped/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-double-arrow/index.ts
function createEdgeDoubleArrowProgram (line 7) | function createEdgeDoubleArrowProgram<
FILE: packages/sigma/src/rendering/programs/edge-double-clamped/index.ts
constant UNIFORMS (line 13) | const UNIFORMS = [
type CreateEdgeDoubleClampedProgramOptions (line 24) | type CreateEdgeDoubleClampedProgramOptions = Pick<CreateEdgeArrowHeadPro...
constant DEFAULT_EDGE_DOUBLE_CLAMPED_PROGRAM_OPTIONS (line 26) | const DEFAULT_EDGE_DOUBLE_CLAMPED_PROGRAM_OPTIONS: CreateEdgeDoubleClamp...
function createEdgeDoubleClampedProgram (line 30) | function createEdgeDoubleClampedProgram<
FILE: packages/sigma/src/rendering/programs/edge-double-clamped/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-line/frag.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-line/index.ts
constant UNIFORMS (line 20) | const UNIFORMS = ["u_matrix"] as const;
class EdgeLineProgram (line 22) | class EdgeLineProgram<
method getDefinition (line 27) | getDefinition() {
method processVisibleItem (line 42) | processVisibleItem(
method setUniforms (line 70) | setUniforms(params: RenderParams, { gl, uniformLocations }: ProgramInf...
FILE: packages/sigma/src/rendering/programs/edge-line/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-rectangle/frag.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-rectangle/index.ts
constant UNIFORMS (line 29) | const UNIFORMS = [
class EdgeRectangleProgram (line 39) | class EdgeRectangleProgram<
method getDefinition (line 44) | getDefinition() {
method processVisibleItem (line 75) | processVisibleItem(
method setUniforms (line 116) | setUniforms(params: RenderParams, { gl, uniformLocations }: ProgramInf...
FILE: packages/sigma/src/rendering/programs/edge-rectangle/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-triangle/frag.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/edge-triangle/index.ts
constant UNIFORMS (line 19) | const UNIFORMS = ["u_matrix", "u_sizeRatio", "u_correctionRatio", "u_min...
class EdgeTriangleProgram (line 21) | class EdgeTriangleProgram<
method getDefinition (line 26) | getDefinition() {
method processVisibleItem (line 54) | processVisibleItem(
method setUniforms (line 96) | setUniforms(params: RenderParams, { gl, uniformLocations }: ProgramInf...
FILE: packages/sigma/src/rendering/programs/edge-triangle/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/node-circle/frag.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/node-circle/index.ts
constant UNIFORMS (line 22) | const UNIFORMS = ["u_sizeRatio", "u_correctionRatio", "u_matrix"] as const;
class NodeCircleProgram (line 24) | class NodeCircleProgram<
method getDefinition (line 33) | getDefinition() {
method processVisibleItem (line 51) | processVisibleItem(nodeIndex: number, startIndex: number, data: NodeDi...
method setUniforms (line 62) | setUniforms(params: RenderParams, { gl, uniformLocations }: ProgramInf...
FILE: packages/sigma/src/rendering/programs/node-circle/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/node-point/frag.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/programs/node-point/index.ts
constant UNIFORMS (line 21) | const UNIFORMS = ["u_sizeRatio", "u_pixelRatio", "u_matrix"] as const;
class NodePointProgram (line 23) | class NodePointProgram<
method getDefinition (line 28) | getDefinition() {
method processVisibleItem (line 44) | processVisibleItem(nodeIndex: number, startIndex: number, data: NodeDi...
method setUniforms (line 54) | setUniforms({ sizeRatio, pixelRatio, matrix }: RenderParams, { gl, uni...
FILE: packages/sigma/src/rendering/programs/node-point/vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/sigma/src/rendering/utils.ts
function getAttributeItemsCount (line 1) | function getAttributeItemsCount(attr: ProgramAttributeSpecification): nu...
function getAttributesItemsCount (line 4) | function getAttributesItemsCount(attrs: ProgramAttributeSpecification[])...
type ProgramInfo (line 10) | interface ProgramInfo<Uniform extends string = string> {
type ProgramAttributeSpecification (line 24) | interface ProgramAttributeSpecification {
type ProgramDefinition (line 31) | interface ProgramDefinition<Uniform extends string = string> {
type InstancedProgramDefinition (line 40) | interface InstancedProgramDefinition<Uniform extends string = string> ex...
function loadShader (line 45) | function loadShader(type: string, gl: WebGLRenderingContext, source: str...
function loadVertexShader (line 74) | function loadVertexShader(gl: WebGLRenderingContext, source: string): We...
function loadFragmentShader (line 77) | function loadFragmentShader(gl: WebGLRenderingContext, source: string): ...
function loadProgram (line 84) | function loadProgram(gl: WebGLRenderingContext, shaders: Array<WebGLShad...
function killProgram (line 108) | function killProgram({ gl, buffer, program, vertexShader, fragmentShader...
function numberToGLSLFloat (line 118) | function numberToGLSLFloat(n: number): string {
FILE: packages/sigma/src/settings.ts
type Settings (line 30) | interface Settings<
constant DEFAULT_SETTINGS (line 110) | const DEFAULT_SETTINGS: Settings<Attributes, Attributes, Attributes> = {
constant DEFAULT_NODE_PROGRAM_CLASSES (line 183) | const DEFAULT_NODE_PROGRAM_CLASSES: Record<string, NodeProgramType> = {
constant DEFAULT_EDGE_PROGRAM_CLASSES (line 187) | const DEFAULT_EDGE_PROGRAM_CLASSES: Record<string, EdgeProgramType> = {
function validateSettings (line 192) | function validateSettings<
function resolveSettings (line 209) | function resolveSettings<
FILE: packages/sigma/src/sigma.ts
constant X_LABEL_MARGIN (line 52) | const X_LABEL_MARGIN = 150;
constant Y_LABEL_MARGIN (line 53) | const Y_LABEL_MARGIN = 50;
function applyNodeDefaults (line 59) | function applyNodeDefaults<
function applyEdgeDefaults (line 91) | function applyEdgeDefaults<
class Sigma (line 121) | class Sigma<
method constructor (line 192) | constructor(graph: Graph<N, E, G>, container: HTMLElement, settings: P...
method registerNodeProgram (line 270) | private registerNodeProgram(
method registerEdgeProgram (line 289) | private registerEdgeProgram(key: string, EdgeProgramClass: EdgeProgram...
method unregisterNodeProgram (line 301) | private unregisterNodeProgram(key: string): this {
method unregisterEdgeProgram (line 321) | private unregisterEdgeProgram(key: string): this {
method resetWebGLTexture (line 335) | private resetWebGLTexture(id: string): this {
method bindCameraHandlers (line 358) | private bindCameraHandlers(): this {
method unbindCameraHandlers (line 373) | private unbindCameraHandlers(): this {
method getNodeAtPosition (line 381) | private getNodeAtPosition(position: Coordinates): string | null {
method bindEventHandlers (line 402) | private bindEventHandlers(): this {
method bindGraphHandlers (line 569) | private bindGraphHandlers(): this {
method unbindGraphHandlers (line 684) | private unbindGraphHandlers() {
method getEdgeAtPoint (line 703) | private getEdgeAtPoint(x: number, y: number): string | null {
method process (line 727) | private process(): this {
method handleSettingsUpdate (line 876) | private handleSettingsUpdate(oldSettings?: Settings<N, E, G>): this {
method cleanCameraState (line 936) | private cleanCameraState(
method renderLabels (line 1008) | private renderLabels(): this {
method renderEdgeLabels (line 1091) | private renderEdgeLabels(): this {
method renderHighlightedNodes (line 1162) | private renderHighlightedNodes(): void {
method scheduleHighlightedNodesRender (line 1239) | private scheduleHighlightedNodesRender(): void {
method render (line 1257) | private render(): this {
method addNode (line 1347) | private addNode(key: string): void {
method updateNode (line 1384) | private updateNode(key: string): void {
method removeNode (line 1397) | private removeNode(key: string): void {
method addEdge (line 1415) | private addEdge(key: string): void {
method updateEdge (line 1445) | private updateEdge(key: string): void {
method removeEdge (line 1454) | private removeEdge(key: string): void {
method clearNodeIndices (line 1469) | private clearNodeIndices(): void {
method clearEdgeIndices (line 1484) | private clearEdgeIndices(): void {
method clearIndices (line 1495) | private clearIndices(): void {
method clearNodeState (line 1504) | private clearNodeState(): void {
method clearEdgeState (line 1514) | private clearEdgeState(): void {
method clearState (line 1524) | private clearState(): void {
method addNodeToProgram (line 1536) | private addNodeToProgram(node: string, fingerprint: number, position: ...
method addEdgeToProgram (line 1552) | private addEdgeToProgram(edge: string, fingerprint: number, position: ...
method getRenderParams (line 1574) | getRenderParams(): RenderParams {
method getStagePadding (line 1596) | getStagePadding(): number {
method createLayer (line 1609) | createLayer<T extends HTMLElement>(
method createCanvas (line 1648) | createCanvas(
method createCanvasContext (line 1662) | createCanvasContext(id: string, options: { style?: Partial<CSSStyleDec...
method createWebGLContext (line 1683) | createWebGLContext(
method killLayer (line 1735) | killLayer(id: string): this {
method getCamera (line 1760) | getCamera(): Camera {
method setCamera (line 1770) | setCamera(camera: Camera): void {
method getContainer (line 1781) | getContainer(): HTMLElement {
method getGraph (line 1790) | getGraph(): Graph<N, E, G> {
method setGraph (line 1799) | setGraph(graph: Graph<N, E, G>): void {
method getMouseCaptor (line 1829) | getMouseCaptor(): MouseCaptor<N, E, G> {
method getTouchCaptor (line 1838) | getTouchCaptor(): TouchCaptor<N, E, G> {
method getDimensions (line 1847) | getDimensions(): Dimensions {
method getGraphDimensions (line 1856) | getGraphDimensions(): Dimensions {
method getNodeDisplayData (line 1873) | getNodeDisplayData(key: unknown): NodeDisplayData | undefined {
method getEdgeDisplayData (line 1885) | getEdgeDisplayData(key: unknown): EdgeDisplayData | undefined {
method getNodeDisplayedLabels (line 1895) | getNodeDisplayedLabels(): Set<string> {
method getEdgeDisplayedLabels (line 1904) | getEdgeDisplayedLabels(): Set<string> {
method getSettings (line 1913) | getSettings(): Settings<N, E, G> {
method getSetting (line 1923) | getSetting<K extends keyof Settings<N, E, G>>(key: K): Settings<N, E, ...
method setSetting (line 1935) | setSetting<K extends keyof Settings<N, E, G>>(key: K, value: Settings<...
method updateSetting (line 1952) | updateSetting<K extends keyof Settings<N, E, G>>(
method setSettings (line 1966) | setSettings(settings: Partial<Settings<N, E, G>>): this {
method resize (line 1981) | resize(force?: boolean): this {
method clear (line 2049) | clear(): this {
method refresh (line 2074) | refresh(opts?: {
method scheduleRender (line 2135) | scheduleRender(): this {
method scheduleRefresh (line 2153) | scheduleRefresh(opts?: { partialGraph?: { nodes?: string[]; edges?: st...
method getViewportZoomedState (line 2165) | getViewportZoomedState(viewportTarget: Coordinates, newRatio: number):...
method viewRectangle (line 2195) | viewRectangle(): {
method framedGraphToViewport (line 2222) | framedGraphToViewport(coordinates: Coordinates, override: CoordinateCo...
method viewportToFramedGraph (line 2250) | viewportToFramedGraph(coordinates: Coordinates, override: CoordinateCo...
method viewportToGraph (line 2285) | viewportToGraph(viewportPoint: Coordinates, override: CoordinateConver...
method graphToViewport (line 2299) | graphToViewport(graphPoint: Coordinates, override: CoordinateConversio...
method getGraphToViewportRatio (line 2307) | getGraphToViewportRatio(): number {
method getBBox (line 2324) | getBBox(): { x: Extent; y: Extent } {
method getCustomBBox (line 2333) | getCustomBBox(): { x: Extent; y: Extent } | null {
method setCustomBBox (line 2342) | setCustomBBox(customBBox: { x: Extent; y: Extent } | null): this {
method kill (line 2353) | kill(): void {
method scaleSize (line 2429) | scaleSize(size = 1, cameraRatio = this.camera.ratio): number {
method getCanvases (line 2450) | getCanvases(): PlainObject<HTMLCanvasElement> {
FILE: packages/sigma/src/types.ts
type PlainObject (line 15) | type PlainObject<T = any> = { [k: string]: T };
type PartialButFor (line 22) | type PartialButFor<T, K extends keyof T> = Pick<T, K> & Partial<Omit<T, ...
type AtLeastOne (line 27) | type AtLeastOne<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> & U[...
type NonEmptyArray (line 29) | type NonEmptyArray<T> = [T, ...T[]];
type Coordinates (line 31) | interface Coordinates {
type CameraState (line 36) | interface CameraState extends Coordinates {
type MouseInteraction (line 41) | type MouseInteraction = "click" | "doubleClick" | "rightClick" | "wheel"...
type MouseCoords (line 43) | interface MouseCoords extends Coordinates {
type WheelCoords (line 49) | interface WheelCoords extends MouseCoords {
type TouchCoords (line 53) | interface TouchCoords {
type Dimensions (line 61) | interface Dimensions {
type Extent (line 66) | type Extent = [number, number];
type DisplayData (line 68) | interface DisplayData {
type NodeDisplayData (line 78) | interface NodeDisplayData extends Coordinates, DisplayData {
type EdgeDisplayData (line 81) | type EdgeDisplayData = DisplayData;
type CoordinateConversionOverride (line 83) | type CoordinateConversionOverride = {
type RenderParams (line 91) | interface RenderParams {
type Listener (line 110) | type Listener = (...args: any[]) => void;
type EventsMapping (line 111) | type EventsMapping = Record<string, Listener>;
type ITypedEventEmitter (line 113) | interface ITypedEventEmitter<Events extends EventsMapping> {
class TypedEventEmitter (line 133) | class TypedEventEmitter<Events extends EventsMapping> extends (EventEmit...
method constructor (line 136) | constructor() {
type SigmaEventPayload (line 145) | interface SigmaEventPayload {
type SigmaStageEventPayload (line 150) | type SigmaStageEventPayload = SigmaEventPayload;
type SigmaNodeEventPayload (line 151) | interface SigmaNodeEventPayload extends SigmaEventPayload {
type SigmaEdgeEventPayload (line 154) | interface SigmaEdgeEventPayload extends SigmaEventPayload {
type SigmaStageEvents (line 158) | type SigmaStageEvents = {
type SigmaNodeEvents (line 162) | type SigmaNodeEvents = {
type SigmaEdgeEvents (line 166) | type SigmaEdgeEvents = {
type SigmaAdditionalEvents (line 170) | type SigmaAdditionalEvents = {
type SigmaEvents (line 184) | type SigmaEvents = SigmaStageEvents & SigmaNodeEvents & SigmaEdgeEvents ...
type SigmaEventType (line 185) | type SigmaEventType = keyof SigmaEvents;
FILE: packages/sigma/src/utils/animate.ts
type Easing (line 9) | type Easing = keyof typeof easings | ((k: number) => number);
type AnimateOptions (line 11) | interface AnimateOptions {
constant ANIMATE_DEFAULTS (line 15) | const ANIMATE_DEFAULTS = {
function animateNodes (line 23) | function animateNodes(
FILE: packages/sigma/src/utils/colors.ts
constant HTML_COLORS (line 1) | const HTML_COLORS: Record<string, string> = {
function extractPixel (line 155) | function extractPixel(gl: WebGLRenderingContext, x: number, y: number, a...
constant INT8 (line 167) | const INT8 = new Int8Array(4);
constant INT32 (line 168) | const INT32 = new Int32Array(INT8.buffer, 0, 1);
constant FLOAT32 (line 169) | const FLOAT32 = new Float32Array(INT8.buffer, 0, 1);
constant RGBA_TEST_REGEX (line 171) | const RGBA_TEST_REGEX = /^\s*rgba?\s*\(/;
constant RGBA_EXTRACT_REGEX (line 172) | const RGBA_EXTRACT_REGEX = /^\s*rgba?\s*\(\s*([0-9]*)\s*,\s*([0-9]*)\s*,...
type RGBAColor (line 174) | type RGBAColor = { r: number; g: number; b: number; a: number };
function parseColor (line 176) | function parseColor(val: string): RGBAColor {
constant FLOAT_COLOR_CACHE (line 213) | const FLOAT_COLOR_CACHE: { [key: string]: number } = {};
function rgbaToFloat (line 220) | function rgbaToFloat(r: number, g: number, b: number, a: number, masking...
function floatColor (line 225) | function floatColor(val: string): number {
function colorToArray (line 243) | function colorToArray(val: string, masking?: boolean): [number, number, ...
constant FLOAT_INDEX_CACHE (line 259) | const FLOAT_INDEX_CACHE: { [key: number]: number } = {};
function indexToColor (line 260) | function indexToColor(index: number): number {
function colorToIndex (line 283) | function colorToIndex(r: number, g: number, b: number, _a: number): numb...
function getPixelColor (line 292) | function getPixelColor(
FILE: packages/sigma/src/utils/coordinates.ts
function getCorrectionRatio (line 12) | function getCorrectionRatio(
function matrixFromCamera (line 34) | function matrixFromCamera(
function getMatrixImpact (line 98) | function getMatrixImpact(
FILE: packages/sigma/src/utils/data.ts
function extend (line 4) | function extend<T>(array: T[], values: Set<T>): void {
function isPlainObject (line 23) | function isPlainObject(value: unknown): boolean {
function assign (line 30) | function assign<T>(target: Partial<T> | undefined, ...objects: Array<Par...
function assignDeep (line 47) | function assignDeep<T>(target: Partial<T> | undefined, ...objects: Array...
FILE: packages/sigma/src/utils/graph.ts
function graphExtent (line 9) | function graphExtent(graph: Graph): { x: Extent; y: Extent } {
function validateGraph (line 33) | function validateGraph(graph: Graph): void {
FILE: packages/sigma/src/utils/matrices.ts
function identity (line 3) | function identity(): Float32Array {
function scale (line 8) | function scale(m: Float32Array, x: number, y?: number): Float32Array {
function rotate (line 15) | function rotate(m: Float32Array, r: number): Float32Array {
function translate (line 27) | function translate(m: Float32Array, x: number, y: number): Float32Array {
function multiply (line 34) | function multiply<T extends number[] | Float32Array>(a: T, b: Float32Arr...
function multiplyVec2 (line 70) | function multiplyVec2(a: Float32Array | number[], b: Coordinates, z = 1)...
FILE: packages/sigma/src/utils/misc.ts
function createElement (line 6) | function createElement<T extends HTMLElement>(
function getPixelRatio (line 31) | function getPixelRatio(): number {
function zIndexOrdering (line 41) | function zIndexOrdering<T>(_extent: Extent, getter: (e: T) => number, el...
FILE: packages/sigma/src/utils/normalization.ts
type NormalizationFunction (line 6) | interface NormalizationFunction {
function createNormalizationFunction (line 12) | function createNormalizationFunction(extent: { x: Extent; y: Extent }): ...
FILE: packages/storybook/.storybook/main.ts
method viteFinal (line 22) | async viteFinal(config) {
function getAbsolutePath (line 32) | function getAbsolutePath(value: string) {
FILE: packages/storybook/.storybook/manager.tsx
method renderLabel (line 15) | renderLabel(item) {
FILE: packages/storybook/stories/1-core-features/1-load-gexf-file/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/1-core-features/2-events/index.ts
function logEvent (line 17) | function logEvent(event: string, itemType: "node" | "edge" | "positions"...
method edgeReducer (line 47) | edgeReducer(edge, data) {
FILE: packages/storybook/stories/1-core-features/2-events/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/1-core-features/3-layouts/index.ts
function stopFA2 (line 46) | function stopFA2() {
function startFA2 (line 51) | function startFA2() {
function toggleFA2Layout (line 59) | function toggleFA2Layout() {
function randomLayout (line 73) | function randomLayout() {
function circularLayout (line 104) | function circularLayout() {
FILE: packages/storybook/stories/1-core-features/3-layouts/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/1-core-features/4-use-reducers/index.ts
type State (line 24) | interface State {
function setSearchQuery (line 44) | function setSearchQuery(query: string) {
function setHoveredNode (line 89) | function setHoveredNode(node?: string) {
FILE: packages/storybook/stories/1-core-features/4-use-reducers/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/1-core-features/5-custom-rendering/node-gradient-frag.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/storybook/stories/1-core-features/5-custom-rendering/node-gradient-vert.glsl.ts
constant SHADER_SOURCE (line 2) | const SHADER_SOURCE = /*glsl*/ `
FILE: packages/storybook/stories/1-core-features/5-custom-rendering/node-gradient.ts
constant UNIFORMS (line 10) | const UNIFORMS = ["u_sizeRatio", "u_pixelRatio", "u_matrix"] as const;
class NodeGradientProgram (line 12) | class NodeGradientProgram extends NodeProgram<(typeof UNIFORMS)[number]> {
method getDefinition (line 13) | getDefinition() {
method processVisibleItem (line 29) | processVisibleItem(nodeIndex: number, startIndex: number, data: NodeDi...
method setUniforms (line 39) | setUniforms(params: RenderParams, { gl, uniformLocations }: ProgramInf...
FILE: packages/storybook/stories/1-core-features/5-custom-rendering/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/1-core-features/6-csv-to-network-map/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/1-core-features/7-camera-control/index.ts
function initGraph (line 10) | async function initGraph() {
FILE: packages/storybook/stories/1-core-features/7-camera-control/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/2-advanced-usecases/cluster-label/index.ts
type Cluster (line 18) | interface Cluster {
FILE: packages/storybook/stories/2-advanced-usecases/cluster-label/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/2-advanced-usecases/events-shadowdom/index.ts
function logEvent (line 12) | function logEvent(event: string, itemType: "node" | "edge" | "positions"...
method constructor (line 44) | constructor() {
method connectedCallback (line 48) | connectedCallback() {
FILE: packages/storybook/stories/2-advanced-usecases/events-shadowdom/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/2-advanced-usecases/fit-sizes-to-positions/index.ts
function refreshSettings (line 76) | function refreshSettings() {
FILE: packages/storybook/stories/2-advanced-usecases/fit-sizes-to-positions/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/2-advanced-usecases/large-graphs/index.ts
constant DEFAULT_ARGS (line 13) | const DEFAULT_ARGS = {
function toggleFA2Layout (line 81) | function toggleFA2Layout() {
FILE: packages/storybook/stories/2-advanced-usecases/large-graphs/stories.ts
type StoryArgs (line 8) | type StoryArgs = {
type Story (line 46) | type Story = StoryObj<StoryArgs>;
FILE: packages/storybook/stories/2-advanced-usecases/load-rdf-file/index.ts
function parseJsonLdExtended (line 21) | function parseJsonLdExtended(item: NodeObject, graph: Graph): string {
function stopFA2 (line 76) | function stopFA2() {
function startFA2 (line 81) | function startFA2() {
function toggleFA2Layout (line 89) | function toggleFA2Layout() {
FILE: packages/storybook/stories/2-advanced-usecases/load-rdf-file/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/2-advanced-usecases/mouse-manipulations/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/edge-curve/parallel-edges.ts
function getCurvature (line 6) | function getCurvature(index: number, maxIndex: number): number {
FILE: packages/storybook/stories/3-additional-packages/edge-curve/stories.ts
type Story (line 22) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/export-image/stories.ts
type Story (line 16) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/layer-leaflet/stories.ts
type Story (line 20) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/layer-maplibre/stories.ts
type Story (line 18) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/layer-webgl/stories.ts
type Story (line 18) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/node-border/stories.ts
type Story (line 20) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/node-image/local-images.ts
constant STRING_SVG_ICON (line 14) | const STRING_SVG_ICON = `<svg
constant BASE_64_IMAGE (line 27) | const BASE_64_IMAGE =
function svgToDataURI (line 30) | function svgToDataURI(svg: string): string {
FILE: packages/storybook/stories/3-additional-packages/node-image/stories.ts
type Story (line 22) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/node-piechart/stories.ts
type Story (line 18) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/node-square/stories.ts
type Story (line 14) | type Story = StoryObj;
FILE: packages/storybook/stories/3-additional-packages/utils/stories.ts
type Story (line 16) | type Story = StoryObj;
FILE: packages/storybook/stories/utils.ts
function onStoryDown (line 1) | function onStoryDown(cleanFn: () => void) {
function wrapStory (line 14) | function wrapStory(story: () => void | (() => void)) {
FILE: packages/template/src/index.ts
function template (line 1) | function template() {
FILE: packages/test/app/index.ts
function executeAndRequestFrame (line 25) | function executeAndRequestFrame() {
function globalize (line 47) | function globalize(variables: Record<string, unknown>): void {
FILE: packages/test/benchmarks/suite.bench.ts
constant ITERATIONS (line 10) | const ITERATIONS = 20;
constant METHODS (line 11) | const METHODS = ["refresh", "render"] as const;
constant SIZES (line 12) | const SIZES = ["small", "medium", "large"] as const;
type Size (line 13) | type Size = (typeof SIZES)[number];
constant SCREEN_SIZES (line 15) | const SCREEN_SIZES: Record<Size, number> = {
constant GRAPHS (line 20) | const GRAPHS = {
FILE: packages/test/helpers.ts
function rafNTimes (line 5) | function rafNTimes(fn: (step: number) => void, n: number): Promise<void> {
type BrowserTestDependencies (line 24) | type BrowserTestDependencies = {
FILE: packages/test/unit/_helpers.ts
function wait (line 4) | function wait(timeout: number): Promise<void> {
function add (line 8) | function add<T extends Coordinates>(p: T, vec: Coordinates): T {
function remove (line 16) | function remove<T extends Coordinates>(p: T, vec: Coordinates): T {
function rotate (line 24) | function rotate<T extends Coordinates>(p: T, { x: cx, y: cy }: Coordinat...
function expectObjectsToBeClose (line 35) | function expectObjectsToBeClose<T extends Record<string, number>>(o1: T,...
type TouchSpec (line 43) | type TouchSpec = Coordinates & { id: number };
type TouchEventType (line 44) | type TouchEventType = "touchstart" | "touchend" | "touchmove";
function simulateTouchEvent (line 45) | async function simulateTouchEvent(element: HTMLElement, type: TouchEvent...
type MouseEventType (line 71) | type MouseEventType = "mousedown" | "mouseup" | "mousemove";
function simulateMouseEvent (line 72) | async function simulateMouseEvent(element: HTMLElement, type: MouseEvent...
FILE: packages/test/unit/layer-leaflet/lifecycle.ts
constant GRAPH (line 8) | const GRAPH: Pick<SerializedGraph, "nodes" | "edges"> = {
type SigmaTestContext (line 16) | interface SigmaTestContext {
FILE: packages/test/unit/layer-maplibre/lifecycle.ts
constant GRAPH (line 8) | const GRAPH: Pick<SerializedGraph, "nodes" | "edges"> = {
type SigmaTestContext (line 16) | interface SigmaTestContext {
FILE: packages/test/unit/sigma/events.ts
type SigmaTestContext (line 11) | interface SigmaTestContext {
constant STAGE_WIDTH (line 18) | const STAGE_WIDTH = 300;
constant STAGE_HEIGHT (line 19) | const STAGE_HEIGHT = 600;
constant GRAPH (line 21) | const GRAPH: Pick<SerializedGraph, "nodes" | "edges"> = {
FILE: packages/test/unit/sigma/lifecycle.ts
type SigmaTestContext (line 7) | interface SigmaTestContext {
FILE: packages/test/unit/sigma/mouse.ts
type SigmaTestContext (line 11) | interface SigmaTestContext {
constant STAGE_WIDTH (line 17) | const STAGE_WIDTH = 200;
constant STAGE_HEIGHT (line 18) | const STAGE_HEIGHT = 400;
constant GRAPH (line 20) | const GRAPH: Pick<SerializedGraph, "nodes" | "edges"> = {
FILE: packages/test/unit/sigma/settings.ts
type SigmaTestContext (line 7) | interface SigmaTestContext {
FILE: packages/test/unit/sigma/touch.ts
type SigmaTestContext (line 9) | interface SigmaTestContext {
constant STAGE_WIDTH (line 16) | const STAGE_WIDTH = 200;
constant STAGE_HEIGHT (line 17) | const STAGE_HEIGHT = 400;
constant ID_A (line 18) | const ID_A = 1;
constant ID_B (line 19) | const ID_B = 2;
constant T_A (line 20) | const T_A = { id: ID_A, x: STAGE_WIDTH / 3, y: STAGE_HEIGHT / 3 };
constant T_B (line 21) | const T_B = { id: ID_B, x: (STAGE_WIDTH * 2) / 3, y: (STAGE_HEIGHT * 2) ...
constant GRAPH (line 23) | const GRAPH: Pick<SerializedGraph, "nodes" | "edges"> = {
FILE: packages/test/unit/utils/fitViewportToNodes.ts
constant GRAPH (line 9) | const GRAPH: Pick<SerializedGraph, "nodes" | "edges"> = {
type SigmaTestContext (line 24) | interface SigmaTestContext {
FILE: packages/utils/src/fitViewportToNodes.ts
type FitViewportToNodesOptions (line 5) | type FitViewportToNodesOptions = {
constant DEFAULT_FIT_VIEWPORT_TO_NODES_OPTIONS (line 8) | const DEFAULT_FIT_VIEWPORT_TO_NODES_OPTIONS: FitViewportToNodesOptions = {
function getCameraStateToFitViewportToNodes (line 20) | function getCameraStateToFitViewportToNodes(
function fitViewportToNodes (line 87) | async function fitViewportToNodes(
FILE: packages/utils/src/getNodesInViewport.ts
function getNodesInViewport (line 9) | function getNodesInViewport(sigma: Sigma): string[] {
FILE: packages/website/docusaurus.config.js
constant TAGLINE (line 4) | const TAGLINE = "a JavaScript library aimed at visualizing graphs of tho...
FILE: packages/website/src/theme/Footer/index.js
function Footer (line 3) | function Footer() {
FILE: packages/website/src/theme/Navbar/Logo/index.js
function NavbarLogo (line 3) | function NavbarLogo() {
FILE: packages/website/src/theme/NotFound.js
function NotFoundWrapper (line 5) | function NotFoundWrapper(props) {
Copy disabled (too large)
Download .json
Condensed preview — 379 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (28,484K chars).
[
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 1536,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: \"\"\nlabels: bug\nassignees: \"\"\n---\n\n## Guidelines\n\nP"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 892,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: \"\"\nlabels: enhancement\nassignees: \"\"\n---\n\n## Gu"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 953,
"preview": "## Pull request type\n\nCheck the type of change your PR introduces:\n\n- [ ] Bugfix\n- [ ] Feature\n- [ ] Code style update ("
},
{
"path": ".github/stale.yml",
"chars": 750,
"preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 40\n# Number of days of inactivity before a "
},
{
"path": ".github/workflows/build.yml",
"chars": 580,
"preview": "name: Build\n\non:\n push:\n tags: \"*\"\n\njobs:\n build:\n timeout-minutes: 60\n runs-on: ubuntu-latest\n steps:\n "
},
{
"path": ".github/workflows/tests.yml",
"chars": 1466,
"preview": "name: Tests\n\non: [push, pull_request]\n\njobs:\n tests:\n timeout-minutes: 60\n runs-on: ubuntu-latest\n steps:\n "
},
{
"path": ".github/workflows/website.yml",
"chars": 671,
"preview": "name: Website\n\non:\n push:\n branches:\n - main\n\njobs:\n publish:\n timeout-minutes: 60\n runs-on: ubuntu-late"
},
{
"path": ".gitignore",
"chars": 71,
"preview": "node_modules\n*.tgz\n*.log\n*.swp\n.DS_Store\n.idea\n.vscode\n\n*storybook.log\n"
},
{
"path": ".prettierignore",
"chars": 179,
"preview": "**/dist/*\n**/build/*\n**/node_modules/*\n\n# Tests\n**/coverage/**\n**/playwright-report/**\n**/test-results/**\n\n# Doc and exa"
},
{
"path": ".prettierrc.json",
"chars": 276,
"preview": "{\n \"trailingComma\": \"all\",\n \"printWidth\": 120,\n \"importOrder\": [\"<THIRD_PARTY_MODULES>\", \"^[./]\"],\n \"importOrderSepa"
},
{
"path": "CHANGELOG.md",
"chars": 10797,
"preview": "# sigma.js - changelog:\n\n## 3.0.2\n\n### Bug fixes\n\n- [#1517](https://github.com/jacomyal/sigma.js/issues/1517) - Fixing c"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5221,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "CONTRIBUTING.md",
"chars": 3463,
"preview": "# Contributor Guide\n\nThank you for investing your time in contributing to our project!\n\nIn this guide you will get an ov"
},
{
"path": "LICENSE.txt",
"chars": 1120,
"preview": "Copyright (C) 2013-2025, Alexis Jacomy, Guillaume Plique, Benoît Simard https://www.sigmajs.org\n\nPermission is hereby gr"
},
{
"path": "README.md",
"chars": 3584,
"preview": "[](https://github.com/jacomyal/sigma.js/a"
},
{
"path": "babel.config.js",
"chars": 84,
"preview": "module.exports = {\n presets: [\"@babel/preset-env\", \"@babel/preset-typescript\"],\n};\n"
},
{
"path": "bin/create-package.ts",
"chars": 4011,
"preview": "/* global __dirname */\nimport * as process from \"node:process\";\nimport * as path from \"path\";\nimport * as readline from "
},
{
"path": "eslint.config.mjs",
"chars": 2006,
"preview": "import { fixupPluginRules } from \"@eslint/compat\";\nimport { FlatCompat } from \"@eslint/eslintrc\";\nimport js from \"@eslin"
},
{
"path": "lerna.json",
"chars": 158,
"preview": "{\n \"$schema\": \"node_modules/lerna/schemas/lerna-schema.json\",\n \"version\": \"independent\",\n \"private\": false,\n \"push\":"
},
{
"path": "package.json",
"chars": 2340,
"preview": "{\n \"name\": \"@sigma/root\",\n \"description\": \"A JavaScript library aimed at visualizing graphs of thousands of nodes and "
},
{
"path": "packages/demo/.gitignore",
"chars": 331,
"preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
},
{
"path": "packages/demo/README.md",
"chars": 1104,
"preview": "# Sigma.js full-featured demo\n\nThis project aims to provide a full-features \"real life\" application using sigma.js. It i"
},
{
"path": "packages/demo/index.html",
"chars": 611,
"preview": "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" href=\"/favicon.ico\" />\n <"
},
{
"path": "packages/demo/package.json",
"chars": 1135,
"preview": "{\n \"name\": \"@sigma/demo\",\n \"private\": true,\n \"homepage\": \"/demo\",\n \"scripts\": {\n \"start\": \"vite\",\n \"build\": \"t"
},
{
"path": "packages/demo/public/dataset.json",
"chars": 884951,
"preview": "{\n \"nodes\": [\n {\n \"key\": \"cytoscape\",\n \"label\": \"Cytoscape\",\n \"tag\": \"Tool\",\n \"URL\": \"https://en"
},
{
"path": "packages/demo/src/canvas-utils.ts",
"chars": 3756,
"preview": "import { Settings } from \"sigma/settings\";\nimport { NodeDisplayData, PartialButFor, PlainObject } from \"sigma/types\";\n\nc"
},
{
"path": "packages/demo/src/index.tsx",
"chars": 282,
"preview": "import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\n\nimport \"./styles.css\";\nimport Root from \"./views/Ro"
},
{
"path": "packages/demo/src/styles.css",
"chars": 6188,
"preview": "@import url(\"https://fonts.googleapis.com/css2?family=Lora&family=Public+Sans:ital@0;1&display=swap\");\n\n/**\n * VARIABLES"
},
{
"path": "packages/demo/src/types.ts",
"chars": 504,
"preview": "export interface NodeData {\n key: string;\n label: string;\n tag: string;\n URL: string;\n cluster: string;\n x: number"
},
{
"path": "packages/demo/src/use-debounce.ts",
"chars": 839,
"preview": "import { useEffect, useState } from \"react\";\n\nfunction useDebounce<T>(value: T, delay: number): T {\n // State and sette"
},
{
"path": "packages/demo/src/views/ClustersPanel.tsx",
"chars": 4353,
"preview": "import { useSigma } from \"@react-sigma/core\";\nimport { keyBy, mapValues, sortBy, values } from \"lodash\";\nimport { FC, us"
},
{
"path": "packages/demo/src/views/DescriptionPanel.tsx",
"chars": 2421,
"preview": "import { FC } from \"react\";\nimport { BsInfoCircle } from \"react-icons/bs\";\n\nimport Panel from \"./Panel\";\n\nconst Descript"
},
{
"path": "packages/demo/src/views/GraphDataController.tsx",
"chars": 651,
"preview": "import { useSigma } from \"@react-sigma/core\";\nimport { FC, PropsWithChildren, useEffect } from \"react\";\n\nimport { Filter"
},
{
"path": "packages/demo/src/views/GraphEventsController.tsx",
"chars": 1339,
"preview": "import { useRegisterEvents, useSigma } from \"@react-sigma/core\";\nimport { FC, PropsWithChildren, useEffect } from \"react"
},
{
"path": "packages/demo/src/views/GraphSettingsController.tsx",
"chars": 2959,
"preview": "import { useSetSettings, useSigma } from \"@react-sigma/core\";\nimport { Attributes } from \"graphology-types\";\nimport { FC"
},
{
"path": "packages/demo/src/views/GraphTitle.tsx",
"chars": 1672,
"preview": "import { useSigma } from \"@react-sigma/core\";\nimport { FC, useEffect, useState } from \"react\";\n\nimport { FiltersState } "
},
{
"path": "packages/demo/src/views/Panel.tsx",
"chars": 1120,
"preview": "import { FC, PropsWithChildren, ReactNode, useEffect, useRef, useState } from \"react\";\nimport AnimateHeight from \"react-"
},
{
"path": "packages/demo/src/views/Root.tsx",
"chars": 6655,
"preview": "import { FullScreenControl, SigmaContainer, ZoomControl } from \"@react-sigma/core\";\nimport { createNodeImageProgram } fr"
},
{
"path": "packages/demo/src/views/SearchField.tsx",
"chars": 3057,
"preview": "import { useSigma } from \"@react-sigma/core\";\nimport { Attributes } from \"graphology-types\";\nimport { ChangeEvent, FC, K"
},
{
"path": "packages/demo/src/views/TagsPanel.tsx",
"chars": 4138,
"preview": "import { useSigma } from \"@react-sigma/core\";\nimport { keyBy, mapValues, sortBy, values } from \"lodash\";\nimport { FC, us"
},
{
"path": "packages/demo/tsconfig.json",
"chars": 272,
"preview": "{\n \"extends\": \"../../tsconfig.base.json\",\n \"compileOnSave\": false,\n \"include\": [\"src\"],\n \"compilerOptions\": {\n \"j"
},
{
"path": "packages/demo/vite-env.d.ts",
"chars": 38,
"preview": "/// <reference types=\"vite/client\" />\n"
},
{
"path": "packages/demo/vite.config.mts",
"chars": 488,
"preview": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\nimport checker from \"vite-plugin-checker\""
},
{
"path": "packages/edge-curve/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/edge-curve/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/edge-curve/README.md",
"chars": 1779,
"preview": "# Sigma.js - Edge curve renderer\n\nThis package contains a curved edges renderer for [sigma.js](https://sigmajs.org).\n\nIt"
},
{
"path": "packages/edge-curve/package.json",
"chars": 1196,
"preview": "{\n \"name\": \"@sigma/edge-curve\",\n \"version\": \"3.1.0\",\n \"description\": \"An edge program that renders edges as curves fo"
},
{
"path": "packages/edge-curve/src/edge-labels.ts",
"chars": 5446,
"preview": "import { Attributes } from \"graphology-types\";\nimport { EdgeLabelDrawingFunction } from \"sigma/rendering\";\nimport { Sett"
},
{
"path": "packages/edge-curve/src/factory.ts",
"chars": 4729,
"preview": "import { Attributes } from \"graphology-types\";\nimport { EdgeProgram, EdgeProgramType, ProgramInfo } from \"sigma/renderin"
},
{
"path": "packages/edge-curve/src/index.ts",
"chars": 907,
"preview": "import { DEFAULT_EDGE_ARROW_HEAD_PROGRAM_OPTIONS, EdgeProgramType } from \"sigma/rendering\";\n\nimport createEdgeCurveProgr"
},
{
"path": "packages/edge-curve/src/shader-frag.ts",
"chars": 2835,
"preview": "import { CreateEdgeCurveProgramOptions } from \"./utils\";\n\nexport default function getFragmentShader({ arrowHead }: Creat"
},
{
"path": "packages/edge-curve/src/shader-vert.ts",
"chars": 3739,
"preview": "import { CreateEdgeCurveProgramOptions } from \"./utils\";\n\nexport default function getVertexShader({ arrowHead }: CreateE"
},
{
"path": "packages/edge-curve/src/utils.ts",
"chars": 4340,
"preview": "import Graph from \"graphology\";\nimport { Attributes } from \"graphology-types\";\nimport { EdgeLabelDrawingFunction } from "
},
{
"path": "packages/edge-curve/tsconfig.json",
"chars": 1441,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\", // Specifies the JavaScript version to target when transpiling code.\n "
},
{
"path": "packages/export-image/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/export-image/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/export-image/README.md",
"chars": 2571,
"preview": "# Sigma.js - Export image\n\nThis package provides various functions to capture snapshots of a [sigma.js](https://www.sigm"
},
{
"path": "packages/export-image/package.json",
"chars": 1016,
"preview": "{\n \"name\": \"@sigma/export-image\",\n \"version\": \"3.0.0\",\n \"description\": \"An helper to capture snapshots of sigma.js in"
},
{
"path": "packages/export-image/src/downloadAsImage.ts",
"chars": 1210,
"preview": "import FileSaver from \"file-saver\";\nimport Sigma from \"sigma\";\n\nimport { DEFAULT_TO_IMAGE_OPTIONS, ToImageOptions } from"
},
{
"path": "packages/export-image/src/drawOnCanvas.ts",
"chars": 2622,
"preview": "import Sigma from \"sigma\";\n\nimport { DEFAULT_TO_IMAGE_OPTIONS, ToImageOptions } from \"./options\";\n\n/**\n * This function "
},
{
"path": "packages/export-image/src/index.ts",
"chars": 122,
"preview": "export * from \"./options\";\nexport * from \"./drawOnCanvas\";\n\nexport * from \"./toImage\";\nexport * from \"./downloadAsImage\""
},
{
"path": "packages/export-image/src/options.ts",
"chars": 718,
"preview": "import Sigma from \"sigma\";\nimport { Settings } from \"sigma/settings\";\nimport { CameraState } from \"sigma/types\";\n\nexport"
},
{
"path": "packages/export-image/src/toImage.ts",
"chars": 1304,
"preview": "import Sigma from \"sigma\";\n\nimport { drawOnCanvas } from \"./drawOnCanvas\";\nimport { DEFAULT_TO_IMAGE_OPTIONS, ToImageOpt"
},
{
"path": "packages/export-image/tsconfig.json",
"chars": 642,
"preview": "{\n \"extends\": \"../../tsconfig.base.json\",\n \"compilerOptions\": {\n \"target\": \"ESNext\",\n \"useDefineForClassFields\":"
},
{
"path": "packages/layer-leaflet/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/layer-leaflet/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/layer-leaflet/README.md",
"chars": 1179,
"preview": "# Sigma.js - Leaflet background layer\n\nThis package contains a leaflet background layer for [sigma.js](https://sigmajs.o"
},
{
"path": "packages/layer-leaflet/package.json",
"chars": 1199,
"preview": "{\n \"name\": \"@sigma/layer-leaflet\",\n \"version\": \"3.0.0\",\n \"description\": \"A plugin to set a geographical map in backgr"
},
{
"path": "packages/layer-leaflet/src/index.ts",
"chars": 5687,
"preview": "import Graph from \"graphology\";\nimport { Attributes } from \"graphology-types\";\nimport L, { MapOptions } from \"leaflet\";\n"
},
{
"path": "packages/layer-leaflet/src/utils.ts",
"chars": 4052,
"preview": "import { LatLngBounds, Map } from \"leaflet\";\nimport { Sigma } from \"sigma\";\n\nexport const LEAFLET_MAX_PIXEL = 256 * 2 **"
},
{
"path": "packages/layer-leaflet/tsconfig.json",
"chars": 1441,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\", // Specifies the JavaScript version to target when transpiling code.\n "
},
{
"path": "packages/layer-maplibre/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/layer-maplibre/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/layer-maplibre/README.md",
"chars": 1196,
"preview": "# Sigma.js - Maplibre background layer\n\nThis package contains a maplibre background layer for [sigma.js](https://sigmajs"
},
{
"path": "packages/layer-maplibre/package.json",
"chars": 1151,
"preview": "{\n \"name\": \"@sigma/layer-maplibre\",\n \"version\": \"3.0.0\",\n \"description\": \"A plugin to set a geographical map in backg"
},
{
"path": "packages/layer-maplibre/src/index.ts",
"chars": 5169,
"preview": "import Graph from \"graphology\";\nimport { Attributes } from \"graphology-types\";\nimport { LngLat, Map, MapOptions } from \""
},
{
"path": "packages/layer-maplibre/src/utils.ts",
"chars": 2489,
"preview": "import { LngLatBounds, Map, MercatorCoordinate } from \"maplibre-gl\";\nimport { Sigma } from \"sigma\";\n\n// See https://gith"
},
{
"path": "packages/layer-maplibre/tsconfig.json",
"chars": 1441,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\", // Specifies the JavaScript version to target when transpiling code.\n "
},
{
"path": "packages/layer-webgl/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/layer-webgl/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/layer-webgl/README.md",
"chars": 1422,
"preview": "# Sigma.js - WebGL layers\n\nThis package enables adding custom WebGL layers in [sigma.js](https://sigmajs.org):\n\n- `WebGL"
},
{
"path": "packages/layer-webgl/package.json",
"chars": 1112,
"preview": "{\n \"name\": \"@sigma/layer-webgl\",\n \"version\": \"3.0.0\",\n \"description\": \"A package to help drawing custom WebGL layers "
},
{
"path": "packages/layer-webgl/src/bind-webgl-layer.ts",
"chars": 1565,
"preview": "import Sigma from \"sigma\";\n\nimport { WebGLLayerProgramType } from \"./webgl-layer-program\";\n\n/**\n * This function helps t"
},
{
"path": "packages/layer-webgl/src/contours/index.ts",
"chars": 4416,
"preview": "import { Attributes } from \"graphology-types\";\nimport Sigma from \"sigma\";\nimport { ProgramInfo } from \"sigma/rendering\";"
},
{
"path": "packages/layer-webgl/src/contours/shader-frag.ts",
"chars": 4272,
"preview": "import { numberToGLSLFloat } from \"sigma/rendering\";\n\nimport { ContoursOptions } from \"./types\";\n\nexport default functio"
},
{
"path": "packages/layer-webgl/src/contours/types.ts",
"chars": 478,
"preview": "export type ContoursOptions = {\n radius: number;\n feather: number;\n zoomToRadiusRatioFunction: (ratio: number) => num"
},
{
"path": "packages/layer-webgl/src/index.ts",
"chars": 186,
"preview": "// Custom layer utils:\nexport * from \"./webgl-layer-program\";\nexport { default as bindWebGLLayer } from \"./bind-webgl-la"
},
{
"path": "packages/layer-webgl/src/webgl-layer-program/index.ts",
"chars": 3315,
"preview": "import { Attributes } from \"graphology-types\";\nimport Sigma from \"sigma\";\nimport { Program, ProgramDefinition, type Prog"
},
{
"path": "packages/layer-webgl/src/webgl-layer-program/shader-vert.ts",
"chars": 212,
"preview": "export default function getVertexShader() {\n // language=GLSL\n const SHADER = /*glsl*/ `#version 300 es\nin vec2 a_posi"
},
{
"path": "packages/layer-webgl/tsconfig.json",
"chars": 644,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\",\n \"useDefineForClassFields\": true,\n \"lib\": [\"ES2020\", \"DOM\", \"DOM."
},
{
"path": "packages/node-border/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/node-border/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/node-border/README.md",
"chars": 1411,
"preview": "# Sigma.js - Node border renderer\n\nThis package contains a node border renderer for [sigma.js](https://sigmajs.org).\n\nIt"
},
{
"path": "packages/node-border/package.json",
"chars": 1119,
"preview": "{\n \"name\": \"@sigma/node-border\",\n \"version\": \"3.0.0\",\n \"description\": \"A node program that renders concentric discs i"
},
{
"path": "packages/node-border/src/factory.ts",
"chars": 3760,
"preview": "import { Attributes } from \"graphology-types\";\nimport { NodeProgram, NodeProgramType, ProgramInfo } from \"sigma/renderin"
},
{
"path": "packages/node-border/src/index.ts",
"chars": 243,
"preview": "import { NodeProgramType } from \"sigma/rendering\";\n\nimport createNodeBorderProgram from \"./factory\";\n\nexport { default a"
},
{
"path": "packages/node-border/src/shader-frag.ts",
"chars": 3596,
"preview": "import { numberToGLSLFloat } from \"sigma/rendering\";\n\nimport { CreateNodeBorderProgramOptions, DEFAULT_BORDER_SIZE_MODE,"
},
{
"path": "packages/node-border/src/shader-vert.ts",
"chars": 1589,
"preview": "import { CreateNodeBorderProgramOptions } from \"./utils\";\n\nexport default function getVertexShader({ borders }: CreateNo"
},
{
"path": "packages/node-border/src/utils.ts",
"chars": 1346,
"preview": "import { Attributes } from \"graphology-types\";\nimport { NodeHoverDrawingFunction, NodeLabelDrawingFunction } from \"sigma"
},
{
"path": "packages/node-border/tsconfig.json",
"chars": 1441,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\", // Specifies the JavaScript version to target when transpiling code.\n "
},
{
"path": "packages/node-image/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/node-image/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/node-image/README.md",
"chars": 3727,
"preview": "# Sigma.js - Node image renderer\n\nThis package contains a node image renderer for [sigma.js](https://sigmajs.org).\n\nImag"
},
{
"path": "packages/node-image/package.json",
"chars": 1186,
"preview": "{\n \"name\": \"@sigma/node-image\",\n \"version\": \"3.0.0\",\n \"description\": \"A node program that renders images for sigma.js"
},
{
"path": "packages/node-image/src/factory.ts",
"chars": 10083,
"preview": "import { Attributes } from \"graphology-types\";\nimport Sigma from \"sigma\";\nimport {\n NodeHoverDrawingFunction,\n NodeLab"
},
{
"path": "packages/node-image/src/index.ts",
"chars": 437,
"preview": "import { NodeProgramType } from \"sigma/rendering\";\n\nimport createNodeImageProgram from \"./factory\";\n\nexport { default as"
},
{
"path": "packages/node-image/src/shader-frag.ts",
"chars": 3022,
"preview": "export default function getFragmentShader({ texturesCount }: { texturesCount: number }) {\n // language=GLSL\n const SHA"
},
{
"path": "packages/node-image/src/shader-vert.ts",
"chars": 1190,
"preview": "// language=GLSL\nconst VERTEX_SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_p"
},
{
"path": "packages/node-image/src/texture.ts",
"chars": 14128,
"preview": "import { EventEmitter } from \"events\";\nimport { Coordinates } from \"sigma/types\";\n\n/**\n * Useful types:\n * *************"
},
{
"path": "packages/node-image/tsconfig.json",
"chars": 1441,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\", // Specifies the JavaScript version to target when transpiling code.\n "
},
{
"path": "packages/node-piechart/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/node-piechart/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/node-piechart/README.md",
"chars": 1649,
"preview": "# Sigma.js - Node pie-chart renderer\n\nThis package contains a node pie-chart renderer for [sigma.js](https://sigmajs.org"
},
{
"path": "packages/node-piechart/package.json",
"chars": 1128,
"preview": "{\n \"name\": \"@sigma/node-piechart\",\n \"version\": \"3.0.0\",\n \"description\": \"A node program that renders nodes as piechar"
},
{
"path": "packages/node-piechart/src/factory.ts",
"chars": 4438,
"preview": "import { Attributes } from \"graphology-types\";\nimport { NodeProgram, NodeProgramType, ProgramInfo } from \"sigma/renderin"
},
{
"path": "packages/node-piechart/src/index.ts",
"chars": 92,
"preview": "export { default as createNodePiechartProgram } from \"./factory\";\n\nexport * from \"./utils\";\n"
},
{
"path": "packages/node-piechart/src/shader-frag.ts",
"chars": 3028,
"preview": "import { numberToGLSLFloat } from \"sigma/rendering\";\n\nimport { CreateNodePiechartProgramOptions } from \"./utils\";\n\nexpor"
},
{
"path": "packages/node-piechart/src/shader-vert.ts",
"chars": 1744,
"preview": "import { CreateNodePiechartProgramOptions } from \"./utils\";\n\nexport default function getVertexShader({ slices, offset }:"
},
{
"path": "packages/node-piechart/src/utils.ts",
"chars": 1118,
"preview": "import { Attributes } from \"graphology-types\";\nimport { NodeHoverDrawingFunction, NodeLabelDrawingFunction } from \"sigma"
},
{
"path": "packages/node-piechart/tsconfig.json",
"chars": 1441,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\", // Specifies the JavaScript version to target when transpiling code.\n "
},
{
"path": "packages/node-square/.gitignore",
"chars": 18,
"preview": "node_modules\ndist\n"
},
{
"path": "packages/node-square/.npmignore",
"chars": 42,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\n"
},
{
"path": "packages/node-square/README.md",
"chars": 801,
"preview": "# Sigma.js - Node square renderer\n\nThis package contains a node square renderer for [sigma.js](https://sigmajs.org), as "
},
{
"path": "packages/node-square/package.json",
"chars": 1110,
"preview": "{\n \"name\": \"@sigma/node-square\",\n \"version\": \"3.0.0\",\n \"description\": \"A node program that renders nodes as squares f"
},
{
"path": "packages/node-square/src/index.ts",
"chars": 72,
"preview": "export * from \"./utils\";\nexport { NodeSquareProgram } from \"./program\";\n"
},
{
"path": "packages/node-square/src/program.ts",
"chars": 2257,
"preview": "import { Attributes } from \"graphology-types\";\nimport { NodeProgram, ProgramInfo } from \"sigma/rendering\";\nimport { Node"
},
{
"path": "packages/node-square/src/shader-frag.ts",
"chars": 179,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nprecision mediump float;\n\nvarying vec4 v_color;\n\nvoid main(void) {\n g"
},
{
"path": "packages/node-square/src/shader-vert.ts",
"chars": 813,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_position"
},
{
"path": "packages/node-square/src/utils.ts",
"chars": 2384,
"preview": "import { Attributes } from \"graphology-types\";\nimport { drawDiscNodeLabel } from \"sigma/rendering\";\nimport { Settings } "
},
{
"path": "packages/node-square/tsconfig.json",
"chars": 1441,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"ESNext\", // Specifies the JavaScript version to target when transpiling code.\n "
},
{
"path": "packages/sigma/.gitignore",
"chars": 27,
"preview": "node_modules\ndist\nREADME.md"
},
{
"path": "packages/sigma/.npmignore",
"chars": 57,
"preview": ".gitignore\nnode_modules\nsrc\ntsconfig.json\nvite.config.mts"
},
{
"path": "packages/sigma/package.json",
"chars": 2313,
"preview": "{\n \"name\": \"sigma\",\n \"version\": \"3.0.2\",\n \"description\": \"A JavaScript library aimed at visualizing graphs of thousan"
},
{
"path": "packages/sigma/rendering/package.json",
"chars": 87,
"preview": "{\n \"main\": \"dist/sigma-rendering.cjs.js\",\n \"module\": \"dist/sigma-rendering.esm.js\"\n}\n"
},
{
"path": "packages/sigma/settings/package.json",
"chars": 85,
"preview": "{\n \"main\": \"dist/sigma-settings.cjs.js\",\n \"module\": \"dist/sigma-settings.esm.js\"\n}\n"
},
{
"path": "packages/sigma/src/core/camera.ts",
"chars": 7985,
"preview": "/**\n * Sigma.js Camera Class\n * ======================\n *\n * Class designed to store camera information & used to update"
},
{
"path": "packages/sigma/src/core/captors/captor.ts",
"chars": 4487,
"preview": "/**\n * Sigma.js Captor Class\n * ======================\n * @module\n */\nimport { Attributes } from \"graphology-types\";\n\nim"
},
{
"path": "packages/sigma/src/core/captors/mouse.ts",
"chars": 11477,
"preview": "/**\n * Sigma.js Mouse Captor\n * ======================\n *\n * Sigma's captor dealing with the user's mouse.\n * @module\n *"
},
{
"path": "packages/sigma/src/core/captors/touch.ts",
"chars": 11358,
"preview": "/**\n * Sigma.js Touch Captor\n * ======================\n *\n * Sigma's captor dealing with touch.\n * @module\n */\nimport { "
},
{
"path": "packages/sigma/src/core/labels.ts",
"chars": 4397,
"preview": "/**\n * Sigma.js Labels Heuristics\n * ===========================\n *\n * Miscellaneous heuristics related to label display"
},
{
"path": "packages/sigma/src/index-bundle.ts",
"chars": 985,
"preview": "/**\n * Sigma.js Bundle Endpoint\n * ========================\n *\n * The library endpoint.\n * Will be built so that it expo"
},
{
"path": "packages/sigma/src/index.ts",
"chars": 341,
"preview": "/**\n * Sigma.js Library Endpoint\n * =========================\n *\n * The library endpoint.\n * @module\n */\nimport Camera f"
},
{
"path": "packages/sigma/src/rendering/edge-labels.ts",
"chars": 2894,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { Settings } from \"../settings\";\nimport { EdgeDisplayData, NodeDi"
},
{
"path": "packages/sigma/src/rendering/edge.ts",
"chars": 4561,
"preview": "/**\n * Sigma.js WebGL Abstract Edge Program\n * =====================================\n *\n * @module\n */\nimport { Attribut"
},
{
"path": "packages/sigma/src/rendering/index.ts",
"chars": 2106,
"preview": "/**\n * Just some shortcuts to ease importing various rendering related things from\n * the codebase:\n */\nexport { NodePro"
},
{
"path": "packages/sigma/src/rendering/node-hover.ts",
"chars": 2568,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { Settings } from \"../settings\";\nimport { NodeDisplayData, Partia"
},
{
"path": "packages/sigma/src/rendering/node-labels.ts",
"chars": 1215,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { Settings } from \"../settings\";\nimport { NodeDisplayData, Partia"
},
{
"path": "packages/sigma/src/rendering/node.ts",
"chars": 4476,
"preview": "/**\n * Sigma.js WebGL Abstract Node Program\n * =====================================\n *\n * @module\n */\nimport { Attribut"
},
{
"path": "packages/sigma/src/rendering/program.ts",
"chars": 13022,
"preview": "/**\n * Sigma.js WebGL Renderer Program\n * ================================\n *\n * Class representing a single WebGL progr"
},
{
"path": "packages/sigma/src/rendering/programs/edge-arrow/index.ts",
"chars": 749,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { EdgeProgramType, createEdgeCompoundProgram } from \"../../edge\";"
},
{
"path": "packages/sigma/src/rendering/programs/edge-arrow-head/frag.glsl.ts",
"chars": 179,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nprecision mediump float;\n\nvarying vec4 v_color;\n\nvoid main(void) {\n g"
},
{
"path": "packages/sigma/src/rendering/programs/edge-arrow-head/index.ts",
"chars": 4153,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { EdgeDisplayData, NodeDisplayData, RenderParams } from \"../../.."
},
{
"path": "packages/sigma/src/rendering/programs/edge-arrow-head/vert.glsl.ts",
"chars": 2150,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec2 a_position;\nattribute vec2 a_normal;\nattribute float a_"
},
{
"path": "packages/sigma/src/rendering/programs/edge-clamped/index.ts",
"chars": 4678,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { EdgeDisplayData, NodeDisplayData, RenderParams } from \"../../.."
},
{
"path": "packages/sigma/src/rendering/programs/edge-clamped/vert.glsl.ts",
"chars": 2204,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_normal;\n"
},
{
"path": "packages/sigma/src/rendering/programs/edge-double-arrow/index.ts",
"chars": 879,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { EdgeProgramType, createEdgeCompoundProgram } from \"../../edge\";"
},
{
"path": "packages/sigma/src/rendering/programs/edge-double-clamped/index.ts",
"chars": 4998,
"preview": "import { Attributes } from \"graphology-types\";\n\nimport { EdgeDisplayData, NodeDisplayData, RenderParams } from \"../../.."
},
{
"path": "packages/sigma/src/rendering/programs/edge-double-clamped/vert.glsl.ts",
"chars": 2906,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_normal;\n"
},
{
"path": "packages/sigma/src/rendering/programs/edge-line/frag.glsl.ts",
"chars": 179,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nprecision mediump float;\n\nvarying vec4 v_color;\n\nvoid main(void) {\n g"
},
{
"path": "packages/sigma/src/rendering/programs/edge-line/index.ts",
"chars": 2192,
"preview": "/**\n * Sigma.js WebGL Renderer Fast Edge Program\n * ==========================================\n *\n * Program rendering e"
},
{
"path": "packages/sigma/src/rendering/programs/edge-line/vert.glsl.ts",
"chars": 578,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_position"
},
{
"path": "packages/sigma/src/rendering/programs/edge-rectangle/frag.glsl.ts",
"chars": 575,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nprecision mediump float;\n\nvarying vec4 v_color;\nvarying vec2 v_normal;"
},
{
"path": "packages/sigma/src/rendering/programs/edge-rectangle/index.ts",
"chars": 3859,
"preview": "/**\n * Sigma.js WebGL Renderer Edge Program\n * =====================================\n *\n * Program rendering edges as th"
},
{
"path": "packages/sigma/src/rendering/programs/edge-rectangle/vert.glsl.ts",
"chars": 2081,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_normal;\n"
},
{
"path": "packages/sigma/src/rendering/programs/edge-triangle/frag.glsl.ts",
"chars": 179,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nprecision mediump float;\n\nvarying vec4 v_color;\n\nvoid main(void) {\n g"
},
{
"path": "packages/sigma/src/rendering/programs/edge-triangle/index.ts",
"chars": 3127,
"preview": "/**\n * Sigma.js WebGL Renderer Triangle Edge Program\n * ==============================================\n *\n * Program ren"
},
{
"path": "packages/sigma/src/rendering/programs/edge-triangle/vert.glsl.ts",
"chars": 1352,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_normal;\n"
},
{
"path": "packages/sigma/src/rendering/programs/node-circle/frag.glsl.ts",
"chars": 700,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nprecision highp float;\n\nvarying vec4 v_color;\nvarying vec2 v_diffVecto"
},
{
"path": "packages/sigma/src/rendering/programs/node-circle/index.ts",
"chars": 2517,
"preview": "/**\n * Sigma.js WebGL Renderer Node Program\n * =====================================\n *\n * Simple program rendering node"
},
{
"path": "packages/sigma/src/rendering/programs/node-circle/vert.glsl.ts",
"chars": 932,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_position"
},
{
"path": "packages/sigma/src/rendering/programs/node-point/frag.glsl.ts",
"chars": 652,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nprecision mediump float;\n\nvarying vec4 v_color;\nvarying float v_border"
},
{
"path": "packages/sigma/src/rendering/programs/node-point/index.ts",
"chars": 2051,
"preview": "/**\n * Sigma.js WebGL Renderer Node Program\n * =====================================\n *\n * Simple program rendering node"
},
{
"path": "packages/sigma/src/rendering/programs/node-point/vert.glsl.ts",
"chars": 862,
"preview": "// language=GLSL\nconst SHADER_SOURCE = /*glsl*/ `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_position"
},
{
"path": "packages/sigma/src/rendering/utils.ts",
"chars": 3603,
"preview": "export function getAttributeItemsCount(attr: ProgramAttributeSpecification): number {\n return attr.normalized ? 1 : att"
},
{
"path": "packages/sigma/src/settings.ts",
"chars": 6250,
"preview": "/**\n * Sigma.js Settings\n * =================================\n *\n * The list of settings and some handy functions.\n * @m"
},
{
"path": "packages/sigma/src/sigma.ts",
"chars": 81276,
"preview": "/**\n * Sigma.js\n * ========\n * @module\n */\nimport Graph, { Attributes } from \"graphology-types\";\n\nimport Camera from \"./"
},
{
"path": "packages/sigma/src/types.ts",
"chars": 5575,
"preview": "/**\n * Sigma.js Types\n * ===============\n *\n * Various type declarations used throughout the library.\n * @module\n */\nimp"
},
{
"path": "packages/sigma/src/utils/animate.ts",
"chars": 1899,
"preview": "import Graph from \"graphology-types\";\n\nimport { PlainObject } from \"../types\";\nimport { easings } from \"./easings\";\n\n/**"
},
{
"path": "packages/sigma/src/utils/colors.ts",
"chars": 8488,
"preview": "export const HTML_COLORS: Record<string, string> = {\n black: \"#000000\",\n silver: \"#C0C0C0\",\n gray: \"#808080\",\n grey:"
},
{
"path": "packages/sigma/src/utils/coordinates.ts",
"chars": 4071,
"preview": "import { CameraState, Dimensions } from \"../types\";\nimport { identity, multiply, multiplyVec2, rotate, scale, translate "
},
{
"path": "packages/sigma/src/utils/data.ts",
"chars": 1375,
"preview": "/**\n * Extends the target array with the given values.\n */\nexport function extend<T>(array: T[], values: Set<T>): void {"
},
{
"path": "packages/sigma/src/utils/easings.ts",
"chars": 735,
"preview": "export const linear = (k: number): number => k;\n\nexport const quadraticIn = (k: number): number => k * k;\n\nexport const "
},
{
"path": "packages/sigma/src/utils/graph.ts",
"chars": 1248,
"preview": "import Graph, { Attributes } from \"graphology-types\";\nimport isGraph from \"graphology-utils/is-graph\";\n\nimport { Extent "
},
{
"path": "packages/sigma/src/utils/index.ts",
"chars": 371,
"preview": "/**\n * Sigma.js Utils\n * ===============\n *\n * Various helper functions & classes used throughout the library.\n * @modul"
},
{
"path": "packages/sigma/src/utils/matrices.ts",
"chars": 1767,
"preview": "import { Coordinates } from \"../types\";\n\nexport function identity(): Float32Array {\n return Float32Array.of(1, 0, 0, 0,"
},
{
"path": "packages/sigma/src/utils/misc.ts",
"chars": 1217,
"preview": "import { Extent, PlainObject } from \"../types\";\n\n/**\n * Function used to create DOM elements easily.\n */\nexport function"
},
{
"path": "packages/sigma/src/utils/normalization.ts",
"chars": 1264,
"preview": "import { Coordinates, Extent } from \"../types\";\n\n/**\n * Factory returning a function normalizing the given node's positi"
},
{
"path": "packages/sigma/tsconfig.json",
"chars": 44,
"preview": "{\n \"extends\": \"../../tsconfig.base.json\"\n}\n"
},
{
"path": "packages/sigma/types/package.json",
"chars": 79,
"preview": "{\n \"main\": \"dist/sigma-types.cjs.js\",\n \"module\": \"dist/sigma-types.esm.js\"\n}\n"
},
{
"path": "packages/sigma/utils/package.json",
"chars": 79,
"preview": "{\n \"main\": \"dist/sigma-utils.cjs.js\",\n \"module\": \"dist/sigma-utils.esm.js\"\n}\n"
},
{
"path": "packages/sigma/vite.config.mts",
"chars": 416,
"preview": "import { defineConfig } from \"vite\";\n\nexport default defineConfig({\n build: {\n lib: {\n name: \"Sigma\",\n ent"
},
{
"path": "packages/storybook/.gitignore",
"chars": 22,
"preview": "dist\nstorybook-static\n"
},
{
"path": "packages/storybook/.storybook/main.ts",
"chars": 933,
"preview": "/* global require */\nimport type { StorybookConfig } from \"@storybook/html-vite\";\nimport { dirname, join } from \"path\";\n"
},
{
"path": "packages/storybook/.storybook/manager.tsx",
"chars": 481,
"preview": "import { addons } from \"@storybook/manager-api\";\n\nimport theme from \"./theme\";\n\nconst image = document.createElement(\"im"
},
{
"path": "packages/storybook/.storybook/preview.tsx",
"chars": 1019,
"preview": "import { Preview } from \"@storybook/html\";\n\nlet _shouldReload = false;\nconst forceReloadDecorator: Preview[\"decorators\"]"
},
{
"path": "packages/storybook/.storybook/theme.ts",
"chars": 379,
"preview": "import { create } from \"@storybook/theming\";\n\nexport default create({\n base: \"light\",\n fontCode: \"monospace\",\n brandT"
},
{
"path": "packages/storybook/package.json",
"chars": 1132,
"preview": "{\n \"name\": \"@sigma/storybook\",\n \"private\": true,\n \"dependencies\": {\n \"@types/chroma-js\": \"^3.1.1\",\n \"@types/pap"
},
{
"path": "packages/storybook/public/arctic.gexf",
"chars": 1163946,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<gexf xmlns=\"http://www.gephi.org/gexf\" xmlns:viz=\"http://www.gephi.org/gexf/viz\""
},
{
"path": "packages/storybook/public/data.csv",
"chars": 468249,
"preview": "updatedAt,createdAt,id,hidden,acronym,code,name,logo,url,director_name,director_email,cnrs,menesr,creation_year,history,"
},
{
"path": "packages/storybook/public/pina-colada.jsonld",
"chars": 2517,
"preview": "{\n\"@context\": \"https://schema.org/\",\n\"@type\": \"Recipe\",\n\"@id\": \"https://example.com/recipe/non-alcoholic-pina-colada\",\n\""
}
]
// ... and 179 more files (download for full content)
About this extraction
This page contains the full source code of the jacomyal/sigma.js GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 379 files (23.5 MB), approximately 6.2M tokens, and a symbol index with 596 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.