flow op• Data kinds: image2d → table
• Call: import fullseye as fs; fs.ledger.physarum_route(cost, start=None, end=None, connectivity=4, dt=0.1, max_iters=5000, tol=1e-06, frac=0.5, snapshots=0) (to call the implementation directly, import physarum_search; physarum_search.physarum_route(cost, start=None, end=None, connectivity=4, dt=0.1, max_iters=5000, tol=1e-06, frac=0.5, snapshots=0); from the registry, opsgraph.get("physarum_route"))
Minimum-cost route through a cost image found by the slime mould's tube dynamics.
Every pixel is a node; neighbouring pixels (`connectivity` 4 or 8) are joined by a tube of
length `(c_u + c_v) / 2 (times sqrt(2)` on diagonals), so the length of a route equals
the sum of the pixel costs it visits minus half the cost of its two ends — the same quantity
`skimage.graph.route_through_array(..., geometric=False)` minimises (it counts both ends
fully). `start / end are (row, col)`; defaults are the top-left and bottom-right
corners. Dynamics and convergence as in :func:graph_physarum_path.
Returns `conductance` (an image: each pixel's thickest incident tube, 1 on the route
when converged), `path ((k, 2) pixel coordinates start → end), path_cost` (sum of
the pixel costs along it, comparable to `route_through_array), route_length` (sum
of the tube lengths), `flow_length, iters, converged, history`, and, with
`snapshots = m > 0, snapshots (m` conductance images at evenly spaced
iterations, the last one final) for watching the tubes thicken, `snapshot_iters` and
`snapshot_cost = sum L_e D_e` at those iterations (Bonifaci's Lyapunov function, which
never increases in continuous time).
Raises `ValueError: cost not a 2-D finite image of positive values; start / end`
outside the image or equal; `connectivity not 4 or 8; and as :func:graph_physarum_path`.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_physarum_maze — py -3.11 examples/poc_physarum_maze.py
table as input)graph_edge_consensus · graph_core_persistence · tree_morphometry · tree_sholl · tree_run_length
flow)graph_physarum_path · graph_physarum_transport · physarum_transport_image
*Provenance: physarum_search.py — GRAPH operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.