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.
https://sharpmeow-paris4-ink-map.hf.space/mcpMCP endpoint (Streamable HTTP, POST): https://sharpmeow-paris4-ink-map.hf.space/mcphttps://sharpmeow-paris4-ink-map.hf.space/api/infoSize, 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=1600https://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.tifimport 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()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.tifs3://vesuvius-challenge-open-data/PHercParis4/segments/20260926044226-spiral-output-generation-19/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 fileshttps://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/segments/20260926044226-spiral-output-generation-19/mesh/intermediate/tifxyz_normalized/# 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 surfacehttps://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis4/volumes/20260411134726-2.400um-0.2m-78keV-masked.zarr/# 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# 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]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.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%7Dcurl -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