From Sunday, July 27, 2015 through Friday, July 31, 2015, Stephan Saalfeld at HHMI Janelia in Ashburn, Virginia hosted LOCI’s Curtis Rueden and Mark Hiner for a hackathon to unify SCIFIO/ImgLib2 development efforts (with MPI-CBG’s Tobias Pietzsch ), improve support for the Janelia KLB format (with Janelia’s Burkhard Hoeckendorf), and improve the development tools available for Fiji developers.
- SCIFIO is headed in a great direction:
- Will integrate it better into modern, powerful software tools including ImgLib2 and BigDataViewer.
- Big step toward breaking the limitations of ImageJ1, in particular the 2GPix plane barrier and limited image types.
- Will make possible things like more transparent and rapid ability to work with multi-position and multi-angle datasets (mosaics, light sheet, etc.).
- Stability of ImageJ and Fiji—and other applications built on SciJava components—is now easier to validate.
- Unify BigDataViewer and SCIFIO/SciJava cell caches, and caching in general
- Unify SCIFIO and ImgLib2 metadata data structures
- Improve Maven tooling for releases and testing.
- KLB block-based file format:
- Generalize SCIFIO’s core API to use N-D blocks instead of planes.
- Consider pure Java implementation of KLB to avoid native lib issues.
- Enable multithreaded I/O in SCIFIO as painlessly as possible.
Progress this week
- Curtis wrote a “melting pot” script for testing component changes in the context of a larger application (e.g.: “Would this change to TrakEM2 break Fiji?”) https://github.com/scijava/scijava-scripts/commit/d611704204d607dc94654a6810d00a1ab0e9280e 1.
- Curtis made some ImageJ improvements in response to feedback from Burkhard [2, 3].
- Mark fixed bugs in SCIFIO cell caching in preparation for unification https://github.com/imglib/imglib2-ij/pull/5 4.
- Mark and Curtis planned out the new SCIFIO API for “blockization”.
- Mark began work on ImageJ data model changes for SCIFIO “blockization” [5, 6].
- Jenkins automation of melting-pot for Fiji testing.
- Wiki documentation on how to use the melting-pot for testing your components.
- Completion of development on the SCIFIO “blockization” and unification of ImgLib2 data structures and caching.
- Convert KLB native code to a pure Java SCIFIO format implementation.