High-performance interactive visualization and query interface for large Neo4j graphs.
Neo4j is usually the bottleneck with layouts being completed in under 3 seconds even for graphs larger than 10k nodes and 15k edges.
This repository is focused on Neo4j graph exploration.
- Run Cypher queries and render the result as both graph and table views.
- Precompute layouts server-side so larger graph results stay navigable.
- Explore results with zoom, pan, search, highlighting, and minimap support.
- Create a virtual environment and install dependencies.
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtpython -m venv .venv
source .venv\bin\activate
pip install -r requirements.txt- Set Neo4j connection details if needed.
set NEO4J_HTTP_URL=http://localhost:7474
set NEO4J_USER=neo4j
set NEO4J_PASSWORD=your-password
set NEO4J_DATABASE=neo4j- Run the app.
python app.py- Open
http://localhost:5555.
You can also change the connection at runtime from the sidebar in the UI.
- Neo4j HTTP Transactional API integration.
- Automatic layout selection for graph size.
- Canvas-based rendering with D3 zoom and pan.
- Curved edges, neighborhood highlighting, node search, and minimap.
- Graph view and table view for the same query result.
- Demo graph generation for UI and performance testing without a live Neo4j instance.
Supported layout modes:
autoforce_directedforce_directed_hqcommunitycircledrlkamada_kawaispectral
Availability depends on whether python-igraph is installed.
GET /: Explorer UI.POST /api/query: Execute Cypher and return graph data, table rows, and timings.POST /api/relayout: Recompute layout for the cached query result.GET /api/schema: Return labels, relationship types, and property keys.GET /api/connection-test: Verify Neo4j connectivity.POST /api/reconnect: Update Neo4j connection settings at runtime.GET /api/layouts: Return available layout algorithms.GET /api/sample-queries: Return built-in sample Cypher queries.POST /api/demo: Generate synthetic graph data for demo and performance testing.
Environment variables used by app.py:
NEO4J_HTTP_URLdefault:http://localhostNEO4J_USERdefault:neo4jNEO4J_PASSWORDdefault: emptyNEO4J_DATABASEdefault:neo4jSAMPLE_QUERIES_FILEdefault:config/sample_queries.json
app.py: Flask app and API endpoints.layout_engine.py: Graph layout computation and algorithm selection.templates/index.html: Frontend application.config/sample_queries.json: Built-in sample Cypher queries.requirements.txt: Python dependencies.
- The supported service entry point is
python app.py. - The repository is intentionally scoped to Neo4j graph visualization and layout exploration.



