VESUVIUS CHALLENGE/OPEN DATA/… MESHES

Segment Lens

Traced segments as surfaces, with the grid's problems painted on: holes, folds and over-stretched edges. Numbers from the Segment Atlas.

Guide

A segment is a piece of the rolled papyrus surface that someone (or a program) traced through the X-ray CT of a scroll. It is stored as a tifxyz mesh: three images, x.tif, y.tif and z.tif, that together hold a grid of 3D points in the scan's voxels. The open data maps each segment onto several scan volumes, so one segment can have several meshes.

The colors mark what kit tifxyz check flags on the full grid:

"Edges ±10%" is the share of grid edges within 10 percent of that spacing: how close the grid is to isometric, which matters for flattened renders. A clean mesh can still jump from one wrap of papyrus to the next; nothing here looks at the CT or judges ink, and none of it is an official villa or prize check.

3D previews are shown only for scans on none of the prize lists (Grand Prize, First Letters, and the title prize's PHerc. Paris 4, from kit's dated snapshot); scrolls on a list appear in the table with numbers only. Previews keep every k-th node, at most 256 per side, with each flag pooled over the block it stands for.

Connect your tool

Every number and preview on this page comes from the Segment Atlas dataset, and every mesh it measures is a tifxyz folder on the open-data bucket. Both read straight from these URLs, with no account.

Segment Atlas (one row per published mesh)

CC BY-NC 4.0 (derived from Vesuvius Challenge open data) · Each row has the mesh's open-data url, its grid size, area, filled share, edge statistics and the holes, folds and stretched area that kit tifxyz check reports. lens/ holds the decimated 3D previews.

https://huggingface.co/datasets/SharpMeow/vesuvius-segment-atlas
Python (huggingface_hub)tested 2026-10-24
# pip install huggingface_hub
from huggingface_hub import hf_hub_download, snapshot_download

path = hf_hub_download("SharpMeow/vesuvius-segment-atlas", "atlas.jsonl", repo_type="dataset")  # one file, cached
folder = snapshot_download("SharpMeow/vesuvius-segment-atlas", repo_type="dataset")
Python (datasets)tested 2026-10-24
# pip install datasets
from datasets import load_dataset

default = load_dataset("SharpMeow/vesuvius-segment-atlas", "default", split="train")
pandastested 2026-10-24
# pip install pandas huggingface_hub
import pandas as pd

df = pd.read_json("hf://datasets/SharpMeow/vesuvius-segment-atlas/atlas.jsonl", lines=True)
Command line (hf)tested 2026-10-24
pip install -U huggingface_hub
hf download SharpMeow/vesuvius-segment-atlas atlas.jsonl --repo-type dataset --local-dir vesuvius-segment-atlas
curltested 2026-10-24
curl -L -O https://huggingface.co/datasets/SharpMeow/vesuvius-segment-atlas/resolve/main/atlas.jsonl

A measured mesh (tifxyz), example PHerc0009B 20250510172639

CC BY-NC 4.0 (Vesuvius Challenge open data) · Every row of the atlas names its mesh folder in url; the table's mesh folder link opens it. Read live from the open-data bucket, never copied here.

https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0009B/segments/20250510172639/mesh/20250510172639-on-20250521125136-8.64um.tifxyz
Python (numpy, tifffile)tested 2026-10-24
# 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/PHerc0009B/segments/20250510172639/mesh/20250510172639-on-20250521125136-8.64um.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 surface

This page's code and data

Page code Apache 2.0; data as above · python -m kit atlas show SCROLL and python -m kit tifxyz check MESH_URL reproduce the numbers from a clone of ChaseHendrick/Scrolls.

https://sharpmeow-segment-lens.hf.space/
Links and embedtested 2026-10-24
The whole atlas as one CSV: https://huggingface.co/datasets/SharpMeow/vesuvius-segment-atlas/resolve/main/atlas.csv
API and MCP for agents (list_scrolls, list_segments, get_segment, segment_picture): https://sharpmeow-segment-lens.hf.space/agents/
Page source: https://github.com/ChaseHendrick/Scrolls/tree/main/spaces/segment-lens
Machine-readable: connect.json and CONNECT.md. Checked 2026-10-24. "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).

On your own machine

git clone https://github.com/ChaseHendrick/Scrolls && cd Scrolls
python -m pip install numpy tifffile imagecodecs
python -m kit atlas show PHerc0139 --top 10
python -m kit tifxyz check MESH_URL --png check.png

Credits