Spaces:
Running
Running
File size: 5,473 Bytes
a7e40db | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | # Connect your tool: Fiber Checker
The Space reads open-data meshes and CT by URL and keeps none of it; here are the same sources for your own tools, and the page's API and MCP server, which checks any segment with the free judge.
Checked 2026-10-26. Generated from `connect.json` by `kit spaceconnect` in [ChaseHendrick/Scrolls](https://github.com/ChaseHendrick/Scrolls).
## A traced segment's mesh: PHerc0500P2 z_dbg_gen_00440 on the 2.215 um scan
`https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/segments/20250611171318-z_dbg_gen_00440_inp_hr/mesh/20250611171318-on-20250526151718-2.215um.tifxyz/`
License: CC BY-NC 4.0 (Vesuvius Challenge open data). x.tif, y.tif and z.tif in the scan's level-0 voxels. fiber.tif from a check has the same grid, so it lines up vertex for vertex.
### Python (numpy, tifffile) (tested 2026-10-24)
```python
# 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/PHerc0500P2/segments/20250611171318-z_dbg_gen_00440_inp_hr/mesh/20250611171318-on-20250526151718-2.215um.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
```
## The CT that mesh is on, PHerc0500P2 2.215 um
`https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr`
License: CC BY-NC 4.0 (Vesuvius Challenge open data). Read live from the open-data bucket, never copied here. The free judge reads level 2 of the 2.2 to 2.4 um scans (about 9 um).
### Python (zarr) (tested 2026-10-24)
```python
# pip install "zarr>=3" fsspec aiohttp
import zarr
root = zarr.open_group("https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-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[1500:1564, 2000:2064, 3000:3064] # (z, y, x); reads only the chunks it touches
```
### villa's vesuvius package (tested 2026-10-24)
```python
# 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/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr/2") # one pyramid level
block = v[1500:1564, 2000:2064, 3000:3064]
```
### VC3D (from villa's source)
```text
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/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr
It accepts http, https and s3 OME-Zarr roots.
```
### neuroglancer (tested 2026-10-24)
```text
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%2FPHerc0500P2%2Fvolumes%2F20250526151718-2.215um-0.4m-111keV-masked.zarr%2F%22%2C%22name%22%3A%22The%20CT%20that%20mesh%20is%20on%2C%20PHerc0500P2%202.215%20um%22%7D%5D%2C%22layout%22%3A%224panel%22%7D
```
### curl (tested 2026-10-24)
```bash
curl -s https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr/.zattrs # OME multiscales metadata
curl -s https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr/2/.zarray # one level: shape, chunks, dtype, codec
```
## Check any segment, from code or an agent
`https://huggingface.co/spaces/SharpMeow/fiber-checker`
License: Code and weights Apache 2.0; scans and meshes CC BY-NC 4.0. check_segment (sample, segment, volume, patches) runs the free judge on the Space's CPU, about two minutes for 60 patches. Model output, not a reading.
### Python /list_scrolls (tested 2026-10-24)
```python
# pip install gradio_client
from gradio_client import Client
client = Client("SharpMeow/fiber-checker")
result = client.predict(api_name="/list_scrolls")
```
### Python /example_segments (tested 2026-10-24)
```python
# pip install gradio_client
from gradio_client import Client
client = Client("SharpMeow/fiber-checker")
result = client.predict(api_name="/example_segments")
```
### Python /list_segments (tested 2026-10-24)
```python
# pip install gradio_client
from gradio_client import Client
client = Client("SharpMeow/fiber-checker")
result = client.predict(sample="PHerc0343P", api_name="/list_segments")
```
### curl /list_scrolls (tested 2026-10-24)
```bash
URL=https://sharpmeow-fiber-checker.hf.space
EVENT=$(curl -s -X POST $URL/gradio_api/call/list_scrolls -H 'Content-Type: application/json' \
-d '{"data": []}' | python3 -c 'import json,sys; print(json.load(sys.stdin)["event_id"])')
curl -sN $URL/gradio_api/call/list_scrolls/$EVENT
```
### MCP (Claude, Cursor and other agents) (tested 2026-10-24)
```json
{
"mcpServers": {
"fiber-checker": {
"url": "https://sharpmeow-fiber-checker.hf.space/gradio_api/mcp/sse"
}
}
}
Tool list: https://sharpmeow-fiber-checker.hf.space/gradio_api/mcp/schema
```
|