SharpMeow commited on
Commit
9aab612
·
verified ·
1 Parent(s): d34d772

Every field: Dataset, Manifest, Preview and Copy URL on every field (public Scrolls 0896f42, #293)

Browse files
Files changed (5) hide show
  1. app.py +6 -3
  2. fields.json +150 -63
  3. guide/index.html +46 -26
  4. make_previews.py +94 -0
  5. make_thumbs.py +15 -10
app.py CHANGED
@@ -209,7 +209,8 @@ def volume_text(vid):
209
  pub_line = "The open data has villa's field for this scan, so each box is checked against it."
210
  else:
211
  listed = [f for f in field_doc().get("fields", []) if f["volume"] == v["volume"] and f.get("dataset")]
212
- pub_line = ("No lasagna field for this scan streams by URL, so there is nothing to check against."
 
213
  + (f" Its whole-scan field ({listed[0]['model']}) is on the Every field tab as "
214
  f"{listed[0]['dataset']}." if listed else ""))
215
  return (f"{' × '.join(map(str, shape))} voxels (z × y × x) at {v['voxel_um']:g} um. The model reads level "
@@ -289,10 +290,12 @@ def list_fields(scroll: str = ""):
289
  villa's own fields in the Vesuvius Challenge open data and the public SharpMeow datasets (made with villa's
290
  lasagna predict3d or with Lasagnetta 0.1.1, a faster copy of it). Args: scroll, part of a scroll name to keep
291
  only its fields (empty for all). Returns a list of {scroll, volume, zarr, voxel_um, read_level, model, source,
292
- made_by, bytes, url, dataset, manifest, stream, note}: stream is a run folder that zarr reads by URL, or null.
 
 
293
  """
294
  keep = ("scroll", "volume", "zarr", "voxel_um", "read_level", "model", "source", "made_by", "bytes", "url",
295
- "dataset", "manifest", "stream", "note")
296
  q = str(scroll or "").strip().lower()
297
  return [{k: f.get(k) for k in keep} for f in field_doc().get("fields", []) if q in f["scroll"].lower()]
298
 
 
209
  pub_line = "The open data has villa's field for this scan, so each box is checked against it."
210
  else:
211
  listed = [f for f in field_doc().get("fields", []) if f["volume"] == v["volume"] and f.get("dataset")]
212
+ pub_line = ("Boxes are checked only against the open data's fields and the ten in the Preview tab, so there is "
213
+ "nothing to check against for this scan."
214
  + (f" Its whole-scan field ({listed[0]['model']}) is on the Every field tab as "
215
  f"{listed[0]['dataset']}." if listed else ""))
216
  return (f"{' × '.join(map(str, shape))} voxels (z × y × x) at {v['voxel_um']:g} um. The model reads level "
 
290
  villa's own fields in the Vesuvius Challenge open data and the public SharpMeow datasets (made with villa's
291
  lasagna predict3d or with Lasagnetta 0.1.1, a faster copy of it). Args: scroll, part of a scroll name to keep
292
  only its fields (empty for all). Returns a list of {scroll, volume, zarr, voxel_um, read_level, model, source,
293
+ made_by, bytes, url, dataset, manifest, stream, preview_xy, preview_xz, browse, note}: stream is the run folder
294
+ that zarr reads by URL, manifest its lasagna.json, preview_xy and preview_xz pictures of cos and normals, and
295
+ browse the page to download it from (the dataset, or the open data's file browser).
296
  """
297
  keep = ("scroll", "volume", "zarr", "voxel_um", "read_level", "model", "source", "made_by", "bytes", "url",
298
+ "dataset", "manifest", "stream", "preview_xy", "preview_xz", "browse", "note")
299
  q = str(scroll or "").strip().lower()
300
  return [{k: f.get(k) for k in keep} for f in field_doc().get("fields", []) if q in f["scroll"].lower()]
301
 
fields.json CHANGED
@@ -20,10 +20,13 @@
20
  "bytes": 7835721663,
21
  "dataset": "SharpMeow/pherc0009b-lasagnetta",
22
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0009b-lasagnetta",
23
- "manifest": null,
24
- "stream": null,
25
  "gallery": false,
26
- "note": "the release's self-check kept Lasagnetta on this volume"
 
 
 
27
  },
28
  {
29
  "scroll": "PHerc0009B",
@@ -38,10 +41,13 @@
38
  "bytes": 4397390728,
39
  "dataset": "SharpMeow/pherc0009b-20250820154339-lasagnetta",
40
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20250820154339-lasagnetta",
41
- "manifest": null,
42
- "stream": null,
43
  "gallery": false,
44
- "note": "the release's self-check kept Lasagnetta on this volume"
 
 
 
45
  },
46
  {
47
  "scroll": "PHerc0009B",
@@ -56,10 +62,13 @@
56
  "bytes": 4076425380,
57
  "dataset": "SharpMeow/pherc0009b-20260319104112-lasagnetta",
58
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20260319104112-lasagnetta",
59
- "manifest": null,
60
- "stream": null,
61
  "gallery": false,
62
- "note": "the release's self-check kept Lasagnetta on this volume"
 
 
 
63
  },
64
  {
65
  "scroll": "PHerc0139",
@@ -77,7 +86,10 @@
77
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0139/representations/predictions/lasagna/20260102150214-lasagna-20260419180421-L2/PHerc0139-20260102150214-lasagna-20260724.lasagna.json",
78
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0139/representations/predictions/lasagna/20260102150214-lasagna-20260419180421-L2",
79
  "gallery": false,
80
- "note": "made on 20260102150214, which 20260930100252 replaces in the same voxel frame"
 
 
 
81
  },
82
  {
83
  "scroll": "PHerc0172",
@@ -92,10 +104,13 @@
92
  "bytes": 136447650060,
93
  "dataset": "SharpMeow/pherc0172-lasagnetta",
94
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0172-lasagnetta",
95
- "manifest": null,
96
- "stream": null,
97
  "gallery": false,
98
- "note": "the release's self-check pointed to villa's net here: a quick look; use villa's field where exact values matter"
 
 
 
99
  },
100
  {
101
  "scroll": "PHerc0175A",
@@ -110,10 +125,13 @@
110
  "bytes": 48177794159,
111
  "dataset": "SharpMeow/pherc0175a-lasagna",
112
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0175a-lasagna",
113
- "manifest": null,
114
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0175A/representations/predictions/lasagna/20250521115057-lasagna-de45f011",
115
  "gallery": true,
116
- "note": null
 
 
 
117
  },
118
  {
119
  "scroll": "PHerc0175B",
@@ -128,10 +146,13 @@
128
  "bytes": 82186090388,
129
  "dataset": "SharpMeow/pherc0175b-lasagna",
130
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0175b-lasagna",
131
- "manifest": null,
132
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0175B/representations/predictions/lasagna/20250521125822-lasagna-de45f011",
133
  "gallery": true,
134
- "note": null
 
 
 
135
  },
136
  {
137
  "scroll": "PHerc0306B",
@@ -146,10 +167,13 @@
146
  "bytes": 54562105533,
147
  "dataset": "SharpMeow/pherc0306b-lasagna",
148
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0306b-lasagna",
149
- "manifest": null,
150
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0306B/representations/predictions/lasagna/20250521133212-lasagna-de45f011",
151
  "gallery": true,
152
- "note": null
 
 
 
153
  },
154
  {
155
  "scroll": "PHerc0332",
@@ -167,7 +191,10 @@
167
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0332/representations/predictions/lasagna/20251211183505-lasagna-20260419180421-L2/PHerc0332-20251211183505-lasagna-20260724.lasagna.json",
168
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0332/representations/predictions/lasagna/20251211183505-lasagna-20260419180421-L2",
169
  "gallery": false,
170
- "note": null
 
 
 
171
  },
172
  {
173
  "scroll": "PHerc0343",
@@ -185,7 +212,10 @@
185
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0343/representations/predictions/lasagna/20250521140437-lasagna-20260419180421/PHerc0343.lasagna.json",
186
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0343/representations/predictions/lasagna/20250521140437-lasagna-20260419180421",
187
  "gallery": false,
188
- "note": null
 
 
 
189
  },
190
  {
191
  "scroll": "PHerc0343P",
@@ -200,10 +230,13 @@
200
  "bytes": 1849003527,
201
  "dataset": "SharpMeow/pherc0343p-lasagna",
202
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0343p-lasagna",
203
- "manifest": null,
204
- "stream": null,
205
  "gallery": false,
206
- "note": null
 
 
 
207
  },
208
  {
209
  "scroll": "PHerc0483A",
@@ -218,10 +251,13 @@
218
  "bytes": 47412439255,
219
  "dataset": "SharpMeow/pherc0483a-lasagna",
220
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0483a-lasagna",
221
- "manifest": null,
222
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0483A/representations/predictions/lasagna/20250521140913-lasagna-de45f011",
223
  "gallery": true,
224
- "note": null
 
 
 
225
  },
226
  {
227
  "scroll": "PHerc0483B",
@@ -236,10 +272,13 @@
236
  "bytes": 41488155807,
237
  "dataset": "SharpMeow/pherc0483b-lasagna",
238
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0483b-lasagna",
239
- "manifest": null,
240
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0483B/representations/predictions/lasagna/20251124083638-lasagna-de45f011",
241
  "gallery": true,
242
- "note": null
 
 
 
243
  },
244
  {
245
  "scroll": "PHerc0490A",
@@ -254,10 +293,13 @@
254
  "bytes": 49710518643,
255
  "dataset": "SharpMeow/pherc0490a-lasagna",
256
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0490a-lasagna",
257
- "manifest": null,
258
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0490A/representations/predictions/lasagna/20250521151210-lasagna-de45f011",
259
  "gallery": true,
260
- "note": null
 
 
 
261
  },
262
  {
263
  "scroll": "PHerc0490B",
@@ -272,10 +314,13 @@
272
  "bytes": 32900441240,
273
  "dataset": "SharpMeow/pherc0490b-lasagna",
274
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0490b-lasagna",
275
- "manifest": null,
276
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0490B/representations/predictions/lasagna/20250521151215-lasagna-de45f011",
277
  "gallery": true,
278
- "note": null
 
 
 
279
  },
280
  {
281
  "scroll": "PHerc0500P2",
@@ -290,10 +335,13 @@
290
  "bytes": 1616067316,
291
  "dataset": "SharpMeow/pherc0500p2-lasagnetta",
292
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0500p2-lasagnetta",
293
- "manifest": null,
294
- "stream": null,
295
  "gallery": false,
296
- "note": "the release's self-check has not been run on this whole volume"
 
 
 
297
  },
298
  {
299
  "scroll": "PHerc0814",
@@ -308,10 +356,13 @@
308
  "bytes": 33631289069,
309
  "dataset": "SharpMeow/pherc0814-20250804134230-lasagnetta",
310
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0814-20250804134230-lasagnetta",
311
- "manifest": null,
312
- "stream": null,
313
  "gallery": false,
314
- "note": "the release's self-check kept Lasagnetta on this volume"
 
 
 
315
  },
316
  {
317
  "scroll": "PHerc0814",
@@ -329,7 +380,10 @@
329
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0814/representations/predictions/lasagna/20260309142202-lasagna-20260419180421-L2/PHerc0814-20260309142202-lasagna-20260724.lasagna.json",
330
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0814/representations/predictions/lasagna/20260309142202-lasagna-20260419180421-L2",
331
  "gallery": false,
332
- "note": null
 
 
 
333
  },
334
  {
335
  "scroll": "PHerc0814",
@@ -344,10 +398,13 @@
344
  "bytes": 5145709178,
345
  "dataset": "SharpMeow/pherc0814-20260521123630-lasagnetta",
346
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0814-20260521123630-lasagnetta",
347
- "manifest": null,
348
- "stream": null,
349
  "gallery": false,
350
- "note": "the release's self-check kept Lasagnetta on this volume"
 
 
 
351
  },
352
  {
353
  "scroll": "PHerc0841",
@@ -362,10 +419,13 @@
362
  "bytes": 45944868402,
363
  "dataset": "SharpMeow/pherc0841-lasagna",
364
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0841-lasagna",
365
- "manifest": null,
366
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0841/representations/predictions/lasagna/20250821151531-lasagna-de45f011",
367
  "gallery": true,
368
- "note": null
 
 
 
369
  },
370
  {
371
  "scroll": "PHerc0841",
@@ -380,10 +440,13 @@
380
  "bytes": 8698480358,
381
  "dataset": "SharpMeow/pherc0841-20260319124803-lasagnetta",
382
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0841-20260319124803-lasagnetta",
383
- "manifest": null,
384
- "stream": null,
385
  "gallery": false,
386
- "note": "the release's self-check kept Lasagnetta on this volume"
 
 
 
387
  },
388
  {
389
  "scroll": "PHerc0846A",
@@ -398,10 +461,13 @@
398
  "bytes": 32441070754,
399
  "dataset": "SharpMeow/pherc0846a-lasagna",
400
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0846a-lasagna",
401
- "manifest": null,
402
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0846A/representations/predictions/lasagna/20250728152254-lasagna-de45f011",
403
  "gallery": true,
404
- "note": null
 
 
 
405
  },
406
  {
407
  "scroll": "PHerc0846B",
@@ -416,10 +482,13 @@
416
  "bytes": 35033336610,
417
  "dataset": "SharpMeow/pherc0846b-lasagna",
418
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0846b-lasagna",
419
- "manifest": null,
420
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0846B/representations/predictions/lasagna/20250804142305-lasagna-de45f011",
421
  "gallery": true,
422
- "note": null
 
 
 
423
  },
424
  {
425
  "scroll": "PHerc1299",
@@ -437,7 +506,10 @@
437
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1299/representations/predictions/lasagna/20260309130042-lasagna-20260419180421-L2/PHerc1299-20260309130042-lasagna-20260724.lasagna.json",
438
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1299/representations/predictions/lasagna/20260309130042-lasagna-20260419180421-L2",
439
  "gallery": false,
440
- "note": null
 
 
 
441
  },
442
  {
443
  "scroll": "PHerc1667",
@@ -455,7 +527,10 @@
455
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1667/representations/predictions/lasagna/20251217075048-lasagna-20260419180421-L2/PHerc1667-20251217075048-lasagna-20260724.lasagna.json",
456
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1667/representations/predictions/lasagna/20251217075048-lasagna-20260419180421-L2",
457
  "gallery": false,
458
- "note": null
 
 
 
459
  },
460
  {
461
  "scroll": "PHercMAN5",
@@ -470,10 +545,13 @@
470
  "bytes": 4211124696,
471
  "dataset": "SharpMeow/phercman5-lasagnetta",
472
  "url": "https://huggingface.co/datasets/SharpMeow/phercman5-lasagnetta",
473
- "manifest": null,
474
- "stream": null,
475
  "gallery": false,
476
- "note": "the release's self-check pointed to villa's net here: a quick look; use villa's field where exact values matter"
 
 
 
477
  },
478
  {
479
  "scroll": "PHercMANB",
@@ -488,10 +566,13 @@
488
  "bytes": 32987325501,
489
  "dataset": "SharpMeow/phercmanb-lasagnetta",
490
  "url": "https://huggingface.co/datasets/SharpMeow/phercmanb-lasagnetta",
491
- "manifest": null,
492
- "stream": null,
493
  "gallery": false,
494
- "note": "the release's self-check kept Lasagnetta on this volume"
 
 
 
495
  },
496
  {
497
  "scroll": "PHercMANBp",
@@ -506,10 +587,13 @@
506
  "bytes": 374924449,
507
  "dataset": "SharpMeow/phercmanbp-lasagna",
508
  "url": "https://huggingface.co/datasets/SharpMeow/phercmanbp-lasagna",
509
- "manifest": null,
510
- "stream": null,
511
  "gallery": false,
512
- "note": null
 
 
 
513
  },
514
  {
515
  "scroll": "PHercParis3",
@@ -527,7 +611,10 @@
527
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis3/representations/predictions/lasagna/20260427095331-lasagna-20260419180421-L2/PHercParis3-20260427095331-lasagna-20260724.lasagna.json",
528
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis3/representations/predictions/lasagna/20260427095331-lasagna-20260419180421-L2",
529
  "gallery": false,
530
- "note": null
 
 
 
531
  }
532
  ]
533
  }
 
20
  "bytes": 7835721663,
21
  "dataset": "SharpMeow/pherc0009b-lasagnetta",
22
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0009b-lasagnetta",
23
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0009B/representations/predictions/lasagna/20250521125136-lasagnetta-0.1.1/PHerc0009B.lasagna.json",
24
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0009B/representations/predictions/lasagna/20250521125136-lasagnetta-0.1.1",
25
  "gallery": false,
26
+ "note": "the release's self-check kept Lasagnetta on this volume",
27
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0009b-lasagnetta/resolve/main/preview-xy.png",
28
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0009b-lasagnetta/resolve/main/preview-xz.png",
29
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0009b-lasagnetta"
30
  },
31
  {
32
  "scroll": "PHerc0009B",
 
41
  "bytes": 4397390728,
42
  "dataset": "SharpMeow/pherc0009b-20250820154339-lasagnetta",
43
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20250820154339-lasagnetta",
44
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0009B/representations/predictions/lasagna/20250820154339-lasagnetta-0.1.1/PHerc0009B-20250820154339.lasagna.json",
45
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0009B/representations/predictions/lasagna/20250820154339-lasagnetta-0.1.1",
46
  "gallery": false,
47
+ "note": "the release's self-check kept Lasagnetta on this volume",
48
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20250820154339-lasagnetta/resolve/main/preview-xy.png",
49
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20250820154339-lasagnetta/resolve/main/preview-xz.png",
50
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20250820154339-lasagnetta"
51
  },
52
  {
53
  "scroll": "PHerc0009B",
 
62
  "bytes": 4076425380,
63
  "dataset": "SharpMeow/pherc0009b-20260319104112-lasagnetta",
64
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20260319104112-lasagnetta",
65
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0009B/representations/predictions/lasagna/20260319104112-lasagnetta-0.1.1/PHerc0009B-20260319104112.lasagna.json",
66
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0009B/representations/predictions/lasagna/20260319104112-lasagnetta-0.1.1",
67
  "gallery": false,
68
+ "note": "the release's self-check kept Lasagnetta on this volume",
69
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20260319104112-lasagnetta/resolve/main/preview-xy.png",
70
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20260319104112-lasagnetta/resolve/main/preview-xz.png",
71
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0009b-20260319104112-lasagnetta"
72
  },
73
  {
74
  "scroll": "PHerc0139",
 
86
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0139/representations/predictions/lasagna/20260102150214-lasagna-20260419180421-L2/PHerc0139-20260102150214-lasagna-20260724.lasagna.json",
87
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0139/representations/predictions/lasagna/20260102150214-lasagna-20260419180421-L2",
88
  "gallery": false,
89
+ "note": "made on 20260102150214, which 20260930100252 replaces in the same voxel frame",
90
+ "preview_xy": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0139-20260102150214-xy.webp",
91
+ "preview_xz": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0139-20260102150214-xz.webp",
92
+ "browse": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/index.html#PHerc0139/representations/predictions/lasagna/20260102150214-lasagna-20260419180421-L2/"
93
  },
94
  {
95
  "scroll": "PHerc0172",
 
104
  "bytes": 136447650060,
105
  "dataset": "SharpMeow/pherc0172-lasagnetta",
106
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0172-lasagnetta",
107
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0172/representations/predictions/lasagna/20241024131838-lasagnetta-0.1.1/PHerc0172.lasagna.json",
108
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0172/representations/predictions/lasagna/20241024131838-lasagnetta-0.1.1",
109
  "gallery": false,
110
+ "note": "the release's self-check pointed to villa's net here: a quick look; use villa's field where exact values matter",
111
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0172-lasagnetta/resolve/main/preview-xy.png",
112
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0172-lasagnetta/resolve/main/preview-xz.png",
113
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0172-lasagnetta"
114
  },
115
  {
116
  "scroll": "PHerc0175A",
 
125
  "bytes": 48177794159,
126
  "dataset": "SharpMeow/pherc0175a-lasagna",
127
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0175a-lasagna",
128
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0175A/representations/predictions/lasagna/20250521115057-lasagna-de45f011/PHerc0175A.lasagna.json",
129
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0175A/representations/predictions/lasagna/20250521115057-lasagna-de45f011",
130
  "gallery": true,
131
+ "note": null,
132
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0175a-lasagna/resolve/main/preview-xy.png",
133
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0175a-lasagna/resolve/main/preview-xz.png",
134
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0175a-lasagna"
135
  },
136
  {
137
  "scroll": "PHerc0175B",
 
146
  "bytes": 82186090388,
147
  "dataset": "SharpMeow/pherc0175b-lasagna",
148
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0175b-lasagna",
149
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0175B/representations/predictions/lasagna/20250521125822-lasagna-de45f011/PHerc0175B.lasagna.json",
150
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0175B/representations/predictions/lasagna/20250521125822-lasagna-de45f011",
151
  "gallery": true,
152
+ "note": null,
153
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0175b-lasagna/resolve/main/preview-xy.png",
154
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0175b-lasagna/resolve/main/preview-xz.png",
155
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0175b-lasagna"
156
  },
157
  {
158
  "scroll": "PHerc0306B",
 
167
  "bytes": 54562105533,
168
  "dataset": "SharpMeow/pherc0306b-lasagna",
169
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0306b-lasagna",
170
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0306B/representations/predictions/lasagna/20250521133212-lasagna-de45f011/PHerc0306B.lasagna.json",
171
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0306B/representations/predictions/lasagna/20250521133212-lasagna-de45f011",
172
  "gallery": true,
173
+ "note": null,
174
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0306b-lasagna/resolve/main/preview-xy.png",
175
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0306b-lasagna/resolve/main/preview-xz.png",
176
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0306b-lasagna"
177
  },
178
  {
179
  "scroll": "PHerc0332",
 
191
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0332/representations/predictions/lasagna/20251211183505-lasagna-20260419180421-L2/PHerc0332-20251211183505-lasagna-20260724.lasagna.json",
192
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0332/representations/predictions/lasagna/20251211183505-lasagna-20260419180421-L2",
193
  "gallery": false,
194
+ "note": null,
195
+ "preview_xy": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0332-20251211183505-xy.webp",
196
+ "preview_xz": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0332-20251211183505-xz.webp",
197
+ "browse": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/index.html#PHerc0332/representations/predictions/lasagna/20251211183505-lasagna-20260419180421-L2/"
198
  },
199
  {
200
  "scroll": "PHerc0343",
 
212
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0343/representations/predictions/lasagna/20250521140437-lasagna-20260419180421/PHerc0343.lasagna.json",
213
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0343/representations/predictions/lasagna/20250521140437-lasagna-20260419180421",
214
  "gallery": false,
215
+ "note": null,
216
+ "preview_xy": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0343-20250521140437-xy.webp",
217
+ "preview_xz": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0343-20250521140437-xz.webp",
218
+ "browse": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/index.html#PHerc0343/representations/predictions/lasagna/20250521140437-lasagna-20260419180421/"
219
  },
220
  {
221
  "scroll": "PHerc0343P",
 
230
  "bytes": 1849003527,
231
  "dataset": "SharpMeow/pherc0343p-lasagna",
232
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0343p-lasagna",
233
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0343P/representations/predictions/lasagna/20260304131111-lasagna/PHerc0343P.lasagna.json",
234
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0343P/representations/predictions/lasagna/20260304131111-lasagna",
235
  "gallery": false,
236
+ "note": null,
237
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0343p-lasagna/resolve/main/preview-xy.png",
238
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0343p-lasagna/resolve/main/preview-xz.png",
239
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0343p-lasagna"
240
  },
241
  {
242
  "scroll": "PHerc0483A",
 
251
  "bytes": 47412439255,
252
  "dataset": "SharpMeow/pherc0483a-lasagna",
253
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0483a-lasagna",
254
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0483A/representations/predictions/lasagna/20250521140913-lasagna-de45f011/PHerc0483A.lasagna.json",
255
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0483A/representations/predictions/lasagna/20250521140913-lasagna-de45f011",
256
  "gallery": true,
257
+ "note": null,
258
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0483a-lasagna/resolve/main/preview-xy.png",
259
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0483a-lasagna/resolve/main/preview-xz.png",
260
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0483a-lasagna"
261
  },
262
  {
263
  "scroll": "PHerc0483B",
 
272
  "bytes": 41488155807,
273
  "dataset": "SharpMeow/pherc0483b-lasagna",
274
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0483b-lasagna",
275
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0483B/representations/predictions/lasagna/20251124083638-lasagna-de45f011/PHerc0483B.lasagna.json",
276
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0483B/representations/predictions/lasagna/20251124083638-lasagna-de45f011",
277
  "gallery": true,
278
+ "note": null,
279
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0483b-lasagna/resolve/main/preview-xy.png",
280
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0483b-lasagna/resolve/main/preview-xz.png",
281
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0483b-lasagna"
282
  },
283
  {
284
  "scroll": "PHerc0490A",
 
293
  "bytes": 49710518643,
294
  "dataset": "SharpMeow/pherc0490a-lasagna",
295
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0490a-lasagna",
296
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0490A/representations/predictions/lasagna/20250521151210-lasagna-de45f011/PHerc0490A.lasagna.json",
297
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0490A/representations/predictions/lasagna/20250521151210-lasagna-de45f011",
298
  "gallery": true,
299
+ "note": null,
300
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0490a-lasagna/resolve/main/preview-xy.png",
301
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0490a-lasagna/resolve/main/preview-xz.png",
302
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0490a-lasagna"
303
  },
304
  {
305
  "scroll": "PHerc0490B",
 
314
  "bytes": 32900441240,
315
  "dataset": "SharpMeow/pherc0490b-lasagna",
316
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0490b-lasagna",
317
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0490B/representations/predictions/lasagna/20250521151215-lasagna-de45f011/PHerc0490B.lasagna.json",
318
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0490B/representations/predictions/lasagna/20250521151215-lasagna-de45f011",
319
  "gallery": true,
320
+ "note": null,
321
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0490b-lasagna/resolve/main/preview-xy.png",
322
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0490b-lasagna/resolve/main/preview-xz.png",
323
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0490b-lasagna"
324
  },
325
  {
326
  "scroll": "PHerc0500P2",
 
335
  "bytes": 1616067316,
336
  "dataset": "SharpMeow/pherc0500p2-lasagnetta",
337
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0500p2-lasagnetta",
338
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0500P2/representations/predictions/lasagna/20250820143440-lasagnetta-0.1.1/PHerc0500P2.lasagna.json",
339
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0500P2/representations/predictions/lasagna/20250820143440-lasagnetta-0.1.1",
340
  "gallery": false,
341
+ "note": "the release's self-check has not been run on this whole volume",
342
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0500p2-lasagnetta/resolve/main/preview-xy.png",
343
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0500p2-lasagnetta/resolve/main/preview-xz.png",
344
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0500p2-lasagnetta"
345
  },
346
  {
347
  "scroll": "PHerc0814",
 
356
  "bytes": 33631289069,
357
  "dataset": "SharpMeow/pherc0814-20250804134230-lasagnetta",
358
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0814-20250804134230-lasagnetta",
359
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0814/representations/predictions/lasagna/20250804134230-lasagnetta-0.1.1/PHerc0814-20250804134230.lasagna.json",
360
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0814/representations/predictions/lasagna/20250804134230-lasagnetta-0.1.1",
361
  "gallery": false,
362
+ "note": "the release's self-check kept Lasagnetta on this volume",
363
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0814-20250804134230-lasagnetta/resolve/main/preview-xy.png",
364
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0814-20250804134230-lasagnetta/resolve/main/preview-xz.png",
365
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0814-20250804134230-lasagnetta"
366
  },
367
  {
368
  "scroll": "PHerc0814",
 
380
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0814/representations/predictions/lasagna/20260309142202-lasagna-20260419180421-L2/PHerc0814-20260309142202-lasagna-20260724.lasagna.json",
381
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc0814/representations/predictions/lasagna/20260309142202-lasagna-20260419180421-L2",
382
  "gallery": false,
383
+ "note": null,
384
+ "preview_xy": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0814-20260309142202-xy.webp",
385
+ "preview_xz": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc0814-20260309142202-xz.webp",
386
+ "browse": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/index.html#PHerc0814/representations/predictions/lasagna/20260309142202-lasagna-20260419180421-L2/"
387
  },
388
  {
389
  "scroll": "PHerc0814",
 
398
  "bytes": 5145709178,
399
  "dataset": "SharpMeow/pherc0814-20260521123630-lasagnetta",
400
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0814-20260521123630-lasagnetta",
401
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0814/representations/predictions/lasagna/20260521123630-lasagnetta-0.1.1/PHerc0814-20260521123630.lasagna.json",
402
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0814/representations/predictions/lasagna/20260521123630-lasagnetta-0.1.1",
403
  "gallery": false,
404
+ "note": "the release's self-check kept Lasagnetta on this volume",
405
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0814-20260521123630-lasagnetta/resolve/main/preview-xy.png",
406
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0814-20260521123630-lasagnetta/resolve/main/preview-xz.png",
407
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0814-20260521123630-lasagnetta"
408
  },
409
  {
410
  "scroll": "PHerc0841",
 
419
  "bytes": 45944868402,
420
  "dataset": "SharpMeow/pherc0841-lasagna",
421
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0841-lasagna",
422
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0841/representations/predictions/lasagna/20250821151531-lasagna-de45f011/PHerc0841.lasagna.json",
423
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0841/representations/predictions/lasagna/20250821151531-lasagna-de45f011",
424
  "gallery": true,
425
+ "note": null,
426
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0841-lasagna/resolve/main/preview-xy.png",
427
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0841-lasagna/resolve/main/preview-xz.png",
428
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0841-lasagna"
429
  },
430
  {
431
  "scroll": "PHerc0841",
 
440
  "bytes": 8698480358,
441
  "dataset": "SharpMeow/pherc0841-20260319124803-lasagnetta",
442
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0841-20260319124803-lasagnetta",
443
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0841/representations/predictions/lasagna/20260319124803-lasagnetta-0.1.1/PHerc0841-20260319124803.lasagna.json",
444
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0841/representations/predictions/lasagna/20260319124803-lasagnetta-0.1.1",
445
  "gallery": false,
446
+ "note": "the release's self-check kept Lasagnetta on this volume",
447
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0841-20260319124803-lasagnetta/resolve/main/preview-xy.png",
448
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0841-20260319124803-lasagnetta/resolve/main/preview-xz.png",
449
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0841-20260319124803-lasagnetta"
450
  },
451
  {
452
  "scroll": "PHerc0846A",
 
461
  "bytes": 32441070754,
462
  "dataset": "SharpMeow/pherc0846a-lasagna",
463
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0846a-lasagna",
464
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0846A/representations/predictions/lasagna/20250728152254-lasagna-de45f011/PHerc0846A.lasagna.json",
465
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0846A/representations/predictions/lasagna/20250728152254-lasagna-de45f011",
466
  "gallery": true,
467
+ "note": null,
468
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0846a-lasagna/resolve/main/preview-xy.png",
469
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0846a-lasagna/resolve/main/preview-xz.png",
470
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0846a-lasagna"
471
  },
472
  {
473
  "scroll": "PHerc0846B",
 
482
  "bytes": 35033336610,
483
  "dataset": "SharpMeow/pherc0846b-lasagna",
484
  "url": "https://huggingface.co/datasets/SharpMeow/pherc0846b-lasagna",
485
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0846B/representations/predictions/lasagna/20250804142305-lasagna-de45f011/PHerc0846B.lasagna.json",
486
  "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHerc0846B/representations/predictions/lasagna/20250804142305-lasagna-de45f011",
487
  "gallery": true,
488
+ "note": null,
489
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/pherc0846b-lasagna/resolve/main/preview-xy.png",
490
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/pherc0846b-lasagna/resolve/main/preview-xz.png",
491
+ "browse": "https://huggingface.co/datasets/SharpMeow/pherc0846b-lasagna"
492
  },
493
  {
494
  "scroll": "PHerc1299",
 
506
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1299/representations/predictions/lasagna/20260309130042-lasagna-20260419180421-L2/PHerc1299-20260309130042-lasagna-20260724.lasagna.json",
507
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1299/representations/predictions/lasagna/20260309130042-lasagna-20260419180421-L2",
508
  "gallery": false,
509
+ "note": null,
510
+ "preview_xy": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc1299-20260309130042-xy.webp",
511
+ "preview_xz": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc1299-20260309130042-xz.webp",
512
+ "browse": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/index.html#PHerc1299/representations/predictions/lasagna/20260309130042-lasagna-20260419180421-L2/"
513
  },
514
  {
515
  "scroll": "PHerc1667",
 
527
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1667/representations/predictions/lasagna/20251217075048-lasagna-20260419180421-L2/PHerc1667-20251217075048-lasagna-20260724.lasagna.json",
528
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHerc1667/representations/predictions/lasagna/20251217075048-lasagna-20260419180421-L2",
529
  "gallery": false,
530
+ "note": null,
531
+ "preview_xy": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc1667-20251217075048-xy.webp",
532
+ "preview_xz": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHerc1667-20251217075048-xz.webp",
533
+ "browse": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/index.html#PHerc1667/representations/predictions/lasagna/20251217075048-lasagna-20260419180421-L2/"
534
  },
535
  {
536
  "scroll": "PHercMAN5",
 
545
  "bytes": 4211124696,
546
  "dataset": "SharpMeow/phercman5-lasagnetta",
547
  "url": "https://huggingface.co/datasets/SharpMeow/phercman5-lasagnetta",
548
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHercMAN5/representations/predictions/lasagna/20260311104824-lasagnetta-0.1.1/PHercMAN5.lasagna.json",
549
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHercMAN5/representations/predictions/lasagna/20260311104824-lasagnetta-0.1.1",
550
  "gallery": false,
551
+ "note": "the release's self-check pointed to villa's net here: a quick look; use villa's field where exact values matter",
552
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/phercman5-lasagnetta/resolve/main/preview-xy.png",
553
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/phercman5-lasagnetta/resolve/main/preview-xz.png",
554
+ "browse": "https://huggingface.co/datasets/SharpMeow/phercman5-lasagnetta"
555
  },
556
  {
557
  "scroll": "PHercMANB",
 
566
  "bytes": 32987325501,
567
  "dataset": "SharpMeow/phercmanb-lasagnetta",
568
  "url": "https://huggingface.co/datasets/SharpMeow/phercmanb-lasagnetta",
569
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHercMANB/representations/predictions/lasagna/20260323091048-lasagnetta-0.1.1/PHercMANB.lasagna.json",
570
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHercMANB/representations/predictions/lasagna/20260323091048-lasagnetta-0.1.1",
571
  "gallery": false,
572
+ "note": "the release's self-check kept Lasagnetta on this volume",
573
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/phercmanb-lasagnetta/resolve/main/preview-xy.png",
574
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/phercmanb-lasagnetta/resolve/main/preview-xz.png",
575
+ "browse": "https://huggingface.co/datasets/SharpMeow/phercmanb-lasagnetta"
576
  },
577
  {
578
  "scroll": "PHercMANBp",
 
587
  "bytes": 374924449,
588
  "dataset": "SharpMeow/phercmanbp-lasagna",
589
  "url": "https://huggingface.co/datasets/SharpMeow/phercmanbp-lasagna",
590
+ "manifest": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHercMANBp/representations/predictions/lasagna/20251216152116-lasagna/PHercMANBp.lasagna.json",
591
+ "stream": "https://huggingface.co/buckets/SharpMeow/lasagna-fields/resolve/PHercMANBp/representations/predictions/lasagna/20251216152116-lasagna",
592
  "gallery": false,
593
+ "note": null,
594
+ "preview_xy": "https://huggingface.co/datasets/SharpMeow/phercmanbp-lasagna/resolve/main/preview-xy.png",
595
+ "preview_xz": "https://huggingface.co/datasets/SharpMeow/phercmanbp-lasagna/resolve/main/preview-xz.png",
596
+ "browse": "https://huggingface.co/datasets/SharpMeow/phercmanbp-lasagna"
597
  },
598
  {
599
  "scroll": "PHercParis3",
 
611
  "manifest": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis3/representations/predictions/lasagna/20260427095331-lasagna-20260419180421-L2/PHercParis3-20260427095331-lasagna-20260724.lasagna.json",
612
  "stream": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/PHercParis3/representations/predictions/lasagna/20260427095331-lasagna-20260419180421-L2",
613
  "gallery": false,
614
+ "note": null,
615
+ "preview_xy": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHercParis3-20260427095331-xy.webp",
616
+ "preview_xz": "https://huggingface.co/spaces/SharpMeow/lasagna-fields/resolve/main/assets/previews/PHercParis3-20260427095331-xz.webp",
617
+ "browse": "https://vesuvius-challenge-open-data.s3.us-east-1.amazonaws.com/index.html#PHercParis3/representations/predictions/lasagna/20260427095331-lasagna-20260419180421-L2/"
618
  }
619
  ]
620
  }
guide/index.html CHANGED
@@ -121,9 +121,6 @@ footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
121
  .sccard{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
122
  .sccard .thumb{position:relative;aspect-ratio:2/1;background:#000;overflow:hidden}
123
  .sccard .thumb img{display:block;width:100%;height:100%;object-fit:cover}
124
- .sccard .thumb .ph{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--accent2) 22%,var(--bg2)) 0,var(--bg2) 70%)}
125
- .sccard .thumb .ph i{display:block;width:92px;height:62px;border-radius:10px;box-shadow:var(--shadow);background:repeating-linear-gradient(180deg,#c2462b 0 8px,#e07a3f 8px 13px,#f3e2bf 13px 18px,#d9aa4f 18px 21px,#f3e2bf 21px 24px)}
126
- .sccard .thumb .ph span{position:absolute;left:10px;bottom:8px;font-size:11.5px;color:var(--ink2);background:color-mix(in srgb,var(--card) 85%,transparent);padding:2px 8px;border-radius:6px}
127
  .sccard .thumb .tag{position:absolute;left:10px;bottom:8px;font-size:11.5px;color:#f1e9dc;background:#000a;padding:2px 8px;border-radius:6px}
128
  .sccard .hd{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 16px 4px}
129
  .sccard .hd h3{font-size:21px;margin:0}
@@ -154,6 +151,17 @@ table.flist td.mdl{max-width:300px}
154
  .fempty{color:var(--ink3);padding:14px 2px}
155
  #pend{margin-top:30px}
156
  #pend table td{color:var(--ink2)}
 
 
 
 
 
 
 
 
 
 
 
157
  .toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:9px;font-size:14px;opacity:0;transition:.2s;pointer-events:none;z-index:50}
158
  .toast.on{opacity:1;transform:translateX(-50%)}
159
  @media (max-width:900px){
@@ -221,7 +229,7 @@ table.flist td.mdl{max-width:300px}
221
  <button type="button" data-fm="" aria-pressed="true">All</button><button type="button" data-fm="villa predict3d" aria-pressed="false">villa predict3d</button><button type="button" data-fm="Lasagnetta 0.1.1" aria-pressed="false">Lasagnetta 0.1.1</button>
222
  </div>
223
  <div class="seg" role="group" aria-label="Where">
224
- <button type="button" data-fw="" aria-pressed="true">Any source</button><button type="button" data-fw="dl" aria-pressed="false">Download</button><button type="button" data-fw="url" aria-pressed="false">Streams by URL</button>
225
  </div>
226
  <span class="fcount" id="fcount"></span>
227
  <div class="seg vseg" role="group" aria-label="Layout">
@@ -262,7 +270,7 @@ table.flist td.mdl{max-width:300px}
262
 
263
  <section id="connect"><div class="wrap">
264
  <h2>Connect your tool</h2>
265
- <p class="sub">The ten fields above are also in the public bucket <a href="https://huggingface.co/buckets/SharpMeow/lasagna-fields">SharpMeow/lasagna-fields</a>, laid out like the Vesuvius Challenge open data (<code>SCAN/representations/predictions/lasagna/RUN/</code>). Any tool that reads zarr over HTTPS can open it, with no download and no account. The commands here follow the scan you picked above. villa's fields in the open data stream the same way from their run folder: <b>Copy URL</b> in the list gives it.</p>
266
  <div class="panel">
267
  <div style="display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center"><h3 id="cname" style="margin:0"></h3><span style="color:var(--ink3);font-size:13px">Anonymous HTTPS, CORS open, missing chunks read as empty</span></div>
268
  <div class="codebox"><pre id="curl"></pre><button class="copy" data-copy="curl" type="button">Copy</button></div>
@@ -363,6 +371,11 @@ and with Lasagnetta 0.1.1 (SharpMeow/lasagnetta), on Vesuvius Challenge open dat
363
  <span>Also: <a href="https://huggingface.co/datasets/SharpMeow/vesuvius-center-lines">center lines</a> &middot; <a href="https://huggingface.co/spaces/SharpMeow/umbilici?mode=lasagna&scan=PHerc0175A&z=6400">PHerc0175A in 3D</a></span>
364
  </div></footer>
365
  <div class="toast" id="toast">Copied</div>
 
 
 
 
 
366
 
367
  <script id="data" type="application/json">[{"id":"PHerc0175A","repo":"SharpMeow/pherc0175a-lasagna","volume":"20250521115057-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[12748,9363,9363],"bytes":48177793405,"fix":256972800,"seam":1.26,"pz":6372,"center":true,"parts":[["000",[[1024,2048],[0,4608],[0,9363]],569692160],["001",[[1024,2048],[4608,9363],[0,4608]],496906240],["002",[[1024,2048],[4608,9363],[4608,9363]],1085020160],["003",[[2048,3072],[0,4608],[0,9363]],1038991360],["004",[[2048,3072],[4608,7168],[0,4608]],1268101120],["005",[[2048,3072],[4608,7168],[4608,9363]],1239439360],["006",[[2048,3072],[7168,9363],[0,4608]],309596160],["007",[[2048,3072],[7168,9363],[4608,9363]],333393920],["008",[[3072,4096],[0,4608],[0,9363]],1165516800],["009",[[3072,4096],[4608,7168],[0,2048]],198952960],["010",[[3072,4096],[4608,7168],[2048,4608]],1121945600],["011",[[3072,4096],[4608,7168],[4608,9363]],1206630400],["012",[[3072,4096],[7168,9363],[0,4608]],477286400],["013",[[3072,4096],[7168,9363],[4608,9363]],298577920],["014",[[4096,5120],[0,4608],[0,9363]],1303111680],["015",[[4096,5120],[4608,7168],[0,2048]],213565440],["016",[[4096,5120],[4608,7168],[2048,4608]],1113907200],["017",[[4096,5120],[4608,7168],[4608,9363]],1252628480],["018",[[4096,5120],[7168,9363],[0,4608]],409507840],["019",[[4096,5120],[7168,9363],[4608,9363]],269250560],["020",[[5120,6144],[0,4608],[0,4608]],1032652800],["021",[[5120,6144],[0,4608],[4608,9363]],387000320],["022",[[5120,6144],[4608,7168],[0,2048]],237475840],["023",[[5120,6144],[4608,7168],[2048,4608]],1103083520],["024",[[5120,6144],[4608,7168],[4608,7168]],1101475840],["025",[[5120,6144],[4608,7168],[7168,9363]],227850240],["026",[[5120,6144],[7168,9363],[0,4608]],326850560],["027",[[5120,6144],[7168,9363],[4608,9363]],253163520],["028",[[6144,7168],[0,4608],[0,4608]],1004503040],["029",[[6144,7168],[0,4608],[4608,9363]],526776320],["030",[[6144,7168],[4608,7168],[0,2048]],200007680],["031",[[6144,7168],[4608,7168],[2048,4608]],1079756800],["032",[[6144,7168],[4608,7168],[4608,7168]],1095782400],["033",[[6144,7168],[4608,7168],[7168,9363]],264478720],["034",[[6144,7168],[7168,9363],[0,4608]],280637440],["035",[[6144,7168],[7168,9363],[4608,9363]],251627520],["036",[[7168,8192],[0,4608],[0,4608]],1008650240],["037",[[7168,8192],[0,4608],[4608,9363]],652462080],["038",[[7168,8192],[4608,7168],[0,2048]],176281600],["039",[[7168,8192],[4608,7168],[2048,4608]],1071370240],["040",[[7168,8192],[4608,7168],[4608,7168]],1079173120],["041",[[7168,8192],[4608,7168],[7168,9363]],290242560],["042",[[7168,8192],[7168,9363],[0,4608]],219996160],["043",[[7168,8192],[7168,9363],[4608,9363]],244940800],["044",[[8192,9216],[0,4608],[0,4608]],1032304640],["045",[[8192,9216],[0,4608],[4608,9363]],867645440],["046",[[8192,9216],[4608,7168],[0,4608]],1188648960],["047",[[8192,9216],[4608,7168],[4608,7168]],1085102080],["048",[[8192,9216],[4608,7168],[7168,9363]],379729920],["049",[[8192,9216],[7168,9363],[0,4608]],170926080],["050",[[8192,9216],[7168,9363],[4608,9363]],239185920],["051",[[9216,10240],[0,4608],[0,4608]],1050480640],["052",[[9216,10240],[0,4608],[4608,9363]],1185935360],["053",[[9216,10240],[4608,7168],[4608,7168]],1115289600],["054",[[9216,10240],[4608,7168],[7168,9363]],585236480],["055",[[9216,10240],[4608,9363],[0,4608]],1247825920],["056",[[9216,10240],[7168,9363],[4608,9363]],255498240],["057",[[10240,11264],[0,4608],[0,4608]],1034823680],["058",[[10240,11264],[0,4608],[4608,9363]],915281920],["059",[[10240,11264],[4608,9363],[0,4608]],1213378560],["060",[[10240,11264],[4608,9363],[4608,9363]],1442519040],["00",[[0,1024],[0,9363],[0,9363]],885186560],["11",[[11264,12288],[0,9363],[0,9363]],1106769920],["12",[[12288,12748],[0,9363],[0,9363]],1427712000]],"run":"PHerc0175A/representations/predictions/lasagna/20250521115057-lasagna-de45f011"},{"id":"PHerc0175B","repo":"SharpMeow/pherc0175b-lasagna","volume":"20250521125822-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[15897,9613,9613],"bytes":82186089634,"fix":10240,"seam":1.345,"pz":7948,"center":true,"parts":[["000",[[0,1024],[0,9613],[0,9613]],1514383360],["001",[[1024,2048],[0,5120],[0,9613]],1407938560],["002",[[1024,2048],[5120,9613],[0,9613]],3160821760],["003",[[2048,3072],[0,5120],[0,5120]],2000721920],["004",[[2048,3072],[0,5120],[5120,9613]],2044180480],["005",[[2048,3072],[5120,9613],[0,5120]],1640591360],["006",[[2048,3072],[5120,9613],[5120,9613]],1497559040],["007",[[3072,4096],[0,5120],[0,5120]],2237388800],["008",[[3072,4096],[0,5120],[5120,9613]],2131998720],["009",[[3072,4096],[5120,9613],[0,9613]],2935080960],["010",[[4096,5120],[0,5120],[0,5120]],2153451520],["011",[[4096,5120],[0,5120],[5120,9613]],1844142080],["012",[[4096,5120],[5120,9613],[0,9613]],2714398720],["013",[[5120,6144],[0,5120],[0,5120]],2108313600],["014",[[5120,6144],[0,5120],[5120,9613]],1906216960],["015",[[5120,6144],[5120,9613],[0,9613]],2691891200],["016",[[6144,7168],[0,5120],[0,5120]],2061670400],["017",[[6144,7168],[0,5120],[5120,9613]],1911951360],["018",[[6144,7168],[5120,9613],[0,9613]],2576302080],["019",[[7168,8192],[0,5120],[0,5120]],1851371520],["020",[[7168,8192],[0,5120],[5120,9613]],1717555200],["021",[[7168,8192],[5120,9613],[0,9613]],2700554240],["022",[[8192,9216],[0,5120],[0,5120]],1822607360],["023",[[8192,9216],[0,5120],[5120,9613]],1616537600],["024",[[8192,9216],[5120,9613],[0,5120]],1389537280],["025",[[8192,9216],[5120,9613],[5120,9613]],1553776640],["026",[[9216,10240],[0,5120],[0,5120]],1848739840],["027",[[9216,10240],[0,5120],[5120,9613]],1431142400],["028",[[9216,10240],[5120,9613],[0,5120]],1497989120],["029",[[9216,10240],[5120,9613],[5120,9613]],1644605440],["030",[[10240,11264],[0,5120],[0,5120]],1843128320],["031",[[10240,11264],[0,5120],[5120,9613]],1212149760],["032",[[10240,11264],[5120,9613],[0,5120]],1812940800],["033",[[10240,11264],[5120,9613],[5120,9613]],1621381120],["034",[[11264,12288],[0,5120],[0,9613]],2792785920],["035",[[11264,12288],[5120,9613],[0,5120]],1752053760],["036",[[11264,12288],[5120,9613],[5120,9613]],1498009600],["037",[[12288,13312],[0,5120],[0,9613]],2421299200],["038",[[12288,13312],[5120,9613],[0,9613]],2411141120],["039",[[13312,14336],[0,9613],[0,9613]],2876979200],["040",[[14336,15360],[0,9613],[0,9613]],816035840],["041",[[15360,15897],[0,9613],[0,9613]],1510348800]],"run":"PHerc0175B/representations/predictions/lasagna/20250521125822-lasagna-de45f011"},{"id":"PHerc0306B","repo":"SharpMeow/pherc0306b-lasagna","volume":"20250521133212-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[15898,8849,8849],"bytes":54562104779,"fix":10240,"seam":1.123,"pz":7948,"center":true,"parts":[["000",[[0,1024],[0,8849],[0,8849]],868341760],["001",[[1024,2048],[0,8849],[0,8849]],1625139200],["002",[[2048,3072],[0,8849],[0,8849]],3220418560],["003",[[3072,4096],[0,4096],[0,8849]],1915596800],["004",[[3072,4096],[4096,8849],[0,8849]],2842306560],["005",[[4096,5120],[0,4096],[0,8849]],2505390080],["006",[[4096,5120],[4096,8849],[0,8849]],2990786560],["007",[[5120,6144],[0,4096],[0,8849]],2537093120],["008",[[5120,6144],[4096,8849],[0,8849]],2867517440],["009",[[6144,7168],[0,4096],[0,8849]],2207866880],["010",[[6144,7168],[4096,8849],[0,8849]],2478387200],["011",[[7168,8192],[0,4096],[0,8849]],1837332480],["012",[[7168,8192],[4096,8849],[0,8849]],2307379200],["013",[[8192,9216],[0,4096],[0,8849]],1822986240],["014",[[8192,9216],[4096,8849],[0,8849]],2176440320],["015",[[9216,10240],[0,4096],[0,8849]],1844285440],["016",[[9216,10240],[4096,8849],[0,8849]],2145331200],["017",[[10240,11264],[0,4096],[0,8849]],1904312320],["018",[[10240,11264],[4096,8849],[0,8849]],2072791040],["019",[[11264,12288],[0,4096],[0,8849]],1891225600],["020",[[11264,12288],[4096,8849],[0,8849]],1812705280],["021",[[12288,13312],[0,4096],[0,8849]],2163097600],["022",[[12288,13312],[4096,8849],[0,8849]],1357107200],["023",[[13312,14336],[0,8849],[0,8849]],2441410560],["024",[[14336,15360],[0,8849],[0,8849]],1459896320],["025",[[15360,15898],[0,8849],[0,8849]],1263534080]],"run":"PHerc0306B/representations/predictions/lasagna/20250521133212-lasagna-de45f011"},{"id":"PHerc0483A","repo":"SharpMeow/pherc0483a-lasagna","volume":"20250521140913-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[15898,8849,8849],"bytes":47412438501,"fix":10240,"seam":1.162,"pz":7948,"center":true,"parts":[["000",[[0,1024],[0,8849],[0,8849]],953948160],["001",[[1024,2048],[0,8849],[0,8849]],2872115200],["002",[[2048,3072],[0,4096],[0,8849]],846182400],["003",[[2048,3072],[4096,8849],[0,8849]],2758737920],["004",[[3072,4096],[0,4096],[0,8849]],1158533120],["005",[[3072,4096],[4096,8849],[0,8849]],2182359040],["006",[[4096,5120],[0,4096],[0,8849]],1438115840],["007",[[4096,5120],[4096,8849],[0,8849]],2021847040],["008",[[5120,6144],[0,4096],[0,8849]],1460674560],["009",[[5120,6144],[4096,8849],[0,8849]],1818675200],["010",[[6144,7168],[0,8849],[0,8849]],2900961280],["011",[[7168,8192],[0,8849],[0,8849]],2810716160],["012",[[8192,9216],[0,8849],[0,8849]],3019837440],["013",[[9216,10240],[0,4096],[0,8849]],1343682560],["014",[[9216,10240],[4096,8849],[0,8849]],2060544000],["015",[[10240,11264],[0,4096],[0,8849]],1397544960],["016",[[10240,11264],[4096,8849],[0,8849]],2733813760],["017",[[11264,12288],[0,4096],[0,8849]],1278771200],["018",[[11264,12288],[4096,8849],[0,4096]],1464422400],["019",[[11264,12288],[4096,8849],[4096,8849]],1550018560],["020",[[12288,13312],[0,4096],[0,8849]],1111787520],["021",[[12288,13312],[4096,8849],[0,4096]],1561292800],["022",[[12288,13312],[4096,8849],[4096,8849]],1478133760],["023",[[13312,14336],[0,8849],[0,8849]],2452049920],["024",[[14336,15360],[0,8849],[0,8849]],1035386880],["025",[[15360,15898],[0,8849],[0,8849]],1698887680]],"run":"PHerc0483A/representations/predictions/lasagna/20250521140913-lasagna-de45f011"},{"id":"PHerc0483B","repo":"SharpMeow/pherc0483b-lasagna","volume":"20251124083638-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[11880,8343,8343],"bytes":41488155053,"fix":10240,"seam":1.106,"pz":5940,"center":true,"parts":[["000",[[0,1024],[0,8343],[0,8343]],176138240],["001",[[1024,2048],[0,8343],[0,8343]],1620623360],["002",[[2048,3072],[0,4096],[0,8343]],1205012480],["003",[[2048,3072],[4096,8343],[0,8343]],2147061760],["004",[[3072,4096],[0,4096],[0,8343]],1296189440],["005",[[3072,4096],[4096,8343],[0,8343]],2460006400],["006",[[4096,5120],[0,4096],[0,8343]],1599467520],["007",[[4096,5120],[4096,8343],[0,8343]],2541731840],["008",[[5120,6144],[0,4096],[0,8343]],1956659200],["009",[[5120,6144],[4096,8343],[0,8343]],2760755200],["010",[[6144,7168],[0,4096],[0,8343]],2275471360],["011",[[6144,7168],[4096,8343],[0,8343]],2689259520],["012",[[7168,8192],[0,4096],[0,8343]],2534461440],["013",[[7168,8192],[4096,8343],[0,8343]],2701701120],["014",[[8192,9216],[0,4096],[0,8343]],2829107200],["015",[[8192,9216],[4096,8343],[0,8343]],2989660160],["016",[[9216,10240],[0,4096],[0,8343]],2140211200],["017",[[9216,10240],[4096,8343],[0,8343]],2483568640],["018",[[10240,11264],[0,8343],[0,8343]],2567260160],["019",[[11264,11880],[0,8343],[0,8343]],510801920]],"run":"PHerc0483B/representations/predictions/lasagna/20251124083638-lasagna-de45f011"},{"id":"PHerc0490A","repo":"SharpMeow/pherc0490a-lasagna","volume":"20250521151210-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[11698,9101,9101],"bytes":49710517889,"fix":10240,"seam":1.184,"pz":5848,"center":true,"parts":[["000",[[0,1024],[0,9101],[0,9101]],1930536960],["001",[[1024,2048],[0,9101],[0,9101]],1422868480],["002",[[2048,3072],[0,4096],[0,9101]],2111375360],["003",[[2048,3072],[4096,9101],[0,9101]],2413690880],["004",[[3072,4096],[0,4096],[0,9101]],2379786240],["005",[[3072,4096],[4096,9101],[0,4096]],1359073280],["006",[[3072,4096],[4096,9101],[4096,9101]],1717237760],["007",[[4096,5120],[0,4096],[0,9101]],2506946560],["008",[[4096,5120],[4096,9101],[0,9101]],2644244480],["009",[[5120,6144],[0,4096],[0,9101]],2550620160],["010",[[5120,6144],[4096,9101],[0,9101]],2524825600],["011",[[6144,7168],[0,4096],[0,9101]],2422814720],["012",[[6144,7168],[4096,9101],[0,4096]],1422325760],["013",[[6144,7168],[4096,9101],[4096,9101]],1651210240],["014",[[7168,8192],[0,4096],[0,9101]],2114242560],["015",[[7168,8192],[4096,9101],[0,4096]],1600624640],["016",[[7168,8192],[4096,9101],[4096,9101]],2081792000],["017",[[8192,9216],[0,4096],[0,9101]],1961154560],["018",[[8192,9216],[4096,9101],[0,4096]],1693204480],["019",[[8192,9216],[4096,9101],[4096,9101]],2359152640],["020",[[9216,10240],[0,4096],[0,9101]],1631877120],["021",[[9216,10240],[4096,9101],[0,4096]],1850408960],["022",[[9216,10240],[4096,9101],[4096,9101]],2133708800],["023",[[10240,11264],[0,9101],[0,9101]],1912156160],["024",[[11264,11698],[0,9101],[0,9101]],1311467520]],"run":"PHerc0490A/representations/predictions/lasagna/20250521151210-lasagna-de45f011"},{"id":"PHerc0490B","repo":"SharpMeow/pherc0490b-lasagna","volume":"20250521151215-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[10648,8343,8343],"bytes":32900440486,"fix":10240,"seam":1.123,"pz":5324,"center":true,"parts":[["000",[[0,1024],[0,8343],[0,8343]],2058895360],["001",[[1024,2048],[0,8343],[0,8343]],822784000],["002",[[2048,3072],[0,8343],[0,8343]],2714982400],["003",[[3072,4096],[0,4096],[0,8343]],1944125440],["004",[[3072,4096],[4096,8343],[0,8343]],2514268160],["005",[[4096,5120],[0,4096],[0,8343]],2359951360],["006",[[4096,5120],[4096,8343],[0,8343]],2827724800],["007",[[5120,6144],[0,4096],[0,8343]],2485729280],["008",[[5120,6144],[4096,8343],[0,8343]],2586828800],["009",[[6144,7168],[0,4096],[0,8343]],2359173120],["010",[[6144,7168],[4096,8343],[0,8343]],2469836800],["011",[[7168,8192],[0,4096],[0,8343]],1728665600],["012",[[7168,8192],[4096,8343],[0,8343]],2325022720],["013",[[8192,9216],[0,8343],[0,8343]],2124062720],["014",[[9216,10240],[0,8343],[0,8343]],537180160],["015",[[10240,10648],[0,8343],[0,8343]],1038735360]],"run":"PHerc0490B/representations/predictions/lasagna/20250521151215-lasagna-de45f011"},{"id":"PHerc0841","repo":"SharpMeow/pherc0841-lasagna","volume":"20250821151531-9.366um-1.2m-113keV-masked.zarr","um":9.366,"shape":[19400,7703,7703],"bytes":45944867652,"fix":10240,"seam":1.622,"pz":9700,"center":false,"parts":[["000",[[0,1024],[0,7703],[0,7703]],1157713920],["001",[[1024,2048],[0,7703],[0,7703]],1659146240],["002",[[2048,3072],[0,4096],[0,7703]],2530775040],["003",[[2048,3072],[4096,7703],[0,7703]],1158072320],["004",[[3072,4096],[0,4096],[0,7703]],2732318720],["005",[[3072,4096],[4096,7703],[0,7703]],1305569280],["006",[[4096,5120],[0,4096],[0,7703]],2477383680],["007",[[4096,5120],[4096,7703],[0,7703]],1224796160],["008",[[5120,6144],[0,7703],[0,7703]],3200819200],["009",[[6144,7168],[0,7703],[0,7703]],2484510720],["010",[[7168,8192],[0,7703],[0,7703]],2356346880],["011",[[8192,9216],[0,7703],[0,7703]],2220840960],["012",[[9216,10240],[0,7703],[0,7703]],2199930880],["013",[[10240,11264],[0,7703],[0,7703]],2256486400],["014",[[11264,12288],[0,7703],[0,7703]],2268364800],["015",[[12288,13312],[0,7703],[0,7703]],2323046400],["016",[[13312,14336],[0,7703],[0,7703]],2426265600],["017",[[14336,15360],[0,7703],[0,7703]],2492456960],["018",[[15360,16384],[0,7703],[0,7703]],2691143680],["019",[[16384,17408],[0,7703],[0,7703]],2651279360],["020",[[17408,18432],[0,7703],[0,7703]],1724067840],["021",[[18432,19400],[0,7703],[0,7703]],400711680]],"run":"PHerc0841/representations/predictions/lasagna/20250821151531-lasagna-de45f011"},{"id":"PHerc0846A","repo":"SharpMeow/pherc0846a-lasagna","volume":"20250728152254-9.362um-1.2m-113keV-masked.zarr","um":9.362,"shape":[14019,7726,7726],"bytes":32441070000,"fix":10240,"seam":1.108,"pz":7008,"center":true,"parts":[["000",[[0,1024],[0,4096],[0,7726]],2497198080],["001",[[0,1024],[4096,7726],[0,7726]],2297927680],["002",[[1024,2048],[0,7726],[0,7726]],658155520],["003",[[2048,3072],[0,7726],[0,7726]],2689873920],["004",[[3072,4096],[0,4096],[0,7726]],2094336000],["005",[[3072,4096],[4096,7726],[0,7726]],1497937920],["006",[[4096,5120],[0,4096],[0,7726]],1887641600],["007",[[4096,5120],[4096,7726],[0,7726]],1414348800],["008",[[5120,6144],[0,7726],[0,7726]],2803722240],["009",[[6144,7168],[0,7726],[0,7726]],2204078080],["010",[[7168,8192],[0,7726],[0,7726]],1953495040],["011",[[8192,9216],[0,7726],[0,7726]],1988648960],["012",[[9216,10240],[0,7726],[0,7726]],2122731520],["013",[[10240,11264],[0,7726],[0,7726]],2195148800],["014",[[11264,12288],[0,7726],[0,7726]],1854883840],["015",[[12288,13312],[0,7726],[0,7726]],1597736960],["016",[[13312,14019],[0,7726],[0,7726]],680857600]],"run":"PHerc0846A/representations/predictions/lasagna/20250728152254-lasagna-de45f011"},{"id":"PHerc0846B","repo":"SharpMeow/pherc0846b-lasagna","volume":"20250804142305-9.362um-1.2m-113keV-masked.zarr","um":9.362,"shape":[13926,7859,7859],"bytes":35033335856,"fix":10240,"seam":1.36,"pz":6964,"center":true,"parts":[["000",[[0,1024],[0,7859],[0,7859]],188262400],["001",[[1024,2048],[0,7859],[0,7859]],1207982080],["002",[[2048,3072],[0,7859],[0,7859]],1744916480],["003",[[3072,4096],[0,7859],[0,7859]],1853480960],["004",[[4096,5120],[0,7859],[0,7859]],1885081600],["005",[[5120,6144],[0,7859],[0,7859]],1954447360],["006",[[6144,7168],[0,7859],[0,7859]],2012354560],["007",[[7168,8192],[0,7859],[0,7859]],2397071360],["008",[[8192,9216],[0,4096],[0,7859]],1862440960],["009",[[8192,9216],[4096,7859],[0,7859]],1379829760],["010",[[9216,10240],[0,4096],[0,7859]],2212546560],["011",[[9216,10240],[4096,7859],[0,7859]],1635399680],["012",[[10240,11264],[0,4096],[0,7859]],2502000640],["013",[[10240,11264],[4096,7859],[0,7859]],2152806400],["014",[[11264,12288],[0,4096],[0,7859]],2383554560],["015",[[11264,12288],[4096,7859],[0,7859]],2498549760],["016",[[12288,13312],[0,4096],[0,7859]],2026168320],["017",[[12288,13312],[4096,7859],[0,7859]],2171258880],["018",[[13312,13926],[0,7859],[0,7859]],962652160]],"run":"PHerc0846B/representations/predictions/lasagna/20250804142305-lasagna-de45f011"}]</script>
368
  <script id="fieldlist" type="application/json">null</script>
@@ -427,35 +440,28 @@ const attr=s=>esc(String(s)).replace(/"/g,'&quot;');
427
  const uniq=a=>a.filter((v,i)=>a.indexOf(v)===i);
428
  const um=v=>(+v).toLocaleString('en-US',{maximumFractionDigits:3})+' µm';
429
  const lvl=f=>f.read_level?'read at level '+f.read_level+', '+(f.voxel_um*Math.pow(2,f.read_level)).toFixed(1)+' µm':'read at full resolution';
430
- let fm='',fq='',fw='',fv='cards';
 
 
 
 
 
431
  function fieldRow(f,first,n){
432
- const L=[];
433
- if(f.dataset)L.push('<a href="'+attr(f.url)+'">Dataset</a>');
434
- if(f.manifest)L.push('<a href="'+attr(f.manifest)+'">Manifest</a>');
435
- if(f.gallery)L.push('<button type="button" data-show="'+attr(f.scroll)+'">Preview</button>');
436
- if(f.stream)L.push('<button type="button" data-url="'+attr(f.stream)+'">Copy URL</button>');
437
- const where=f.source==='open-data'?'Open data<span class="fnote">villa\'s run, streams by URL</span>':'SharpMeow dataset'+(f.stream?'<span class="fnote">also streams from the bucket</span>':'');
438
  return '<tr>'+(first?'<td class="sc" rowspan="'+n+'">'+esc(f.scroll)+'</td>':'')+
439
  '<td data-k="Volume"><span class="mono">'+esc(f.volume)+'</span></td>'+
440
  '<td data-k="Voxel size" class="num">'+um(f.voxel_um)+'<span class="fnote">'+lvl(f)+'</span></td>'+
441
  '<td data-k="Model" class="mdl"><span class="mp '+(f.model.indexOf('Lasagnetta')===0?'lgt':'villa')+'">'+esc(f.model)+'</span>'+(f.note?'<span class="fnote">'+esc(f.note)+'</span>':'')+'</td>'+
442
  '<td data-k="Where">'+where+'</td><td data-k="Size" class="num">'+gb(f.bytes)+'</td>'+
443
- '<td class="get"><div class="flinks">'+L.join('')+'</div></td></tr>'}
444
- const hasDl=f=>!!(f.dataset||f.manifest),hasUrl=f=>!!f.stream;
445
- function thumbOf(g){const f=g.find(x=>x.dataset);if(!f)return null;const n=f.dataset.split('/')[1];
446
- return {src:'assets/thumbs/'+n+'.webp',alt:'https://huggingface.co/datasets/'+f.dataset+'/resolve/main/preview-xy.png',vol:f.volume}}
447
- function cardLine(f){const L=[];
448
- if(f.dataset)L.push('<a href="'+attr(f.url)+'">Dataset</a>');
449
- if(f.manifest)L.push('<a href="'+attr(f.manifest)+'">Manifest</a>');
450
- if(f.gallery)L.push('<button type="button" data-show="'+attr(f.scroll)+'">Preview</button>');
451
- if(f.stream)L.push('<button type="button" data-url="'+attr(f.stream)+'">Copy URL</button>');
452
  const src=f.source==='open-data'?'open data':'SharpMeow';
453
  return '<li><div class="res">'+um(f.voxel_um)+'<span class="mono">'+esc(f.volume)+'</span></div><div class="sz">'+gb(f.bytes)+'</div>'+
454
- '<div class="row2"><span class="mp '+(f.model.indexOf('Lasagnetta')===0?'lgt':'villa')+'">'+esc(f.model)+'</span><span class="fnote" style="margin:0">'+src+(f.read_level?', level '+f.read_level:'')+'</span><div class="flinks">'+L.join('')+'</div></div>'+
455
  (f.note?'<div class="why">'+esc(f.note)+'</div>':'')+'</li>'}
456
  function card(g){const t=thumbOf(g),n=g.length;
457
- const img=t?'<img loading="lazy" src="'+t.src+'" data-alt="'+attr(t.alt)+'" alt="'+attr(g[0].scroll)+' field preview, cos and normals" onerror="if(this.dataset.alt){this.src=this.dataset.alt;this.dataset.alt=\'\'}"><span class="tag">cos | normals · '+esc(t.vol)+'</span>'
458
- :'<div class="ph"><i></i><span>villa field in the open data · stream it by URL</span></div>';
459
  return '<article class="sccard"><div class="thumb">'+img+'</div><div class="hd"><h3>'+esc(g[0].scroll)+'</h3><span class="cnt">'+n+(n===1?' field':' fields')+' · '+gb(g.reduce((a,f)=>a+f.bytes,0))+'</span></div><ul>'+g.map(cardLine).join('')+'</ul></article>'}
460
  function drawFields(){
461
  const t=$('flist');t.querySelectorAll('tbody').forEach(b=>b.remove());
@@ -463,7 +469,7 @@ function drawFields(){
463
  if(!F){t.insertAdjacentHTML('beforeend','<tbody><tr><td colspan="7" class="fempty">The list is filled in on the Space: <a href="https://huggingface.co/spaces/SharpMeow/lasagna-fields">huggingface.co/spaces/SharpMeow/lasagna-fields</a>.</td></tr></tbody>');
464
  $('fcards').innerHTML='<p class="fempty">The list is filled in on the Space: <a href="https://huggingface.co/spaces/SharpMeow/lasagna-fields">huggingface.co/spaces/SharpMeow/lasagna-fields</a>.</p>';return}
465
  const q=fq.trim().toLowerCase();
466
- const rows=FL.filter(f=>(!fm||f.model===fm)&&(!fw||(fw==='dl'?hasDl(f):hasUrl(f)))&&(!q||f.scroll.toLowerCase().indexOf(q)>=0||f.volume.indexOf(q)>=0));
467
  const groups=uniq(rows.map(f=>f.scroll)).map(s=>rows.filter(f=>f.scroll===s));
468
  t.insertAdjacentHTML('beforeend',groups.length?groups.map(g=>'<tbody>'+g.map((f,i)=>fieldRow(f,i===0,g.length)).join('')+'</tbody>').join(''):'<tbody><tr><td colspan="7" class="fempty">No field matches.</td></tr></tbody>');
469
  $('fcards').innerHTML=groups.length?groups.map(card).join(''):'<p class="fempty">No field matches.</p>';
@@ -473,9 +479,23 @@ document.querySelectorAll('[data-fv]').forEach(b=>b.onclick=()=>{fv=b.dataset.fv
473
  document.querySelectorAll('[data-fm]').forEach(b=>b.onclick=()=>{fm=b.dataset.fm;document.querySelectorAll('[data-fm]').forEach(x=>x.setAttribute('aria-pressed',x===b));drawFields()});
474
  $('fq').oninput=()=>{fq=$('fq').value;drawFields()};
475
  ['flist','fcards'].forEach(id=>$(id).addEventListener('click',e=>{const b=e.target.closest('button');if(!b)return;
476
- if(b.dataset.show){const i=D.findIndex(s=>s.id===b.dataset.show);if(i>=0){pick(i,false);$('scans').scrollIntoView({behavior:'smooth'})}}
477
  if(b.dataset.url){const t=b.dataset.url,done=()=>{b.textContent='Copied';$('toast').classList.add('on');setTimeout(()=>{b.textContent='Copy URL';$('toast').classList.remove('on')},1200)};
478
  if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(t).then(done,()=>fallback(t,done));else fallback(t,done)}}));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
479
  /* the volumes being made: shown without any link until each is public (fields.json, pending_not_public) */
480
  if(FP.length){$('pend').hidden=false;
481
  $('pend').innerHTML='<h3>Being made now, not public yet</h3><p class="sub" style="margin-bottom:14px">Lasagnetta 0.1.1 fields for more volumes of scrolls in the list. None is public yet, so there is nothing to download or stream.</p>'+
 
121
  .sccard{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
122
  .sccard .thumb{position:relative;aspect-ratio:2/1;background:#000;overflow:hidden}
123
  .sccard .thumb img{display:block;width:100%;height:100%;object-fit:cover}
 
 
 
124
  .sccard .thumb .tag{position:absolute;left:10px;bottom:8px;font-size:11.5px;color:#f1e9dc;background:#000a;padding:2px 8px;border-radius:6px}
125
  .sccard .hd{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 16px 4px}
126
  .sccard .hd h3{font-size:21px;margin:0}
 
151
  .fempty{color:var(--ink3);padding:14px 2px}
152
  #pend{margin-top:30px}
153
  #pend table td{color:var(--ink2)}
154
+ .lbox{position:fixed;inset:0;z-index:60;background:color-mix(in srgb,#000 62%,transparent);display:grid;place-items:center;padding:16px}
155
+ .lbox[hidden]{display:none}
156
+ html.lbopen{overflow:hidden}
157
+ .lbpanel{background:var(--card);color:var(--ink);border-radius:16px;box-shadow:var(--shadow);width:min(1100px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}
158
+ .lbhead{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
159
+ .lbhead b{font-size:15px;margin-right:auto}
160
+ #lbslice[hidden]{display:none}
161
+ @media (max-width:600px){.lbhead .seg{order:3;width:100%}.lbhead .seg button{flex:1}}
162
+ .lbx{border:1px solid var(--line);background:var(--bg2);color:var(--ink);border-radius:9px;padding:6px 12px;font:inherit;font-size:13.5px;cursor:pointer}
163
+ #lbimg{display:block;width:100%;min-height:0;flex:1 1 auto;object-fit:contain;background:#0e1117}
164
+ .lbfoot{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 16px;font-size:13px;color:var(--ink2)}
165
  .toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:9px;font-size:14px;opacity:0;transition:.2s;pointer-events:none;z-index:50}
166
  .toast.on{opacity:1;transform:translateX(-50%)}
167
  @media (max-width:900px){
 
229
  <button type="button" data-fm="" aria-pressed="true">All</button><button type="button" data-fm="villa predict3d" aria-pressed="false">villa predict3d</button><button type="button" data-fm="Lasagnetta 0.1.1" aria-pressed="false">Lasagnetta 0.1.1</button>
230
  </div>
231
  <div class="seg" role="group" aria-label="Where">
232
+ <button type="button" data-fw="" aria-pressed="true">Any source</button><button type="button" data-fw="open-data" aria-pressed="false">Open data</button><button type="button" data-fw="dataset" aria-pressed="false">Made here</button>
233
  </div>
234
  <span class="fcount" id="fcount"></span>
235
  <div class="seg vseg" role="group" aria-label="Layout">
 
270
 
271
  <section id="connect"><div class="wrap">
272
  <h2>Connect your tool</h2>
273
+ <p class="sub">Every field made here is also in the public bucket <a href="https://huggingface.co/buckets/SharpMeow/lasagna-fields">SharpMeow/lasagna-fields</a>, laid out like the Vesuvius Challenge open data (<code>SCAN/representations/predictions/lasagna/RUN/</code>). Any tool that reads zarr over HTTPS can open it, with no download and no account. The commands here follow the scan you picked above. villa's fields in the open data stream the same way from their run folder: <b>Copy URL</b> in the list gives any field's folder.</p>
274
  <div class="panel">
275
  <div style="display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center"><h3 id="cname" style="margin:0"></h3><span style="color:var(--ink3);font-size:13px">Anonymous HTTPS, CORS open, missing chunks read as empty</span></div>
276
  <div class="codebox"><pre id="curl"></pre><button class="copy" data-copy="curl" type="button">Copy</button></div>
 
371
  <span>Also: <a href="https://huggingface.co/datasets/SharpMeow/vesuvius-center-lines">center lines</a> &middot; <a href="https://huggingface.co/spaces/SharpMeow/umbilici?mode=lasagna&scan=PHerc0175A&z=6400">PHerc0175A in 3D</a></span>
372
  </div></footer>
373
  <div class="toast" id="toast">Copied</div>
374
+ <div class="lbox" id="lbox" hidden role="dialog" aria-modal="true" aria-labelledby="lbtitle"><div class="lbpanel">
375
+ <div class="lbhead"><b id="lbtitle"></b><div class="seg"><button type="button" data-lv="xy" aria-pressed="true">Through the middle</button><button type="button" data-lv="xz" aria-pressed="false">Along the scroll</button></div><button type="button" class="lbx" id="lbclose" aria-label="Close">Close</button></div>
376
+ <img id="lbimg" alt="">
377
+ <div class="lbfoot"><span>Model output: cos (one band per papyrus layer) beside the surface normals as color.</span><button type="button" class="btn" id="lbslice">Open in the slice viewer</button></div>
378
+ </div></div>
379
 
380
  <script id="data" type="application/json">[{"id":"PHerc0175A","repo":"SharpMeow/pherc0175a-lasagna","volume":"20250521115057-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[12748,9363,9363],"bytes":48177793405,"fix":256972800,"seam":1.26,"pz":6372,"center":true,"parts":[["000",[[1024,2048],[0,4608],[0,9363]],569692160],["001",[[1024,2048],[4608,9363],[0,4608]],496906240],["002",[[1024,2048],[4608,9363],[4608,9363]],1085020160],["003",[[2048,3072],[0,4608],[0,9363]],1038991360],["004",[[2048,3072],[4608,7168],[0,4608]],1268101120],["005",[[2048,3072],[4608,7168],[4608,9363]],1239439360],["006",[[2048,3072],[7168,9363],[0,4608]],309596160],["007",[[2048,3072],[7168,9363],[4608,9363]],333393920],["008",[[3072,4096],[0,4608],[0,9363]],1165516800],["009",[[3072,4096],[4608,7168],[0,2048]],198952960],["010",[[3072,4096],[4608,7168],[2048,4608]],1121945600],["011",[[3072,4096],[4608,7168],[4608,9363]],1206630400],["012",[[3072,4096],[7168,9363],[0,4608]],477286400],["013",[[3072,4096],[7168,9363],[4608,9363]],298577920],["014",[[4096,5120],[0,4608],[0,9363]],1303111680],["015",[[4096,5120],[4608,7168],[0,2048]],213565440],["016",[[4096,5120],[4608,7168],[2048,4608]],1113907200],["017",[[4096,5120],[4608,7168],[4608,9363]],1252628480],["018",[[4096,5120],[7168,9363],[0,4608]],409507840],["019",[[4096,5120],[7168,9363],[4608,9363]],269250560],["020",[[5120,6144],[0,4608],[0,4608]],1032652800],["021",[[5120,6144],[0,4608],[4608,9363]],387000320],["022",[[5120,6144],[4608,7168],[0,2048]],237475840],["023",[[5120,6144],[4608,7168],[2048,4608]],1103083520],["024",[[5120,6144],[4608,7168],[4608,7168]],1101475840],["025",[[5120,6144],[4608,7168],[7168,9363]],227850240],["026",[[5120,6144],[7168,9363],[0,4608]],326850560],["027",[[5120,6144],[7168,9363],[4608,9363]],253163520],["028",[[6144,7168],[0,4608],[0,4608]],1004503040],["029",[[6144,7168],[0,4608],[4608,9363]],526776320],["030",[[6144,7168],[4608,7168],[0,2048]],200007680],["031",[[6144,7168],[4608,7168],[2048,4608]],1079756800],["032",[[6144,7168],[4608,7168],[4608,7168]],1095782400],["033",[[6144,7168],[4608,7168],[7168,9363]],264478720],["034",[[6144,7168],[7168,9363],[0,4608]],280637440],["035",[[6144,7168],[7168,9363],[4608,9363]],251627520],["036",[[7168,8192],[0,4608],[0,4608]],1008650240],["037",[[7168,8192],[0,4608],[4608,9363]],652462080],["038",[[7168,8192],[4608,7168],[0,2048]],176281600],["039",[[7168,8192],[4608,7168],[2048,4608]],1071370240],["040",[[7168,8192],[4608,7168],[4608,7168]],1079173120],["041",[[7168,8192],[4608,7168],[7168,9363]],290242560],["042",[[7168,8192],[7168,9363],[0,4608]],219996160],["043",[[7168,8192],[7168,9363],[4608,9363]],244940800],["044",[[8192,9216],[0,4608],[0,4608]],1032304640],["045",[[8192,9216],[0,4608],[4608,9363]],867645440],["046",[[8192,9216],[4608,7168],[0,4608]],1188648960],["047",[[8192,9216],[4608,7168],[4608,7168]],1085102080],["048",[[8192,9216],[4608,7168],[7168,9363]],379729920],["049",[[8192,9216],[7168,9363],[0,4608]],170926080],["050",[[8192,9216],[7168,9363],[4608,9363]],239185920],["051",[[9216,10240],[0,4608],[0,4608]],1050480640],["052",[[9216,10240],[0,4608],[4608,9363]],1185935360],["053",[[9216,10240],[4608,7168],[4608,7168]],1115289600],["054",[[9216,10240],[4608,7168],[7168,9363]],585236480],["055",[[9216,10240],[4608,9363],[0,4608]],1247825920],["056",[[9216,10240],[7168,9363],[4608,9363]],255498240],["057",[[10240,11264],[0,4608],[0,4608]],1034823680],["058",[[10240,11264],[0,4608],[4608,9363]],915281920],["059",[[10240,11264],[4608,9363],[0,4608]],1213378560],["060",[[10240,11264],[4608,9363],[4608,9363]],1442519040],["00",[[0,1024],[0,9363],[0,9363]],885186560],["11",[[11264,12288],[0,9363],[0,9363]],1106769920],["12",[[12288,12748],[0,9363],[0,9363]],1427712000]],"run":"PHerc0175A/representations/predictions/lasagna/20250521115057-lasagna-de45f011"},{"id":"PHerc0175B","repo":"SharpMeow/pherc0175b-lasagna","volume":"20250521125822-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[15897,9613,9613],"bytes":82186089634,"fix":10240,"seam":1.345,"pz":7948,"center":true,"parts":[["000",[[0,1024],[0,9613],[0,9613]],1514383360],["001",[[1024,2048],[0,5120],[0,9613]],1407938560],["002",[[1024,2048],[5120,9613],[0,9613]],3160821760],["003",[[2048,3072],[0,5120],[0,5120]],2000721920],["004",[[2048,3072],[0,5120],[5120,9613]],2044180480],["005",[[2048,3072],[5120,9613],[0,5120]],1640591360],["006",[[2048,3072],[5120,9613],[5120,9613]],1497559040],["007",[[3072,4096],[0,5120],[0,5120]],2237388800],["008",[[3072,4096],[0,5120],[5120,9613]],2131998720],["009",[[3072,4096],[5120,9613],[0,9613]],2935080960],["010",[[4096,5120],[0,5120],[0,5120]],2153451520],["011",[[4096,5120],[0,5120],[5120,9613]],1844142080],["012",[[4096,5120],[5120,9613],[0,9613]],2714398720],["013",[[5120,6144],[0,5120],[0,5120]],2108313600],["014",[[5120,6144],[0,5120],[5120,9613]],1906216960],["015",[[5120,6144],[5120,9613],[0,9613]],2691891200],["016",[[6144,7168],[0,5120],[0,5120]],2061670400],["017",[[6144,7168],[0,5120],[5120,9613]],1911951360],["018",[[6144,7168],[5120,9613],[0,9613]],2576302080],["019",[[7168,8192],[0,5120],[0,5120]],1851371520],["020",[[7168,8192],[0,5120],[5120,9613]],1717555200],["021",[[7168,8192],[5120,9613],[0,9613]],2700554240],["022",[[8192,9216],[0,5120],[0,5120]],1822607360],["023",[[8192,9216],[0,5120],[5120,9613]],1616537600],["024",[[8192,9216],[5120,9613],[0,5120]],1389537280],["025",[[8192,9216],[5120,9613],[5120,9613]],1553776640],["026",[[9216,10240],[0,5120],[0,5120]],1848739840],["027",[[9216,10240],[0,5120],[5120,9613]],1431142400],["028",[[9216,10240],[5120,9613],[0,5120]],1497989120],["029",[[9216,10240],[5120,9613],[5120,9613]],1644605440],["030",[[10240,11264],[0,5120],[0,5120]],1843128320],["031",[[10240,11264],[0,5120],[5120,9613]],1212149760],["032",[[10240,11264],[5120,9613],[0,5120]],1812940800],["033",[[10240,11264],[5120,9613],[5120,9613]],1621381120],["034",[[11264,12288],[0,5120],[0,9613]],2792785920],["035",[[11264,12288],[5120,9613],[0,5120]],1752053760],["036",[[11264,12288],[5120,9613],[5120,9613]],1498009600],["037",[[12288,13312],[0,5120],[0,9613]],2421299200],["038",[[12288,13312],[5120,9613],[0,9613]],2411141120],["039",[[13312,14336],[0,9613],[0,9613]],2876979200],["040",[[14336,15360],[0,9613],[0,9613]],816035840],["041",[[15360,15897],[0,9613],[0,9613]],1510348800]],"run":"PHerc0175B/representations/predictions/lasagna/20250521125822-lasagna-de45f011"},{"id":"PHerc0306B","repo":"SharpMeow/pherc0306b-lasagna","volume":"20250521133212-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[15898,8849,8849],"bytes":54562104779,"fix":10240,"seam":1.123,"pz":7948,"center":true,"parts":[["000",[[0,1024],[0,8849],[0,8849]],868341760],["001",[[1024,2048],[0,8849],[0,8849]],1625139200],["002",[[2048,3072],[0,8849],[0,8849]],3220418560],["003",[[3072,4096],[0,4096],[0,8849]],1915596800],["004",[[3072,4096],[4096,8849],[0,8849]],2842306560],["005",[[4096,5120],[0,4096],[0,8849]],2505390080],["006",[[4096,5120],[4096,8849],[0,8849]],2990786560],["007",[[5120,6144],[0,4096],[0,8849]],2537093120],["008",[[5120,6144],[4096,8849],[0,8849]],2867517440],["009",[[6144,7168],[0,4096],[0,8849]],2207866880],["010",[[6144,7168],[4096,8849],[0,8849]],2478387200],["011",[[7168,8192],[0,4096],[0,8849]],1837332480],["012",[[7168,8192],[4096,8849],[0,8849]],2307379200],["013",[[8192,9216],[0,4096],[0,8849]],1822986240],["014",[[8192,9216],[4096,8849],[0,8849]],2176440320],["015",[[9216,10240],[0,4096],[0,8849]],1844285440],["016",[[9216,10240],[4096,8849],[0,8849]],2145331200],["017",[[10240,11264],[0,4096],[0,8849]],1904312320],["018",[[10240,11264],[4096,8849],[0,8849]],2072791040],["019",[[11264,12288],[0,4096],[0,8849]],1891225600],["020",[[11264,12288],[4096,8849],[0,8849]],1812705280],["021",[[12288,13312],[0,4096],[0,8849]],2163097600],["022",[[12288,13312],[4096,8849],[0,8849]],1357107200],["023",[[13312,14336],[0,8849],[0,8849]],2441410560],["024",[[14336,15360],[0,8849],[0,8849]],1459896320],["025",[[15360,15898],[0,8849],[0,8849]],1263534080]],"run":"PHerc0306B/representations/predictions/lasagna/20250521133212-lasagna-de45f011"},{"id":"PHerc0483A","repo":"SharpMeow/pherc0483a-lasagna","volume":"20250521140913-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[15898,8849,8849],"bytes":47412438501,"fix":10240,"seam":1.162,"pz":7948,"center":true,"parts":[["000",[[0,1024],[0,8849],[0,8849]],953948160],["001",[[1024,2048],[0,8849],[0,8849]],2872115200],["002",[[2048,3072],[0,4096],[0,8849]],846182400],["003",[[2048,3072],[4096,8849],[0,8849]],2758737920],["004",[[3072,4096],[0,4096],[0,8849]],1158533120],["005",[[3072,4096],[4096,8849],[0,8849]],2182359040],["006",[[4096,5120],[0,4096],[0,8849]],1438115840],["007",[[4096,5120],[4096,8849],[0,8849]],2021847040],["008",[[5120,6144],[0,4096],[0,8849]],1460674560],["009",[[5120,6144],[4096,8849],[0,8849]],1818675200],["010",[[6144,7168],[0,8849],[0,8849]],2900961280],["011",[[7168,8192],[0,8849],[0,8849]],2810716160],["012",[[8192,9216],[0,8849],[0,8849]],3019837440],["013",[[9216,10240],[0,4096],[0,8849]],1343682560],["014",[[9216,10240],[4096,8849],[0,8849]],2060544000],["015",[[10240,11264],[0,4096],[0,8849]],1397544960],["016",[[10240,11264],[4096,8849],[0,8849]],2733813760],["017",[[11264,12288],[0,4096],[0,8849]],1278771200],["018",[[11264,12288],[4096,8849],[0,4096]],1464422400],["019",[[11264,12288],[4096,8849],[4096,8849]],1550018560],["020",[[12288,13312],[0,4096],[0,8849]],1111787520],["021",[[12288,13312],[4096,8849],[0,4096]],1561292800],["022",[[12288,13312],[4096,8849],[4096,8849]],1478133760],["023",[[13312,14336],[0,8849],[0,8849]],2452049920],["024",[[14336,15360],[0,8849],[0,8849]],1035386880],["025",[[15360,15898],[0,8849],[0,8849]],1698887680]],"run":"PHerc0483A/representations/predictions/lasagna/20250521140913-lasagna-de45f011"},{"id":"PHerc0483B","repo":"SharpMeow/pherc0483b-lasagna","volume":"20251124083638-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[11880,8343,8343],"bytes":41488155053,"fix":10240,"seam":1.106,"pz":5940,"center":true,"parts":[["000",[[0,1024],[0,8343],[0,8343]],176138240],["001",[[1024,2048],[0,8343],[0,8343]],1620623360],["002",[[2048,3072],[0,4096],[0,8343]],1205012480],["003",[[2048,3072],[4096,8343],[0,8343]],2147061760],["004",[[3072,4096],[0,4096],[0,8343]],1296189440],["005",[[3072,4096],[4096,8343],[0,8343]],2460006400],["006",[[4096,5120],[0,4096],[0,8343]],1599467520],["007",[[4096,5120],[4096,8343],[0,8343]],2541731840],["008",[[5120,6144],[0,4096],[0,8343]],1956659200],["009",[[5120,6144],[4096,8343],[0,8343]],2760755200],["010",[[6144,7168],[0,4096],[0,8343]],2275471360],["011",[[6144,7168],[4096,8343],[0,8343]],2689259520],["012",[[7168,8192],[0,4096],[0,8343]],2534461440],["013",[[7168,8192],[4096,8343],[0,8343]],2701701120],["014",[[8192,9216],[0,4096],[0,8343]],2829107200],["015",[[8192,9216],[4096,8343],[0,8343]],2989660160],["016",[[9216,10240],[0,4096],[0,8343]],2140211200],["017",[[9216,10240],[4096,8343],[0,8343]],2483568640],["018",[[10240,11264],[0,8343],[0,8343]],2567260160],["019",[[11264,11880],[0,8343],[0,8343]],510801920]],"run":"PHerc0483B/representations/predictions/lasagna/20251124083638-lasagna-de45f011"},{"id":"PHerc0490A","repo":"SharpMeow/pherc0490a-lasagna","volume":"20250521151210-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[11698,9101,9101],"bytes":49710517889,"fix":10240,"seam":1.184,"pz":5848,"center":true,"parts":[["000",[[0,1024],[0,9101],[0,9101]],1930536960],["001",[[1024,2048],[0,9101],[0,9101]],1422868480],["002",[[2048,3072],[0,4096],[0,9101]],2111375360],["003",[[2048,3072],[4096,9101],[0,9101]],2413690880],["004",[[3072,4096],[0,4096],[0,9101]],2379786240],["005",[[3072,4096],[4096,9101],[0,4096]],1359073280],["006",[[3072,4096],[4096,9101],[4096,9101]],1717237760],["007",[[4096,5120],[0,4096],[0,9101]],2506946560],["008",[[4096,5120],[4096,9101],[0,9101]],2644244480],["009",[[5120,6144],[0,4096],[0,9101]],2550620160],["010",[[5120,6144],[4096,9101],[0,9101]],2524825600],["011",[[6144,7168],[0,4096],[0,9101]],2422814720],["012",[[6144,7168],[4096,9101],[0,4096]],1422325760],["013",[[6144,7168],[4096,9101],[4096,9101]],1651210240],["014",[[7168,8192],[0,4096],[0,9101]],2114242560],["015",[[7168,8192],[4096,9101],[0,4096]],1600624640],["016",[[7168,8192],[4096,9101],[4096,9101]],2081792000],["017",[[8192,9216],[0,4096],[0,9101]],1961154560],["018",[[8192,9216],[4096,9101],[0,4096]],1693204480],["019",[[8192,9216],[4096,9101],[4096,9101]],2359152640],["020",[[9216,10240],[0,4096],[0,9101]],1631877120],["021",[[9216,10240],[4096,9101],[0,4096]],1850408960],["022",[[9216,10240],[4096,9101],[4096,9101]],2133708800],["023",[[10240,11264],[0,9101],[0,9101]],1912156160],["024",[[11264,11698],[0,9101],[0,9101]],1311467520]],"run":"PHerc0490A/representations/predictions/lasagna/20250521151210-lasagna-de45f011"},{"id":"PHerc0490B","repo":"SharpMeow/pherc0490b-lasagna","volume":"20250521151215-8.640um-1.2m-116keV-masked.zarr","um":8.64,"shape":[10648,8343,8343],"bytes":32900440486,"fix":10240,"seam":1.123,"pz":5324,"center":true,"parts":[["000",[[0,1024],[0,8343],[0,8343]],2058895360],["001",[[1024,2048],[0,8343],[0,8343]],822784000],["002",[[2048,3072],[0,8343],[0,8343]],2714982400],["003",[[3072,4096],[0,4096],[0,8343]],1944125440],["004",[[3072,4096],[4096,8343],[0,8343]],2514268160],["005",[[4096,5120],[0,4096],[0,8343]],2359951360],["006",[[4096,5120],[4096,8343],[0,8343]],2827724800],["007",[[5120,6144],[0,4096],[0,8343]],2485729280],["008",[[5120,6144],[4096,8343],[0,8343]],2586828800],["009",[[6144,7168],[0,4096],[0,8343]],2359173120],["010",[[6144,7168],[4096,8343],[0,8343]],2469836800],["011",[[7168,8192],[0,4096],[0,8343]],1728665600],["012",[[7168,8192],[4096,8343],[0,8343]],2325022720],["013",[[8192,9216],[0,8343],[0,8343]],2124062720],["014",[[9216,10240],[0,8343],[0,8343]],537180160],["015",[[10240,10648],[0,8343],[0,8343]],1038735360]],"run":"PHerc0490B/representations/predictions/lasagna/20250521151215-lasagna-de45f011"},{"id":"PHerc0841","repo":"SharpMeow/pherc0841-lasagna","volume":"20250821151531-9.366um-1.2m-113keV-masked.zarr","um":9.366,"shape":[19400,7703,7703],"bytes":45944867652,"fix":10240,"seam":1.622,"pz":9700,"center":false,"parts":[["000",[[0,1024],[0,7703],[0,7703]],1157713920],["001",[[1024,2048],[0,7703],[0,7703]],1659146240],["002",[[2048,3072],[0,4096],[0,7703]],2530775040],["003",[[2048,3072],[4096,7703],[0,7703]],1158072320],["004",[[3072,4096],[0,4096],[0,7703]],2732318720],["005",[[3072,4096],[4096,7703],[0,7703]],1305569280],["006",[[4096,5120],[0,4096],[0,7703]],2477383680],["007",[[4096,5120],[4096,7703],[0,7703]],1224796160],["008",[[5120,6144],[0,7703],[0,7703]],3200819200],["009",[[6144,7168],[0,7703],[0,7703]],2484510720],["010",[[7168,8192],[0,7703],[0,7703]],2356346880],["011",[[8192,9216],[0,7703],[0,7703]],2220840960],["012",[[9216,10240],[0,7703],[0,7703]],2199930880],["013",[[10240,11264],[0,7703],[0,7703]],2256486400],["014",[[11264,12288],[0,7703],[0,7703]],2268364800],["015",[[12288,13312],[0,7703],[0,7703]],2323046400],["016",[[13312,14336],[0,7703],[0,7703]],2426265600],["017",[[14336,15360],[0,7703],[0,7703]],2492456960],["018",[[15360,16384],[0,7703],[0,7703]],2691143680],["019",[[16384,17408],[0,7703],[0,7703]],2651279360],["020",[[17408,18432],[0,7703],[0,7703]],1724067840],["021",[[18432,19400],[0,7703],[0,7703]],400711680]],"run":"PHerc0841/representations/predictions/lasagna/20250821151531-lasagna-de45f011"},{"id":"PHerc0846A","repo":"SharpMeow/pherc0846a-lasagna","volume":"20250728152254-9.362um-1.2m-113keV-masked.zarr","um":9.362,"shape":[14019,7726,7726],"bytes":32441070000,"fix":10240,"seam":1.108,"pz":7008,"center":true,"parts":[["000",[[0,1024],[0,4096],[0,7726]],2497198080],["001",[[0,1024],[4096,7726],[0,7726]],2297927680],["002",[[1024,2048],[0,7726],[0,7726]],658155520],["003",[[2048,3072],[0,7726],[0,7726]],2689873920],["004",[[3072,4096],[0,4096],[0,7726]],2094336000],["005",[[3072,4096],[4096,7726],[0,7726]],1497937920],["006",[[4096,5120],[0,4096],[0,7726]],1887641600],["007",[[4096,5120],[4096,7726],[0,7726]],1414348800],["008",[[5120,6144],[0,7726],[0,7726]],2803722240],["009",[[6144,7168],[0,7726],[0,7726]],2204078080],["010",[[7168,8192],[0,7726],[0,7726]],1953495040],["011",[[8192,9216],[0,7726],[0,7726]],1988648960],["012",[[9216,10240],[0,7726],[0,7726]],2122731520],["013",[[10240,11264],[0,7726],[0,7726]],2195148800],["014",[[11264,12288],[0,7726],[0,7726]],1854883840],["015",[[12288,13312],[0,7726],[0,7726]],1597736960],["016",[[13312,14019],[0,7726],[0,7726]],680857600]],"run":"PHerc0846A/representations/predictions/lasagna/20250728152254-lasagna-de45f011"},{"id":"PHerc0846B","repo":"SharpMeow/pherc0846b-lasagna","volume":"20250804142305-9.362um-1.2m-113keV-masked.zarr","um":9.362,"shape":[13926,7859,7859],"bytes":35033335856,"fix":10240,"seam":1.36,"pz":6964,"center":true,"parts":[["000",[[0,1024],[0,7859],[0,7859]],188262400],["001",[[1024,2048],[0,7859],[0,7859]],1207982080],["002",[[2048,3072],[0,7859],[0,7859]],1744916480],["003",[[3072,4096],[0,7859],[0,7859]],1853480960],["004",[[4096,5120],[0,7859],[0,7859]],1885081600],["005",[[5120,6144],[0,7859],[0,7859]],1954447360],["006",[[6144,7168],[0,7859],[0,7859]],2012354560],["007",[[7168,8192],[0,7859],[0,7859]],2397071360],["008",[[8192,9216],[0,4096],[0,7859]],1862440960],["009",[[8192,9216],[4096,7859],[0,7859]],1379829760],["010",[[9216,10240],[0,4096],[0,7859]],2212546560],["011",[[9216,10240],[4096,7859],[0,7859]],1635399680],["012",[[10240,11264],[0,4096],[0,7859]],2502000640],["013",[[10240,11264],[4096,7859],[0,7859]],2152806400],["014",[[11264,12288],[0,4096],[0,7859]],2383554560],["015",[[11264,12288],[4096,7859],[0,7859]],2498549760],["016",[[12288,13312],[0,4096],[0,7859]],2026168320],["017",[[12288,13312],[4096,7859],[0,7859]],2171258880],["018",[[13312,13926],[0,7859],[0,7859]],962652160]],"run":"PHerc0846B/representations/predictions/lasagna/20250804142305-lasagna-de45f011"}]</script>
381
  <script id="fieldlist" type="application/json">null</script>
 
440
  const uniq=a=>a.filter((v,i)=>a.indexOf(v)===i);
441
  const um=v=>(+v).toLocaleString('en-US',{maximumFractionDigits:3})+' µm';
442
  const lvl=f=>f.read_level?'read at level '+f.read_level+', '+(f.voxel_um*Math.pow(2,f.read_level)).toFixed(1)+' µm':'read at full resolution';
443
+ let fm='',fq='',fw='',fv='cards',pv=null;
444
+ function links(f){const od=f.source==='open-data';
445
+ return '<a href="'+attr(f.browse||f.url)+'" target="_blank" rel="noopener" title="'+(od?'its run folder in the Vesuvius Challenge open data':'its Hugging Face dataset, to download')+'">Dataset</a>'+
446
+ '<a href="'+attr(f.manifest)+'" target="_blank" rel="noopener" title="the lasagna.json the lasagna fit reads">Manifest</a>'+
447
+ '<button type="button" data-pv="'+FL.indexOf(f)+'" title="cos and normals, through the middle and along the scroll">Preview</button>'+
448
+ '<button type="button" data-url="'+attr(f.stream)+'" title="the run folder, which zarr reads by URL">Copy URL</button>'}
449
  function fieldRow(f,first,n){
450
+ const where=f.source==='open-data'?'Open data<span class="fnote">villa\'s run</span>':'SharpMeow dataset<span class="fnote">also in the public bucket</span>';
 
 
 
 
 
451
  return '<tr>'+(first?'<td class="sc" rowspan="'+n+'">'+esc(f.scroll)+'</td>':'')+
452
  '<td data-k="Volume"><span class="mono">'+esc(f.volume)+'</span></td>'+
453
  '<td data-k="Voxel size" class="num">'+um(f.voxel_um)+'<span class="fnote">'+lvl(f)+'</span></td>'+
454
  '<td data-k="Model" class="mdl"><span class="mp '+(f.model.indexOf('Lasagnetta')===0?'lgt':'villa')+'">'+esc(f.model)+'</span>'+(f.note?'<span class="fnote">'+esc(f.note)+'</span>':'')+'</td>'+
455
  '<td data-k="Where">'+where+'</td><td data-k="Size" class="num">'+gb(f.bytes)+'</td>'+
456
+ '<td class="get"><div class="flinks">'+links(f)+'</div></td></tr>'}
457
+ function thumbOf(g){const f=g[0];return {src:'assets/thumbs/'+f.scroll+'-'+f.volume+'.webp',alt:f.preview_xy,vol:f.volume}}
458
+ function cardLine(f){
 
 
 
 
 
 
459
  const src=f.source==='open-data'?'open data':'SharpMeow';
460
  return '<li><div class="res">'+um(f.voxel_um)+'<span class="mono">'+esc(f.volume)+'</span></div><div class="sz">'+gb(f.bytes)+'</div>'+
461
+ '<div class="row2"><span class="mp '+(f.model.indexOf('Lasagnetta')===0?'lgt':'villa')+'">'+esc(f.model)+'</span><span class="fnote" style="margin:0">'+src+(f.read_level?', level '+f.read_level:'')+'</span><div class="flinks">'+links(f)+'</div></div>'+
462
  (f.note?'<div class="why">'+esc(f.note)+'</div>':'')+'</li>'}
463
  function card(g){const t=thumbOf(g),n=g.length;
464
+ const img='<img loading="lazy" src="'+t.src+'" data-alt="'+attr(t.alt)+'" alt="'+attr(g[0].scroll)+' field preview, cos and normals" onerror="if(this.dataset.alt){this.src=this.dataset.alt;this.dataset.alt=\'\'}"><span class="tag">cos | normals · '+esc(t.vol)+'</span>';
 
465
  return '<article class="sccard"><div class="thumb">'+img+'</div><div class="hd"><h3>'+esc(g[0].scroll)+'</h3><span class="cnt">'+n+(n===1?' field':' fields')+' · '+gb(g.reduce((a,f)=>a+f.bytes,0))+'</span></div><ul>'+g.map(cardLine).join('')+'</ul></article>'}
466
  function drawFields(){
467
  const t=$('flist');t.querySelectorAll('tbody').forEach(b=>b.remove());
 
469
  if(!F){t.insertAdjacentHTML('beforeend','<tbody><tr><td colspan="7" class="fempty">The list is filled in on the Space: <a href="https://huggingface.co/spaces/SharpMeow/lasagna-fields">huggingface.co/spaces/SharpMeow/lasagna-fields</a>.</td></tr></tbody>');
470
  $('fcards').innerHTML='<p class="fempty">The list is filled in on the Space: <a href="https://huggingface.co/spaces/SharpMeow/lasagna-fields">huggingface.co/spaces/SharpMeow/lasagna-fields</a>.</p>';return}
471
  const q=fq.trim().toLowerCase();
472
+ const rows=FL.filter(f=>(!fm||f.model===fm)&&(!fw||f.source===fw)&&(!q||f.scroll.toLowerCase().indexOf(q)>=0||f.volume.indexOf(q)>=0));
473
  const groups=uniq(rows.map(f=>f.scroll)).map(s=>rows.filter(f=>f.scroll===s));
474
  t.insertAdjacentHTML('beforeend',groups.length?groups.map(g=>'<tbody>'+g.map((f,i)=>fieldRow(f,i===0,g.length)).join('')+'</tbody>').join(''):'<tbody><tr><td colspan="7" class="fempty">No field matches.</td></tr></tbody>');
475
  $('fcards').innerHTML=groups.length?groups.map(card).join(''):'<p class="fempty">No field matches.</p>';
 
479
  document.querySelectorAll('[data-fm]').forEach(b=>b.onclick=()=>{fm=b.dataset.fm;document.querySelectorAll('[data-fm]').forEach(x=>x.setAttribute('aria-pressed',x===b));drawFields()});
480
  $('fq').oninput=()=>{fq=$('fq').value;drawFields()};
481
  ['flist','fcards'].forEach(id=>$(id).addEventListener('click',e=>{const b=e.target.closest('button');if(!b)return;
482
+ if(b.dataset.pv){openPv(FL[+b.dataset.pv],'xy');return}
483
  if(b.dataset.url){const t=b.dataset.url,done=()=>{b.textContent='Copied';$('toast').classList.add('on');setTimeout(()=>{b.textContent='Copy URL';$('toast').classList.remove('on')},1200)};
484
  if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(t).then(done,()=>fallback(t,done));else fallback(t,done)}}));
485
+ /* preview: the field's two pictures in a box over the page (no scrolling of its own) */
486
+ function openPv(f,view){pv=f;const L=$('lbox');
487
+ $('lbimg').src=view==='xz'?f.preview_xz:f.preview_xy;
488
+ $('lbimg').alt=f.scroll+' '+f.volume+' '+view+' preview, cos and normals';
489
+ $('lbtitle').textContent=f.scroll+' · '+um(f.voxel_um)+' · '+f.volume;
490
+ document.querySelectorAll('[data-lv]').forEach(x=>x.setAttribute('aria-pressed',x.dataset.lv===view));
491
+ $('lbslice').hidden=!f.gallery;
492
+ if(L.hidden){L.hidden=false;document.documentElement.classList.add('lbopen');$('lbclose').focus()}}
493
+ function closePv(){$('lbox').hidden=true;document.documentElement.classList.remove('lbopen');$('lbimg').removeAttribute('src');pv=null}
494
+ document.querySelectorAll('[data-lv]').forEach(b=>b.onclick=()=>pv&&openPv(pv,b.dataset.lv));
495
+ $('lbclose').onclick=closePv;
496
+ $('lbox').addEventListener('click',e=>{if(e.target===$('lbox'))closePv()});
497
+ document.addEventListener('keydown',e=>{if(e.key==='Escape'&&!$('lbox').hidden)closePv()});
498
+ $('lbslice').onclick=()=>{const f=pv,i=D.findIndex(s=>s.id===f.scroll);closePv();if(i>=0){pick(i,false);$('scans').scrollIntoView({behavior:'smooth'})}};
499
  /* the volumes being made: shown without any link until each is public (fields.json, pending_not_public) */
500
  if(FP.length){$('pend').hidden=false;
501
  $('pend').innerHTML='<h3>Being made now, not public yet</h3><p class="sub" style="margin-bottom:14px">Lasagnetta 0.1.1 fields for more volumes of scrolls in the list. None is public yet, so there is nothing to download or stream.</p>'+
make_previews.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Preview pictures for the villa fields in the open data, which ship none: a slice through the middle of the scroll
2
+ (xy) and one along it (xz), cos beside the normals as color, read over HTTPS from each field's run folder.
3
+
4
+ python3 spaces/lasagna-fields/make_previews.py OUT_DIR
5
+
6
+ writes OUT_DIR/SCROLL-VOLUME-xy.webp and -xz.webp (at most 1,600 px) for every open-data row of fields.json; upload OUT_DIR as the Space's
7
+ assets/previews/ (pictures stay out of git). Needs numpy, pillow, zarr<3, fsspec and aiohttp. Model output: a
8
+ picture of villa's lasagna field, never a reading.
9
+ """
10
+ import json
11
+ import os
12
+ import sys
13
+ import urllib.request
14
+ from pathlib import Path
15
+
16
+ import numpy as np
17
+ import zarr
18
+ from PIL import Image, ImageDraw, ImageFont
19
+
20
+ HERE = Path(__file__).resolve().parent
21
+
22
+
23
+ def normals_rgb(nx_u8, ny_u8, cos_u8):
24
+ """Encoded normals (v * 127 + 128) as color: |x|, |y|, z to red, green, blue; black where cos holds no data
25
+ (villa's open-data fields store 218 in both normals there, not their arrays' fill value)."""
26
+ nx = (nx_u8.astype(np.float32) - 128.0) / 127.0
27
+ ny = (ny_u8.astype(np.float32) - 128.0) / 127.0
28
+ nz = np.sqrt(np.maximum(0.0, 1.0 - nx * nx - ny * ny))
29
+ rgb = np.stack([np.abs(nx), np.abs(ny), nz], -1) * 255.0
30
+ rgb[cos_u8 == 0] = 0
31
+ return np.rint(rgb).clip(0, 255).astype(np.uint8)
32
+
33
+
34
+ def polish(cos, nrm, title, out, min_width=1000, max_width=1600, max_side=1600):
35
+ """cos and normals side by side, cropped to the data, on a dark ground, with a title and a label over each."""
36
+ occ = (cos > 0) | (nrm.max(-1) > 0)
37
+ ys, xs = np.nonzero(occ)
38
+ pad = max(4, int(0.02 * max(occ.shape)))
39
+ y0, y1 = max(0, ys.min() - pad), min(occ.shape[0], ys.max() + 1 + pad)
40
+ x0, x1 = max(0, xs.min() - pad), min(occ.shape[1], xs.max() + 1 + pad)
41
+ panels = [Image.fromarray(np.ascontiguousarray(np.repeat(cos[y0:y1, x0:x1, None], 3, -1))),
42
+ Image.fromarray(np.ascontiguousarray(nrm[y0:y1, x0:x1]))]
43
+ gap, margin, head, lab = 24, 24, 56, 30
44
+ pw = panels[0].width
45
+ scale = min(max(1.0, min_width / (2 * pw + gap + 2 * margin)), max_width / (2 * pw + gap + 2 * margin))
46
+ if scale != 1.0:
47
+ size = (max(1, round(pw * scale)), max(1, round(panels[0].height * scale)))
48
+ panels = [p.resize(size, Image.NEAREST if scale > 1 else Image.LANCZOS) for p in panels]
49
+ pw, ph = panels[0].size
50
+ font = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"
51
+ big = ImageFont.truetype(font, 22) if os.path.exists(font) else ImageFont.load_default()
52
+ small = ImageFont.truetype(font, 16) if os.path.exists(font) else ImageFont.load_default()
53
+ tw = ImageDraw.Draw(Image.new("RGB", (1, 1))).textlength(title, font=big)
54
+ canvas = Image.new("RGB", (max(2 * pw + gap + 2 * margin, int(tw) + 1 + 2 * margin), head + lab + ph + margin),
55
+ (14, 17, 23))
56
+ draw = ImageDraw.Draw(canvas)
57
+ draw.text((margin, 16), title, fill=(236, 238, 242), font=big)
58
+ for i, (p, text, color) in enumerate(((panels[0], "cos (one band per papyrus layer)", (170, 200, 255)),
59
+ (panels[1], "normals: red x, green y, blue z", (255, 190, 140)))):
60
+ x = margin + i * (pw + gap)
61
+ draw.text((x, head), text, fill=color, font=small)
62
+ canvas.paste(p, (x, head + lab))
63
+ if max(canvas.size) > max_side: # the media rule's 1920 px, with room
64
+ canvas.thumbnail((max_side, max_side), Image.LANCZOS)
65
+ canvas.save(out, quality=86, method=6)
66
+
67
+
68
+ def level_of(root, want=5):
69
+ """The coarsest level up to want that the array has."""
70
+ attrs = json.load(urllib.request.urlopen(root + "/.zattrs"))
71
+ have = [int(d["path"]) for d in attrs["multiscales"][0]["datasets"]]
72
+ return max(v for v in have if v <= want) if min(have) <= want else min(have)
73
+
74
+
75
+ def main(out):
76
+ out = Path(out)
77
+ out.mkdir(parents=True, exist_ok=True)
78
+ rows = [f for f in json.loads((HERE / "fields.json").read_text())["fields"] if f["source"] == "open-data"]
79
+ for f in rows:
80
+ m = json.load(urllib.request.urlopen(f["manifest"]))
81
+ name = {k: m["groups"][k]["zarr"].split("/")[0] for k in ("cos", "nx", "ny")}
82
+ lv = max(level_of(f"{f['stream']}/{name[k]}") for k in name)
83
+ arr = {k: zarr.open(f"{f['stream']}/{name[k]}/{lv}", mode="r") for k in name}
84
+ zc, yc = arr["cos"].shape[0] // 2, arr["cos"].shape[1] // 2
85
+ views = {"xy": {k: np.asarray(a[zc]) for k, a in arr.items()},
86
+ "xz": {k: np.asarray(a[:, yc, :]) for k, a in arr.items()}}
87
+ for view, v in views.items():
88
+ title = f"{f['scroll']} {f['volume']}, villa predict3d, {'xy at mid z' if view == 'xy' else 'xz at mid y'}"
89
+ polish(v["cos"], normals_rgb(v["nx"], v["ny"], v["cos"]), title, out / f"{f['scroll']}-{f['volume']}-{view}.webp")
90
+ print(f"{f['scroll']} {f['volume']}: level {lv}, {arr['cos'].shape}", flush=True)
91
+
92
+
93
+ if __name__ == "__main__":
94
+ sys.exit(main(sys.argv[1]))
make_thumbs.py CHANGED
@@ -1,8 +1,11 @@
1
- """Card pictures for the Every field tab: each public SharpMeow dataset's preview-xy.png (cos | normals, made with the
2
- field) as a small 2:1 WebP (fitted whole, on black) under assets/thumbs/DATASET.webp. The guide falls back to the dataset's own PNG when a thumb
3
- is missing. Like the rest of assets/, the thumbs live on the Space, not in git.
 
4
 
5
- python3 spaces/lasagna-fields/make_thumbs.py OUT_DIR (then upload OUT_DIR as the Space's assets/thumbs/)
 
 
6
  """
7
  import io
8
  import json
@@ -37,15 +40,17 @@ def trim(im):
37
 
38
  def main(argv=None):
39
  from PIL import Image
40
- out = Path((argv or sys.argv[1:])[0])
 
 
41
  out.mkdir(parents=True, exist_ok=True)
42
  doc = json.loads((HERE / "fields.json").read_text())
43
  for f in doc["fields"]:
44
- if not f.get("dataset"):
45
- continue
46
- name = f["dataset"].split("/")[1]
47
- url = f"https://huggingface.co/datasets/{f['dataset']}/resolve/main/preview-xy.png"
48
- im = trim(Image.open(io.BytesIO(urllib.request.urlopen(url, timeout=120).read())).convert("RGB"))
49
  r = min(W / im.width, H / im.height) # contain, centered on black like the panels
50
  im = im.resize((round(im.width * r), round(im.height * r)), Image.LANCZOS)
51
  canvas = Image.new("RGB", (W, H))
 
1
+ """Card pictures for the Every field tab: each field's xy preview (cos | normals; preview_xy in fields.json, a
2
+ dataset's preview-xy.png or, for villa's fields in the open data, the picture make_previews.py wrote) as a small 2:1
3
+ WebP (fitted whole, on black) under assets/thumbs/SCROLL-VOLUME.webp. The guide falls back to the preview itself when
4
+ a thumb is missing. Like the rest of assets/, the thumbs live on the Space, not in git.
5
 
6
+ python3 spaces/lasagna-fields/make_thumbs.py OUT_DIR [PREVIEWS_DIR] (then upload OUT_DIR as assets/thumbs/)
7
+
8
+ PREVIEWS_DIR, make_previews.py's output, is read before the Space has the open-data previews.
9
  """
10
  import io
11
  import json
 
40
 
41
  def main(argv=None):
42
  from PIL import Image
43
+ args = argv or sys.argv[1:]
44
+ out = Path(args[0])
45
+ local = Path(args[1]) if len(args) > 1 else None
46
  out.mkdir(parents=True, exist_ok=True)
47
  doc = json.loads((HERE / "fields.json").read_text())
48
  for f in doc["fields"]:
49
+ name = f"{f['scroll']}-{f['volume']}"
50
+ url = f["preview_xy"]
51
+ here = local / url.rsplit("/", 1)[1] if local else None
52
+ raw = here.read_bytes() if here and here.is_file() else urllib.request.urlopen(url, timeout=120).read()
53
+ im = trim(Image.open(io.BytesIO(raw)).convert("RGB"))
54
  r = min(W / im.width, H / im.height) # contain, centered on black like the panels
55
  im = im.resize((round(im.width * r), round(im.height * r)), Image.LANCZOS)
56
  canvas = Image.new("RGB", (W, H))