oneshotlm
Compare all models on this prompt →

Force-directed graph · qwen3.7-plus

Using the pre-provided d3.min.js (global d3), render an interactive force-directed graph of about 40 nodes in several clusters with draggable nodes, hover highlighting of neighbors, and zoom/pan. Define the sample nodes and links inline.

⛨ sandboxed Open in new tab ↗
transcript · 6 messages
user

Using the pre-provided d3.min.js (global d3), render an interactive force-directed graph of about 40 nodes in several clusters with draggable nodes, hover highlighting of neighbors, and zoom/pan. Define the sample nodes and links inline.

assistant
thinking
The user wants me to create a single-page web app (index.html) that uses d3.min.js (already in the current directory) to render an interactive force-directed graph. Let me plan the features:

1. ~40 nodes in several clusters (let's say 5 clusters with 8 nodes each)
2. Draggable nodes
3. Hover highlighting of neighbors (when hovering a node, highlight its direct neighbors, dim others)
4. Zoom/pan support
5. All inline - CSS in <style>, JS in <script>
6. Sample nodes and links defined inline
7. Uses d3 from the local d3.min.js file

Let me create a visually appealing force-directed graph with:
- Nodes colored by cluster
- Links between nodes (more links within clusters)
- Labels on nodes
- Hover effects that highlight neighbors and dim non-neighbors
- Drag behavior
- Zoom/pan behavior

I'll generate the nodes and links programmatically with some randomness but seeded for consistency.
write index.html (12895 bytes)
toolResult

Successfully wrote 12895 bytes to index.html

assistant
thinking
The file has been created. Let me verify it exists and check it looks right.
bash {"command":"ls -la index.html d3.min.js"}
toolResult

-rw-r--r-- 1 node node 279706 Jul 22 17:02 d3.min.js -rw-r--r-- 1 node node 14629 Jul 22 17:03 index.html

assistant
thinking
Everything looks good. Both files are present. Let me summarize what I built.

Done! **`index.html`** is ready. Here's what's packed in: ### Features | Feature | Details | |---|---| | **40 nodes** | 5 clusters of 8, each representing a team (Engineering, Design, Marketing, Data Science, Operations) | | **~90+ links** | Dense intra-cluster connections (chain + random), sparse inter-cluster bridges | | **Drag** | Grab any node and reposition it; simulation reheats on drag | | **Hover highlight** | Hovering a node brightens it and its direct neighbors, dims everything else, and colors connected edges in the cluster's color | | **Tooltip** | Shows name, cluster, and connection count on hover | | **Zoom/Pan** | Scroll to zoom, drag background to pan, double-click to reset view | | **Glow effects** | SVG filter-based glow for a rich dark-theme look | | **Legend** | Live cluster legend with node/edge counts | | **Responsive** | Resizes and recenters on window resize | The graph uses a seeded random generator (`mulberry32(42)`) so the topology is reproducible across reloads. No network requests — everything is self-contained.

TAKE IT TO CODE

A single self-contained HTML file — copy it and open in any browser, or reuse the prompt with your own pi-agent run.

RUN

modelqwen3.7-plus
vendorQwen
harnesspi-agent
generated2026-07-22

EVALUATION

4/5 working

Force-directed clustered graph with drag, zoom (wheel) and pan working; keyboard inputs unsurprisingly have no effect.

Vision grade · anthropic/claude-sonnet-5

MEASUREMENTS

Raw readings from the capture, not a verdict — the grade above is the only judgement. Percentages are how much of the screen changed; the measure under-reports sparse motion on a dark background.

idle motion5.2%
on click0.0%
on drag5.3%
on wheel3.3%
on enter + space0.0%
on arrow keys0.0%
on w/a/s/d0.0%
frame spread17.6 / 255
console errors0
js errors none

METRICS

runtime100.3s
tokens in8.6k
tokens out5.2k
cached6.3k
cost / run$0.0097