A zero-install graph playground powered by DuckDB, DuckGQL, and
WebAssembly. Your queries and data stay on your device.
No setup
Local execution
Real DuckGQL
DuckGQL Console
In-memory
DuckDB 1.5.5Wasm EH
Guided demo
Select a step, then use Copy command when you are ready
1 · Create graph
Ready to copy
DROP GRAPH IF EXISTS air_routes;
CREATE GRAPH air_routes ANY;
Mobile editorWrite and run DuckGQL
⌘/Ctrl + Enter to run
Waiting for DuckDB
Results will appear here.
Preparing your graph workspace
The first load downloads the WebAssembly runtime
!
DuckGQL could not start
The console returned the following error:
Keep exploring
More Air Routes queries to try
Complete Create graph and Load graph first. Build CSR before
running the algorithm examples. Then copy a query, paste it into
the console or mobile editor, and run it.
01 · FILTER + SORT
Longest routes from Atlanta
Find the ten farthest direct destinations served from ATL.
MATCH (origin:airport)-[route:route]->(destination:airport)
WHERE origin.code = 'ATL'
RETURN destination.code AS destination,
destination.city AS city,
route.dist AS miles
ORDER BY miles DESC
LIMIT 10;
02 · PROPERTY FILTERS
Routes from the US to Japan
Compare the longest direct airport pairs between two countries.
MATCH (origin:airport)-[route:route]->(destination:airport)
WHERE origin.country = 'US'
AND destination.country = 'JP'
RETURN origin.code AS origin,
destination.code AS destination,
route.dist AS miles
ORDER BY miles DESC
LIMIT 10;
03 · TWO-HOP PATH
Connect Atlanta to London
Discover airports that connect ATL to LHR with one stop.
MATCH (origin:airport)-[:route]->(connection:airport)-[:route]->(destination:airport)
WHERE origin.code = 'ATL'
AND destination.code = 'LHR'
RETURN connection.code AS connection,
connection.city AS city
ORDER BY connection
LIMIT 20;
04 · AGGREGATION
Busiest airports by routes
Group route matches to rank airports by outbound connections.
MATCH (origin:airport)-[:route]->(destination:airport)
RETURN origin.code AS airport,
COUNT(*) AS outbound_routes
GROUP BY origin
ORDER BY outbound_routes DESC
LIMIT 10;
05 · PAGERANK
Most influential airports
Rank airports by their importance in the global route network.
CALL algo.pagerank(
'air_routes',
damping := 0.85,
max_iterations := 100,
tolerance := 1e-8
)
YIELD code, city, country, rank
RETURN code, city, country, rank
ORDER BY rank DESC
LIMIT 10;
06 · DEGREE CENTRALITY
Best-connected airports
Compare inbound, outbound, and total direct connectivity.
CALL algo.degree(
'air_routes',
vertex_label := 'airport'
)
YIELD code, city, country, out_degree, in_degree, total_degree
RETURN code, city, country, out_degree, in_degree, total_degree
ORDER BY total_degree DESC, code ASC
LIMIT 10;
07 · TRIANGLE COUNT
Airports inside dense route clusters
Find airports participating in the most closed three-airport routes.
CALL algo.triangle_count(
'air_routes',
vertex_label := 'airport'
)
YIELD code, city, country, triangle_count, degree,
local_clustering_coefficient
RETURN code, city, country, triangle_count, degree,
local_clustering_coefficient
ORDER BY triangle_count DESC, code ASC
LIMIT 10;
08 · STRONGLY CONNECTED COMPONENTS
Largest mutually reachable route regions
Summarize each mutually reachable airport region once, largest first.
CALL algo.scc(
'air_routes',
vertex_label := 'airport'
)
YIELD component_id, component_size
RETURN DISTINCT component_id, component_size
ORDER BY component_size DESC
LIMIT 20;
Air-routes sample
3,749 vertices and 57,645 routes
ATL
Atlantaairport · US-GA
ROUTE
AUS
Austinairport · US-TX
01
Runs locally
The database engine and graph extension execute in a dedicated
Web Worker on your device.
02
Built for the web
The same DuckGQL C++ extension is cross-compiled into a portable
WebAssembly module.
About the developer
Rahul Iyer
Developer of DuckGQL, bringing graph query language support and
graph analytics to DuckDB.