π Awesome Scroll Tools
Here are all the awesome awarded open source contributions from our community that will allow us to read the scrolls! πβ¨
Contributions are divided into four categories: Data access/visualization, Segmentation, Ink Detection, and Other.
Every category is subdivided in classes: π Highlighted (for popular contributions), βοΈ Tools, π¦ Materials, π Reports, and π Visualization.
Some highlighted contributions are added to this repository as submodules.
We keep this repository updated as much as we can, but research moves fast! ππ¨
For state-of-the-art updates join our Discord server π¬β°
π Data access/visualizationβ
π Highlightedβ
-
vesuvius: Python library for accessing Vesuvius Challenge data. Allows direct access to scroll data without managing download scripts or storing terabytes of CT scans locally.
-
Segment browser is a web-based tool to browse layers and open source ink detection results of all released segments. By Johannes Rudolph
π οΈ Toolsβ
-
vesuvius-c: C library for accessing Vesuvius Challenge data. Allows direct access to scroll data without managing download scripts or storing terabytes of CT scans locally.
-
vesuvius-gui is a single binary GUI to render volumes and segments on-the-fly. By Johannes Rudolph
-
vesuvius-phalanx: Python library / CLI for accessing Vesuvius data. Allows flexible access to volume and fragment scroll data. By Marcel Roth
-
llfio-chunkloader: A Methode to access Data in chunks of (x,y,z) that is by lot faster and compute efficient than Zarr. (Written in C++ but it is possible to integrate in Python).
Segmentationβ
π Highlightedβ
-
Volume Cartographer: the OG virtual unwrapping toolkit. Includes a graphical interface to annotate scroll segments. First built by EduceLab; an active fork by Philip Allgaier contains many community contributions and is currently used by the segmentation team.
-
Khartes by Chuck is a tool to manually create and visualize segment meshes, while also visualizing a preview of the rendered segment.
-
Thaumato Anakalyptor is an automatic tool that combines classical methods such as threshold gradient operator based edge detectors and Deep Learning based instance segmentation of point clouds to detect, merge and render segments. It was built by Julian Schilliger (part of Grand Prize winning submission).
π οΈ Toolsβ
-
Fast Segment Rendering by Julian Schilliger. Fast rendering of segments with GPU acceleration. Capable of saving the surface volume to multiple file formats.
- CPU rendering by Julian Schilliger and Giorgio Angelotti
-
Volumetric Vesuvius Labelling by James Darby. Provide custom tooling the napari 3d viewer that will help manually annotate volumetric masks of the scrolls to train ML models for 3D segmentation.
-
Autosegmentation preprocessing pipeline (work in progress) collection of scripts to pre-process volumes for autosegmentation. By Giorgio Angelotti
-
Segment2Voxel by Giorgio Angelotti. Tool to create 1-voxel thick volumetric segment labels starting from mesh .obj files.
-
Volumetric Instance Labels to obj by James darby. Tools to create .obj mesh files from volumetric instance labels.
-
Hraun is a collection of python tools for handling volumetric scroll data by Forrest McDonald.
-
Scroll compression and masking by Olivier Daubney. Script to compress and mask scroll data, greatly reducing storage requirements!
-
Mesh merging by Julian Schilliger. Merges multiple overlapping meshes into one continuous mesh. Flattening not included.
- Mesh merging prototype by Giorgio Angelotti. Different attempt to merge existing mesh of segments by projecting them in 2D and retriangulating in the plane.
-
Meshing and chunking by Santiago Pelufo
-
Volumetric segmentation model with labels, deep learning 3D model to separate papyrus from air, by Tim Skinner
-
Superpixels and cells by Santiago Pelufo
-
Segment Flattening by Julian Schilliger and Giorgio Angelotti. Improved flattening of scroll segments.
- Slim-Flatboi previous implementation of the SLIM algorithm with minimization of isometric distortion to flatten scroll segments. Later included in ThaumatoAnakalyptor. By Giorgio Angelotti.
-
Single Sheet Segmentation attempt by Brett Olsen
-
vesuvius-blender by Santiago Pelufo. Explore the X-ray scans in Blender.
-
vesuvius-build by Santiago Pelufo. Scripts to build files for progressive loading of the data. Convert the tif stack to grid cells or to h5 format that can be used by Ilastik.
-
Volume Annotate A partial reimplementation of Volume Cartographer in Python by Moshe Levy.
- VA-Sheet Tracer by Trevor, Tom, Babak and Boaz
-
vesuvius-image by Brett Olsen. Tool for storing and viewing data, including efficient Zarr loading of stack of tif images later included in Khartes.
-
Quick Segment Created by EduceLab for annotating a large air gap in Scroll 1, and then projecting from that gap to either side to create two large segments, colloquially referred to as the βMonster Segmentβ. Hasnβt been used for more segmentation, since it was the only large air gap we could find.
-
scrollreading by Will Stevens. Experiments with using algorithms based on flood-fill to extract non-intersecting surfaces from scrolls.
-
VC with OME-Zarr & more by Hendrik Schilling:
- fast interactive OME-Zarr access and live slicing & flattening thread
- instant flattening from VC segments without meshing (10s for one slice) thread
- segment surface refinement (also works on obj segments) thread
- fiber based segmentation efforts using an optimizing physics inspired surface meshing approach based on ceres-solver thread
- non-destructive large scale interactive segment viewing and editing thread
- automatic patch generation pipeline: vc_grow_seg_from_seed, vc_render_tifxyz, vc_tifxyz2obj: thread
- segment tagging, segment masking, POIs, segment filters (all/filter by focus point/filter by POIs), display intersections scaling to thousands of segments message
- low memory tiled rendering to enable GP-sized an full scroll rendering https://github.com/hendrikschilling/volume-cartographer/blob/dev-zarr/apps/src/vc_render_tifxyz.cpp
- large segment tracing based on patch consensus: vc_grow_seg_from_segments, as documented in the FASP submission
- consistent winding number estimation by winding number diffusion: vc_tifxyz_winding
- segment fusion & inpainting: vc_fill_quadmesh
-
fast and low memory inference for the GP ink detection 1/5 the memory consumption and 20x the speed compared to the baseline GP ink detection for large segments to allow GP and full scroll size ink detection and fast preview.
-
vesuvius-render by Johannes Rudolph:
- Fast self-contained CPU-based rendering of segments from obj files downloading data on-the-fly.
π¦ Materialsβ
π Highlightedβ
-
Sheet instance annotation of cubes for Deep Learning models (work in progress)
-
Denoised and contrast enhanced volumes, download here, same path pattern for other scrolls.
Scroll Surface Predictionsβ
- Scroll 1, and 3 Surface Predictions by Sean Johnson
- Scroll 4 Surface Predictions by Sean Johnson
- Scroll Surface Prediction Repository and Writeup by Sean Johnson
π Segmentsβ
-Large Autosegmentation of Scroll5 by Hendrik Schilling and Sean Johnson -- Unsupervised, many switches -- check readme.md
-
Scroll 2 segments by Sean Johnson
-
New segments by Sean Johnson
-
Large segments by Sean Johnson
-
Rescaled to 7.91um fragment surfaces and labels by Johannes Rudolph
π·οΈ Volumetric Labelsβ
- Instance segmentation labels by James Darby
π Reportsβ
-
Technical report on ThaumatoAnakalyptor by Julian Schilliger
-
Physical equalization of scrolls' brightness by Giorgio Angelotti
-
Volumetric segmentation architecture investigation by James Darby
-
Instance segmentation experiments by James Darby, Ryan Reszetnik, Liamo Pennimpede, Lucas Nelson
-
Probabilistic view on the offset for surface volume creation by Giorgio Angelotti
π Visualizationβ
-
Browser-based scroll viewer by Yao Hsiao
-
wj-wt-ftt by Yao Hsiao and Dalufishe. Tool to view and annotate volumetric scrolls data.
-
Crackle Viewer is a tool to browse and annotate surface volumes of rendered segments, by Julian Schilliger
-
Point cloud extraction method comparer by Giorgio Angelotti. Tool to compare different point cloud extraction methods.
-
Pipeline Visualize by Yao Hsiao. Tool to visualize the first steps of the Thaumato Anakalyptor pipeline.
-
Cell viewer and segmentation comparison by Yao Hsiao
-
Volume Viewer Used by the segmentation team primarily to see which segments they have worked on already. Hosted here. By Yao Hsiao
- Vesuvius Challenge Whiteboard by Yao Hsiao and Dalufishe
-
Scroll Viewer by Luke Farritor. A lightweight, extensible tool for viewing volumetric data, which runs in the browser, and is very fast.
-
Scroll Sleuth by Paul Geiger. A web app that supports visual ink-searching in segment volumes via multiple display modes and segmentation tools.
Ink Detectionβ
π 3D Ink Detectionβ
π Highlightedβ
- 3D (volumetric) Ink detection model by Ryan Chesler. Ink detection model that works on full scroll data in 3D, without segmentation nor flattening.
- Volumetric Ink Detection for Scroll 1, 2, 3, 4 by Sean Johnson
βοΈ Toolsβ
-
Large Scroll Model is a 3D Unet pretrained on scroll data, by Ryan Chesler
-
UV predictions visualizer by Giorgio Angelotti. Script to quickly visualize the ink predictions output by Ryan Chesler's 3D model as a scatter pkot on segments. Needs the predictions Zarr for the full scroll.
-
Volumetric ink detection attempt by Jorge Villaescusa
-
Inkalyzer by Youssef Nader. XAI package for Ink models to explain predictions and generate volumetric labels.
π¦ Materialsβ
-
3D Ink labels by Sean Johnsonn
-
3D Ink predictions by Ryan Chesler. Predictions of 3D Ink models on full scrolls in Zarr format.
ποΈ Scroll segments-based Ink Detectionβ
π Highlightedβ
- Grand Prize Winner Ink Detection model by Youssef Nader, Luke Farritor and Julian Schilliger
βοΈ Toolsβ
-
ScrollMAE by Jorge GarcΓa. Contains the necessary code to pretrain a 3D ResNet on unlabeled data and then finetune it to perform ink detection.
-
Unsupervised Ink Detection with DINO by Jorge GarcΓa. Contains experiments related to detecting ink without labels, including a Colab notebook.
-
Vesuvius GP+ by Jared Landau. Updated version of the Grand Prize Ink Detection script with extra features.
-
Segment-to-segment label mapping by Oliver Daubney
-
Runner Up Models, December, 2023
-
Ink detection model by SQ Mah
-
Ink detection model by Lou Schlessinger and Arefeh Sherafati
-
Ink detection model by lian Rafael Dal PrΓ‘, Sean Johnson, Leonardo Scabini, RaΓ Fernando Dal PrΓ‘, JoΓ£o Vitor Brentigani Torezan, Daniel Baldin Franceschini, Bruno Pereira Kellm, Marcelo Soccol Gris, Odemir Martinez Bruno
-
-
Vesuvius Kintsugi is a tool to label floodfill surface volumes of rendered segments, by Giorgio Angelotti
-
Omit is a pipeline that tries to detect ink with classical approaches (not deep learning) by Timo Meireman
-
First Letters winning models, October 2023
- Ink detection model by Luke Farritor
- Ink detection model, 2nd place but more accurate by Youssef Nader
-
Crackle Viewer is a tool to browse and annotate surface volumes of rendered segments, by Julian Schilliger
-
Fourth placed Kaggle model finetuning on scroll data by Luke Farritor
-
Scroll pretraining by Youssef Nader. Youssefβs original idea for pretraining on the scrolls and finetuning on the fragments, which led him to winning the First Letters Prize.
-
pre-trained DINOv2 models by Sergei Pnev. Self-supervised model pre-trained on scrolls 1-5 with predictions.