SharpMeow commited on
Commit
a7e40db
·
verified ·
1 Parent(s): ea92e88

Add connect.json and CONNECT.md, which the Connect panel links to (Scrolls 45836d9)

Browse files
Files changed (2) hide show
  1. CONNECT.md +135 -0
  2. connect.json +31 -0
CONNECT.md ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Connect your tool: Fiber Checker
2
+
3
+ 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.
4
+
5
+ Checked 2026-10-26. Generated from `connect.json` by `kit spaceconnect` in [ChaseHendrick/Scrolls](https://github.com/ChaseHendrick/Scrolls).
6
+
7
+ ## A traced segment's mesh: PHerc0500P2 z_dbg_gen_00440 on the 2.215 um scan
8
+
9
+ `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/`
10
+
11
+ 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.
12
+
13
+ ### Python (numpy, tifffile) (tested 2026-10-24)
14
+
15
+ ```python
16
+ # pip install numpy tifffile
17
+ import io, json, urllib.request
18
+ import numpy as np, tifffile
19
+
20
+ 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"
21
+ meta = json.load(urllib.request.urlopen(T + "/meta.json")) # scale, bbox, format
22
+ get = lambda c: tifffile.imread(io.BytesIO(urllib.request.urlopen(f"{T}/{c}.tif").read()))
23
+ xyz = np.stack([get(c) for c in "xyz"], -1) # xyz[i, j] = (x, y, z) in scan voxels; -1 = no surface
24
+ ```
25
+
26
+ ## The CT that mesh is on, PHerc0500P2 2.215 um
27
+
28
+ `https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr`
29
+
30
+ 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).
31
+
32
+ ### Python (zarr) (tested 2026-10-24)
33
+
34
+ ```python
35
+ # pip install "zarr>=3" fsspec aiohttp
36
+ import zarr
37
+
38
+ 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
39
+ a = root["2"] # level 0 is full resolution; level L is 2**L times coarser
40
+ print(a.shape, a.dtype, a.chunks)
41
+ block = a[1500:1564, 2000:2064, 3000:3064] # (z, y, x); reads only the chunks it touches
42
+ ```
43
+
44
+ ### villa's vesuvius package (tested 2026-10-24)
45
+
46
+ ```python
47
+ # pip install "vesuvius[volume-only]"
48
+ from vesuvius import Volume
49
+
50
+ 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
51
+ block = v[1500:1564, 2000:2064, 3000:3064]
52
+ ```
53
+
54
+ ### VC3D (from villa's source)
55
+
56
+ ```text
57
+ In VC3D (villa's volume-cartographer), open or create a project, then
58
+ File > Attach Remote Zarr... and paste:
59
+
60
+ https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr
61
+
62
+ It accepts http, https and s3 OME-Zarr roots.
63
+ ```
64
+
65
+ ### neuroglancer (tested 2026-10-24)
66
+
67
+ ```text
68
+ 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
69
+ ```
70
+
71
+ ### curl (tested 2026-10-24)
72
+
73
+ ```bash
74
+ 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
75
+ 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
76
+ ```
77
+
78
+ ## Check any segment, from code or an agent
79
+
80
+ `https://huggingface.co/spaces/SharpMeow/fiber-checker`
81
+
82
+ 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.
83
+
84
+ ### Python /list_scrolls (tested 2026-10-24)
85
+
86
+ ```python
87
+ # pip install gradio_client
88
+ from gradio_client import Client
89
+
90
+ client = Client("SharpMeow/fiber-checker")
91
+ result = client.predict(api_name="/list_scrolls")
92
+ ```
93
+
94
+ ### Python /example_segments (tested 2026-10-24)
95
+
96
+ ```python
97
+ # pip install gradio_client
98
+ from gradio_client import Client
99
+
100
+ client = Client("SharpMeow/fiber-checker")
101
+ result = client.predict(api_name="/example_segments")
102
+ ```
103
+
104
+ ### Python /list_segments (tested 2026-10-24)
105
+
106
+ ```python
107
+ # pip install gradio_client
108
+ from gradio_client import Client
109
+
110
+ client = Client("SharpMeow/fiber-checker")
111
+ result = client.predict(sample="PHerc0343P", api_name="/list_segments")
112
+ ```
113
+
114
+ ### curl /list_scrolls (tested 2026-10-24)
115
+
116
+ ```bash
117
+ URL=https://sharpmeow-fiber-checker.hf.space
118
+ EVENT=$(curl -s -X POST $URL/gradio_api/call/list_scrolls -H 'Content-Type: application/json' \
119
+ -d '{"data": []}' | python3 -c 'import json,sys; print(json.load(sys.stdin)["event_id"])')
120
+ curl -sN $URL/gradio_api/call/list_scrolls/$EVENT
121
+ ```
122
+
123
+ ### MCP (Claude, Cursor and other agents) (tested 2026-10-24)
124
+
125
+ ```json
126
+ {
127
+ "mcpServers": {
128
+ "fiber-checker": {
129
+ "url": "https://sharpmeow-fiber-checker.hf.space/gradio_api/mcp/sse"
130
+ }
131
+ }
132
+ }
133
+
134
+ Tool list: https://sharpmeow-fiber-checker.hf.space/gradio_api/mcp/schema
135
+ ```
connect.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "space-connect/1",
3
+ "space": "SharpMeow/fiber-checker",
4
+ "title": "Fiber Checker",
5
+ "checked": "2026-10-26",
6
+ "intro": "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.",
7
+ "sources": [
8
+ {"id": "mesh", "title": "A traced segment's mesh: PHerc0500P2 z_dbg_gen_00440 on the 2.215 um scan", "kind": "tifxyz",
9
+ "url": "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/",
10
+ "license": "CC BY-NC 4.0 (Vesuvius Challenge open data)",
11
+ "note": "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."},
12
+ {"id": "ct", "title": "The CT that mesh is on, PHerc0500P2 2.215 um", "kind": "ome-zarr",
13
+ "url": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0500P2/volumes/20250526151718-2.215um-0.4m-111keV-masked.zarr",
14
+ "zarr_format": 2, "example": {"level": "2", "start": [1500, 2000, 3000]},
15
+ "license": "CC BY-NC 4.0 (Vesuvius Challenge open data)",
16
+ "note": "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).",
17
+ "browse": "https://scrollprize.org/data_browser/PHerc0500P2"},
18
+ {"id": "api", "title": "Check any segment, from code or an agent", "kind": "gradio-api",
19
+ "url": "https://huggingface.co/spaces/SharpMeow/fiber-checker",
20
+ "space": "SharpMeow/fiber-checker",
21
+ "host": "https://sharpmeow-fiber-checker.hf.space",
22
+ "status": "running",
23
+ "endpoints": [
24
+ {"api": "/list_scrolls", "args": {}},
25
+ {"api": "/example_segments", "args": {}},
26
+ {"api": "/list_segments", "args": {"sample": "PHerc0343P"}}
27
+ ],
28
+ "license": "Code and weights Apache 2.0; scans and meshes CC BY-NC 4.0",
29
+ "note": "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."}
30
+ ]
31
+ }