Skip to main content

πŸ“œ Awesome Scroll Tools Awesome

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

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.

  • 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.

  • 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

πŸ“¦ Materials​

🌟 Highlighted​

πŸ“œ Segments​

🏷️ Volumetric Labels​

πŸ“ Reports​

πŸ“Š Visualization​

Ink Detection​

πŸ† 3D Ink Detection​

🌟 Highlighted​

βš™οΈ 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​

πŸ–‹οΈ Scroll segments-based Ink Detection​

🌟 Highlighted​

βš™οΈ Tools​

πŸ“¦ Materials​

πŸ“ Reports​

πŸ“Š Visualization​

  • Segment viewer. Used by the segmentation team primarily to see which segments they have worked on already. Hosted here By Yao Hsiao and Dalufishe

πŸ“œ Fragment-based Ink Detection​

🌟 Highlighted​

πŸ“ Reports​

Other​

βš™οΈ Tools​

πŸ“¦ Materials​

  • CT scanning campfire scrolls Ahron Wayne replicated the carbonization process of a papyrus scroll and scanned it with his personal CT scanner

πŸ“ Reports​

Contributions

If you want to contribute and add any resource please submit a PR! πŸ˜ŠπŸš€