From Tuesday, December 6, 2016 through Friday, December 16, 2016, the Max Planck Institute of Molecular Cell Biology and Genetics hosted ~20 developers at their facility in Dresden, Germany for a hackathon to develop ImageJ2 and Fiji core infrastructure and plugins.
The following chart illustrates when everyone was present:
- Participated in technical discussions about ThreeDViewer, BigDataViewer and the next generation of viewers used in KNIME Image Processing.
- Participated in discussions about ImageJ Ops based feature extraction.
- Worked on the integration of the BigDataViewer as new standard viewer in KNIME Image Processing.
- continued work on the Scenery 3D rendering backend for ThreeDViewer and ClearVolume 2.0:
- fixed some bugs in ClearVolume, together with Loic Royer
- discussed future directions for ThreeDViewer/ClearVolume/BigDataViewer with Kyle Harrington, Loic Royer, Tobias Pietzsch and Stephan Saalfeld
- Participated in discussions about Fiji release cycle and ImageJ Ops based feature extraction
- Bugfixed a tool for visualising Meshes in the good old 3D Viewer which were derived from
ArrayList<RandomAccessibleInterval<BoolType>>s as an intermediate solution until the ThreeDViewer is ready.
- Built an ImageJ-Ops based particle analyser, which will in the future allow processing 3D images in a way like 2D images were processed using the good old Particle Analysis tool
- With Matthias Arzt, Florian Jug, and Curtis Rueden we launched the work on a
- Participated in technical discussions, especially those focused on the next generation ThreeDViewer
- Finished integrating imagej-ops usage into Funimage (see Funimage#26)
- Unifying Mesh data structure from ops with imagej-mesh file loading with Richard Domander
- More ThreeDViewer enhancements
- With Curtis Rueden, overhauled the SciJava Common logging mechanism (scijava/scijava-common#253).
- With Curtis Rueden,Robert Haase,Tobias Pietzsch, and Stephan Saalfeld split up the necessary work in order to cut stable releases of Fiji (biannually). This ‘earned’ me the status of ‘Grand Poobah’. ;)
- Worked on an ‘indago’ parent POM for DAIS related projects and started using it for the new tracker ‘Tr2d’.
- Worked on the new tracker ‘Tr2d’. New features: improved leveraged editing; tracklet export; improved BDV overlays.
- With Loic Royer and Martin Weigert we have fixed some reported ClearVolume bugs and released a new version after testing on Win/Linux/MaxOS.
- With Matthias Arzt, Robert Haase, and Curtis Rueden we launched the work on a
- With Alec Neevel and Stephan Saalfeld, completed update of ImageJ web resources to support HTTPS (see separate news post).
- With Florian Jug, overhauled the SciJava Common logging mechanism (scijava/scijava-common#253).
- With Richard Domander, improved SciJava Common context injection to be recursive, to fix bugs with service population of commands (scijava/scijava-common@b0c981b2, imagej/imagej-ops@4f78eca5).
- With Richard Domander, add a validater callback for parameter validation (scijava/scijava-common@66ed844e, scijava/scijava-common@70c50f48).
- With Matthias Arzt, began work on a
PlotServicefor ImageJ2 (maarzt/imagej-ui-swing@plot-service).
- Participated in technical discussions with various people, including a “big-picture” status update for ImageJ2 covering my primary priorities; see Technical discussions section below.
- With Jean-Yves Tinevez, worked on Mastodon/plugins/trackmate3, in particular the unified handling of adapter views onto the main tracking model.
- With Stephan Saalfeld, worked towards integration of caching mechanisms into unified scijava/imglib2 cache; generalization of BigDataViewer cache.
- Added support in ui-behaviour for triggering multiple behaviours in parallel.
- Documented ui-behaviour configuration syntax
- Assisted with various BigDataViewer-related projects.
- Improvements to KNIME SLURM integration:
- Many bugfixes (specifically for the use of image processing workflows)
- Implemented status view for more detailed information about the state of running jobs
- Got KNIME SLURM integration to run with the MPI-CBG Dresden cluster
- Achieved significant speed ups by running parts of an image processing workflow on the cluster
- With Tobias Pietzsch, worked on Mastodon/plugins/trackmate3, in particular view colouring by numerical features calculated on a model.
- With Tobias Pietzsch,extended the MaMuT so that it can be used for 2D over time properly.
- With Marcel Wiedenmann, worked on processing of very large images in ops
- With Tim-Oliver Buchholz, worked on BDV integration in KNIP
- Implemented the non-rigid coherent point drift algorithm using la4j.
- Pushed forward the implementation of the radial symmetry plugin for ImageJ.
- Worked on tracking of C.elegans cells.
- With Tobias Pietzsch, added a loader for 5D ilastik HDF5 volumes for BigDataViewer
- Worked on a prototype for a tracking export plugin system within ilastik to talk to MaMuT
- implemented an ilastik HDF5 import/export plugin for Imagej (Beinabih/ilastik-Fiji-Plugin)
- Separated BigDataServer into two versions. One is SimpleBigDataServer which can be launched by adding xml datasets in the command line. The other is (Advanced) BigDataServer which is running with H2 DBMS backend.
- ER design is completed with Tobias Pietzsch.
- (Advanced) BigDataServer
- H2 DBMS integration is completed.
- User/Dataset/Tag/Annotation entity relationships are decided and made in the hackathon.
- DataSets are managed as either private or public according to users.
- Manager context is still supported as well as user management is possible there.
- Each user can share private datasets with other users.
- This is almost same as the previous command line based BigDataServer.
- Technical notes
- Upgraded the stringtemplate with v4(org.stringtemplate.v4.ST) which is getting powerful for templating strings for HTML tables.
- By using AJAX, database CRUD operations are carried in a responsive way.
- Realized how important JDBC database connection pool is.
- Robert is addicted to ImageJ.
- Ulrik can only do snapshot releases.
- Florian is doing too much at once… at least he has a car! (Yes Klim, you can join…)
Stable releases of Fiji
- We agreed to cut a stable release of Fiji once every six months.
- We agreed to continue pursuing the “melting pot” builds of Fiji and/or the SciJava universe, to better detect cross-component regressions and incompatibilities.
3D viewers in ImageJ and Fiji
- We discussed how best to proceed with the ThreeDViewer, BigDataViewer et. al.
- All agree to be very grumpy if the discussion ever degrades back to a laundry list of desired features (before we actually finish the first iteration of the code)
- Kyle Harrington will continue efforts to consolidate ThreeDViewer and BigDataViewer into a unified viewer
- Tim-Oliver Buchholz and Christian Birkhold (Dietz) will continue to develop UI components for BDV and KNIME using SciJava for use in the unified viewer
- Kyle Harrington, Tim-Oliver Buchholz, and Christian Birkhold (Dietz) will reconvene in the Spring for component integration
- Tobias Pietzsch will continue to work his BDV magic
- Roughly the idea is (we previously discussed this at the 2016 summer Konsanz hackathon):
- 4 viewer panels (number of panels is convenience not hard coded): X-Y, Y-Z, X-Z, and 3D. Viewer panels have sliders for time and other dimensions
- Control panel with selection of attributes that can be synced between viewer panels, but can also be used for independent control of viewer panels
- BDV provides orthogonal views
- Viewer panels have overlays: minimaps, intensity, etc.
- ROI overlays can also be provided
- Panels are just JPanels
- Tobias Pietzsch says most of the backend has already been developed in BDV
- ThreeDViewer should reuse more of BigDataViewer’s UI components
- GUI tools/widgets will go into scijava-ui-swing
- Ulrik Günther will continue to develop Scenery for the core 3D rendering functionality