Quantickle - Network Graph Visualization for Threat Intelligence
A browser-based network graph visualization tool built on Cytoscape.js. Quantickle helps visualize and analyze connected data of any type, but is faceted towards threat intelligence.
Installation
Table of Contents
Disclaimer
This project was largely vibecoded, so take proper precautions.
The code has been reviewed by real programmers, but is not hardened against vulnerabilities. Do not expose externally without a thorough security review.
Overview
Quantickle is an interactive, browser-first toolkit for building and exploring network graphs. The front-end (Cytoscape.js + custom UI) handles rendering, editing, and layout execution, while the lightweight Express server serves the UI, proxies integration calls, and optionally stores graphs in Neo4j. In other words, the browser owns the graph state and visualization, while the server exists to supply assets and integrations when needed.
✨ Key Features
- Zero server-side storage by default: Graphs live in your browser until you export or sync via integrations.
- Multiple data input methods:
- CSV/edge list file upload
- REST API integration
- Direct data input
- High performance:
- WebGL rendering for large graphs
- Progressive loading
- Automatic performance optimization
- Flexible visualization:
- 20+ layout algorithms
- Customizable node/edge styles
- Markdown-enabled info field for nodes
- Dynamic filtering
- Graphs are chronology-aware (timeline layouts, timestamp coloring)
- Edge curve styles:
- The edge editor exposes curved (
bezier), straight, bundled (unbundled-bezier), taxi, and rounded taxi options.
- Cytoscape also supports
haystack and segments curve styles through custom styling.
- Interactive interface:
- Zoom/pan controls
- Node dragging
- Selection tools
- Search functionality
- Graph does not move when individual nodes move
- Container nodes for grouping related elements
- Add callouts and images for context
- All surfaces can have customizable icons and backgrounds
- Linkable graphs:
- Add graph nodes to create a jump point to another graph
- The target graph will display a "back" button
- Chain graphs together in tree structures and dashboards
Capabilities & Examples
Here are some examples of what Quantickle can do:
Customize everything: Backgrounds, icons, callouts, node & edge types, as well as areas of research
Choose between 20+ layouting algorithms (eg Klay vs Euler)
Enclose part of the graph in container nodes, and apply separate styling and layout
Timestamp your nodes to create timelines or time-colored graphs
Link graphs to create navigatable dashboards and logical connections
Save to JSON. Export to CSV, PDF, PNG, or static HTML. Import CSV, paste, or fetch content from integrations
Optionally save to Neo4j databases
Query integrations like VirusTotal or OpenAI - get results back in separate containers
Core Concepts
Quantickle builds on a small set of shared concepts that connect the documentation set:
-
Coordinate system & spatial layouts — Quantickle’s absolute and depth-aware layouts use a 0–1000 cube for x, y, and z coordinates. See COORDINATE_SYSTEM.md for full spatial rules and lighting behavior.
-
Graph file management & project files — .qut files are the canonical saved state; they store nodes, edges, metadata, and container hierarchy.
-
Neo4j integration — the server can persist and retrieve graphs from Neo4j, including metadata snapshots. See NEO4J_INTEGRATION_README.md for configuration and workflow details.
Data Model
A Quantickle graph is a set of nodes and edges with metadata that drives layout, styling, and grouping.