Spaces:
Running
Running
Download connect.html from SharpMeow/paris4-ink-map: direct link, hf CLI and curl.
- Browser
- Download file 18.1 kB
-
https://huggingface.co/spaces/SharpMeow/paris4-ink-map/resolve/main/connect.html
- Command line
-
hf download hf://spaces/SharpMeow/paris4-ink-map/connect.html
-
curl -L -o connect.html https://huggingface.co/spaces/SharpMeow/paris4-ink-map/resolve/main/connect.html
18.1 kB
| <section class="scc" id="connect" aria-label="Connect your tool"><style>.scc{--a:var(--scc-accent,#4ea8de);color:inherit;font:inherit;line-height:1.5;max-width:60rem} | |
| .scc h2{font-size:1.15em;margin:.2em 0 .3em}.scc h3{font-size:1em;margin:0 0 .2em} | |
| .scc p{margin:.3em 0}.scc a{color:var(--a)} | |
| .scc .scc-src{border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:10px;padding:.7em .9em;margin:.7em 0;background:color-mix(in srgb,currentColor 4%,transparent)} | |
| .scc .scc-meta{font-size:.85em;opacity:.8} | |
| .scc details{border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);padding:.35em 0} | |
| .scc summary{cursor:pointer;font-weight:600;list-style-position:inside} | |
| .scc .scc-b{font-weight:400;font-size:.75em;padding:.05em .5em;border-radius:99px;margin-left:.5em;border:1px solid currentColor;opacity:.75;white-space:nowrap} | |
| .scc .scc-b.ok{color:#3fb37f}.scc .scc-b.src{color:var(--a)}.scc .scc-b.warn{color:#e0a030} | |
| .scc .scc-code{position:relative;margin:.4em 0 .2em} | |
| .scc pre{margin:0;padding:.7em .8em;border-radius:8px;overflow:auto;font-size:.82em;background:color-mix(in srgb,currentColor 9%,transparent);white-space:pre} | |
| .scc code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace} | |
| .scc button.scc-copy{all:unset;box-sizing:border-box;position:absolute;top:.35em;right:.35em;font-size:.75em;line-height:1.4;padding:.1em .6em;border-radius:6px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;cursor:pointer} | |
| .scc button.scc-copy:hover{border-color:var(--a)} | |
| .scc .scc-url{position:relative}.scc .scc-url pre{padding-right:4.5em;white-space:pre-wrap;word-break:break-all} | |
| .scc .scc-go{display:inline-block;margin:.3em 0;padding:.25em .8em;border-radius:6px;border:1px solid var(--a);text-decoration:none} | |
| .scc footer{font-size:.8em;opacity:.75;margin-top:.6em}</style> | |
| <h2>Connect your tool</h2> | |
| <p>The map on this page is the organizers' published ink map of PHerc. Paris 4; this Space streams it and reads the published mesh and CT, so every file below is linked at the Vesuvius Challenge open data, never copied here. The page's own API and its MCP server turn a map pixel into a winding and scan coordinates, cut crops, draw the spiral at one height, compare a place with the turns beside it and build a VC3D project. The Space is public and needs no account.</p> | |
| <div class="scc-src" id="connect-mcp"><h3>MCP Server for Agents</h3> | |
| <p class="scc-meta">Vesuvius Challenge open data, CC BY-NC 4.0; the map and fit are the organizers' 路 Streamable HTTP, no session, JSON replies. Seven tools: get_info, find_winding, point_info, crop_image (returns a PNG), cross_section (optionally with the CT slice), neighbor_turns (optionally with the three windows) and view_link.</p> | |
| <div class="scc-url"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>https://sharpmeow-paris4-ink-map.hf.space/mcp</code></pre></div> | |
| <details><summary>Links and embed<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>MCP endpoint (Streamable HTTP, POST): https://sharpmeow-paris4-ink-map.hf.space/mcp</code></pre></div></details> | |
| </div> | |
| <div class="scc-src" id="connect-api"><h3>The Page's API</h3> | |
| <p class="scc-meta">Vesuvius Challenge open data, CC BY-NC 4.0; the map and fit are the organizers' 路 Map pixels: x 0 to 142,282 from the outer end, y 0 to 2,389 from the top, 0.0768 mm each.</p> | |
| <div class="scc-url"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>https://sharpmeow-paris4-ink-map.hf.space/api/info</code></pre></div> | |
| <details><summary>Links and embed<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>Size, scale, orientation, windings and every source with its SHA-256 (JSON): https://sharpmeow-paris4-ink-map.hf.space/api/info | |
| One map pixel: winding, distance from each end, scan height, voxel (JSON): https://sharpmeow-paris4-ink-map.hf.space/api/point?x=71000&y=1200 | |
| One winding's pixel range (JSON): https://sharpmeow-paris4-ink-map.hf.space/api/winding/60 | |
| A region as a raw TIFF of any size (scale 1, 2, 4, 8 or 16; fmt png adds colors, up to 60 Mpx): https://sharpmeow-paris4-ink-map.hf.space/api/crop?x0=70000&y0=600&x1=72000&y1=1800&scale=1&fmt=tif | |
| Where the sheet crosses one scan height (JSON): https://sharpmeow-paris4-ink-map.hf.space/api/section?z_mm=105&step=2 | |
| The turns just outside and inside one place: where, how far, how alike, against a baseline (JSON): https://sharpmeow-paris4-ink-map.hf.space/api/neighbors?x=120000&y=1800 | |
| A VC3D project: the 2.4 um CT streamed from the open data, the spiral fit as a tifxyz segment (zip): https://sharpmeow-paris4-ink-map.hf.space/api/vc3d.zip | |
| The fit's mesh as a point cloud for 3D views: layout and counts (JSON); binary at /api/mesh3d.bin: https://sharpmeow-paris4-ink-map.hf.space/api/mesh3d.json?stride=8 | |
| The map as a streamable OME-Zarr 0.4 (zarr v2, 9 levels, 512 px zlib chunks): https://sharpmeow-paris4-ink-map.hf.space/zarr/.zattrs | |
| Every endpoint with an example (JSON); interactive docs at /docs: https://sharpmeow-paris4-ink-map.hf.space/api | |
| Deep-zoom descriptor of the map (DZI, 256 px JPEG tiles): https://sharpmeow-paris4-ink-map.hf.space/tiles/ink.dzi | |
| The whole map wrapped into rows (PNG): https://sharpmeow-paris4-ink-map.hf.space/api/overview.png?rows=4&width=1600</code></pre></div></details> | |
| </div> | |
| <div class="scc-src" id="connect-ink"><h3>Ink Map, Full Resolution</h3> | |
| <p class="scc-meta">Vesuvius Challenge open data, CC BY-NC 4.0 路 BigTIFF, 142,283 by 2,390 pixels, uint8, deflate, 64 px tiles, no overviews, 236 MB. tifffile reads it.</p> | |
| <div class="scc-url"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/segments/20260926044226-spiral-output-generation-19/ink-detection/PHercParis4-20260926044226-2.4um-0.22m-78keV-volume-20260411134726-ink3d-20260926084000-student-v12A-25000-c7766be9-l128-accmax4-max-52-76-scale0.0625-nearest.tif</code></pre></div> | |
| <details><summary>Python<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>import urllib.request | |
| raw = urllib.request.urlopen("https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/segments/20260926044226-spiral-output-generation-19/ink-detection/PHercParis4-20260926044226-2.4um-0.22m-78keV-volume-20260411134726-ink3d-20260926084000-student-v12A-25000-c7766be9-l128-accmax4-max-52-76-scale0.0625-nearest.tif").read()</code></pre></div></details> | |
| <details><summary>curl<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>curl -L -O https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/segments/20260926044226-spiral-output-generation-19/ink-detection/PHercParis4-20260926044226-2.4um-0.22m-78keV-volume-20260411134726-ink3d-20260926084000-student-v12A-25000-c7766be9-l128-accmax4-max-52-76-scale0.0625-nearest.tif</code></pre></div></details> | |
| </div> | |
| <div class="scc-src" id="connect-segment"><h3>The Whole Segment Folder: Ink, Mesh, Spiral Fit</h3> | |
| <p class="scc-meta">Vesuvius Challenge open data, CC BY-NC 4.0 路 <a href="https://vesuvius-challenge-open-data.s3.amazonaws.com/index.html#PHercParis4/segments/20260926044226-spiral-output-generation-19/" target="_blank" rel="noopener">browse</a></p> | |
| <div class="scc-url"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>s3://vesuvius-challenge-open-data/PHercParis4/segments/20260926044226-spiral-output-generation-19/</code></pre></div> | |
| <details><summary>Python (list the folder)<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>import re, urllib.request | |
| B = "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com" | |
| xml = urllib.request.urlopen(B + "/?list-type=2&delimiter=/&prefix=PHercParis4/segments/20260926044226-spiral-output-generation-19/").read().decode() | |
| print(re.findall(r"<Prefix>([^<]+)</Prefix>", xml)) # subfolders; <Key> gives files</code></pre></div></details> | |
| </div> | |
| <div class="scc-src" id="connect-mesh"><h3>The Fit's Mesh (tifxyz, 9.6 um Voxels of Scan 20260411134726)</h3> | |
| <p class="scc-meta">Vesuvius Challenge open data, CC BY-NC 4.0 路 956 by 56,913 nodes at 0.192 mm. This grid is already the fit rotated 180 degrees, as the map is (grid_transform in meta.json): map x = 2.5 times the column, map y = 2.5 times the row. Multiply the coordinates by 4 for 2.4 um voxels.</p> | |
| <div class="scc-url"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/segments/20260926044226-spiral-output-generation-19/mesh/intermediate/tifxyz_normalized/</code></pre></div> | |
| <details><summary>Python (numpy, tifffile)<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code># pip install numpy tifffile | |
| import io, json, urllib.request | |
| import numpy as np, tifffile | |
| T = "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/segments/20260926044226-spiral-output-generation-19/mesh/intermediate/tifxyz_normalized" | |
| meta = json.load(urllib.request.urlopen(T + "/meta.json")) # scale, bbox, format | |
| get = lambda c: tifffile.imread(io.BytesIO(urllib.request.urlopen(f"{T}/{c}.tif").read())) | |
| xyz = np.stack([get(c) for c in "xyz"], -1) # xyz[i, j] = (x, y, z) in scan voxels; -1 = no surface</code></pre></div></details> | |
| </div> | |
| <div class="scc-src" id="connect-ct"><h3>CT, 2.4 um 78 keV Scan 20260411134726</h3> | |
| <p class="scc-meta">Vesuvius Challenge open data, CC BY-NC 4.0 路 Uncompressed, 128 cubed chunks; level 4 is 38.4 um, the level the scroll map on this page reads.</p> | |
| <div class="scc-url"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/volumes/20260411134726-2.400um-0.2m-78keV-masked.zarr/</code></pre></div> | |
| <details><summary>Python (zarr)<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code># pip install "zarr>=3" fsspec aiohttp | |
| import zarr | |
| root = zarr.open_group("https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/volumes/20260411134726-2.400um-0.2m-78keV-masked.zarr/", mode="r") # OME-Zarr, zarr v2 | |
| a = root["4"] # level 0 is full resolution; level L is 2**L times coarser | |
| print(a.shape, a.dtype, a.chunks) | |
| block = a[2688:2752, 896:960, 896:960] # (z, y, x); reads only the chunks it touches</code></pre></div></details> | |
| <details><summary>villa's vesuvius package<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code># pip install "vesuvius[volume-only]" | |
| from vesuvius import Volume | |
| v = Volume(type="zarr", path="https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/volumes/20260411134726-2.400um-0.2m-78keV-masked.zarr/4") # one pyramid level | |
| block = v[2688:2752, 896:960, 896:960]</code></pre></div></details> | |
| <details><summary>VC3D<span class="scc-b src">from villa's source</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>In VC3D (villa's volume-cartographer), open or create a project, then | |
| File > Attach Remote Zarr... and paste: | |
| https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/volumes/20260411134726-2.400um-0.2m-78keV-masked.zarr/ | |
| It accepts http, https and s3 OME-Zarr roots.</code></pre></div></details> | |
| <details><summary>neuroglancer<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <a class="scc-go" href="https://neuroglancer-demo.appspot.com/#!%7B%22layers%22%3A%5B%7B%22type%22%3A%22image%22%2C%22source%22%3A%22zarr%3A%2F%2Fhttps%3A%2F%2Fvesuvius-challenge-open-data.s3.us-east-1.amazonaws.com%2FPHercParis4%2Fvolumes%2F20260411134726-2.400um-0.2m-78keV-masked.zarr%2F%22%2C%22name%22%3A%22CT%2C%202.4%20um%2078%20keV%20Scan%2020260411134726%22%7D%5D%2C%22layout%22%3A%224panel%22%7D" target="_blank" rel="noopener">Open in neuroglancer</a> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>https://neuroglancer-demo.appspot.com/#!%7B%22layers%22%3A%5B%7B%22type%22%3A%22image%22%2C%22source%22%3A%22zarr%3A%2F%2Fhttps%3A%2F%2Fvesuvius-challenge-open-data.s3.us-east-1.amazonaws.com%2FPHercParis4%2Fvolumes%2F20260411134726-2.400um-0.2m-78keV-masked.zarr%2F%22%2C%22name%22%3A%22CT%2C%202.4%20um%2078%20keV%20Scan%2020260411134726%22%7D%5D%2C%22layout%22%3A%224panel%22%7D</code></pre></div></details> | |
| <details><summary>curl<span class="scc-b ok">tested 2026-10-24</span></summary> | |
| <div class="scc-code"><button type="button" class="scc-copy" data-testid="connect-copy" onclick="navigator.clipboard&&navigator.clipboard.writeText(this.parentNode.querySelector('code').innerText).then(()=>{this.textContent='Copied';setTimeout(()=>this.textContent='Copy',1200)})">Copy</button><pre><code>curl -s https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/volumes/20260411134726-2.400um-0.2m-78keV-masked.zarr/.zattrs # OME multiscales metadata | |
| curl -s https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/volumes/20260411134726-2.400um-0.2m-78keV-masked.zarr/4/.zarray # one level: shape, chunks, dtype, codec</code></pre></div></details> | |
| </div> | |
| <footer>Machine-readable: <a href="https://huggingface.co/spaces/SharpMeow/paris4-ink-map/blob/main/connect.json" target="_blank" rel="noopener">connect.json</a> and <a href="https://huggingface.co/spaces/SharpMeow/paris4-ink-map/blob/main/CONNECT.md" target="_blank" rel="noopener">CONNECT.md</a>. Checked 2026-10-29. "Tested" means the snippet ran against this public data on that date. Scan data keeps its own license (the Vesuvius Challenge open data is CC BY-NC 4.0).</footer></section> | |