The traced windings, X-ray CT and ink layers in Unroll come from the Vesuvius Challenge open data, and every one of them reads straight from these URLs in your own tool, with no account and no download step.
https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0841/segments/20260220213127-w00/mesh/20260220213127-on-20250821151531-9.366um.tifxyz# 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/PHerc0841/segments/20260220213127-w00/mesh/20260220213127-on-20250821151531-9.366um.tifxyz"
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 surfaces3://vesuvius-challenge-open-data/PHerc0841/segments/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=PHerc0841/segments/").read().decode()
print(re.findall(r"<Prefix>([^<]+)</Prefix>", xml)) # subfolders; <Key> gives fileshttps://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0139/volumes/20250728140407-9.362um-1.2m-113keV-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/PHerc0139/volumes/20250728140407-9.362um-1.2m-113keV-masked.zarr", mode="r") # OME-Zarr, zarr v2
a = root["2"] # level 0 is full resolution; level L is 2**L times coarser
print(a.shape, a.dtype, a.chunks)
block = a[2622:2686, 828:892, 828:892] # (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/PHerc0139/volumes/20250728140407-9.362um-1.2m-113keV-masked.zarr/2") # one pyramid level
block = v[2622:2686, 828:892, 828:892]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/PHerc0139/volumes/20250728140407-9.362um-1.2m-113keV-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%2FPHerc0139%2Fvolumes%2F20250728140407-9.362um-1.2m-113keV-masked.zarr%2F%22%2C%22name%22%3A%22X-ray%20CT%20behind%20the%20CT%20view%2C%20PHerc0139%209.362%20um%22%7D%5D%2C%22layout%22%3A%224panel%22%7Dcurl -s https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0139/volumes/20250728140407-9.362um-1.2m-113keV-masked.zarr/.zattrs # OME multiscales metadata
curl -s https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0139/volumes/20250728140407-9.362um-1.2m-113keV-masked.zarr/2/.zarray # one level: shape, chunks, dtype, codechttps://sharpmeow-unroll.static.hf.space/API description (window.unroll, postMessage, deep links): https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/api.json
Guide for agents: https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/llms.txt
Scroll list and per-scroll manifests: https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/scrolls/index.json
Ink Bench on the command line: https://huggingface.co/spaces/SharpMeow/unroll/resolve/main/tools/inkbench.py
Deep link to one winding: https://sharpmeow-unroll.static.hf.space/?scroll=PHerc0139&t=0.6&layer=overlay&focus=w047&compare=0.3
<iframe src="https://sharpmeow-unroll.static.hf.space/index.html?embed=1" width="100%" height="600" allow="fullscreen; clipboard-write"></iframe>