# 2016-12-20 - Fiji + KNIP hackathon

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.

## Timeline

The following chart illustrates when everyone was present:

Preset = TimeHorizontal\_AutoPlaceBars\_UnitYear ImageSize = width:600 Colors =  id:c01 value:blue  id:c02 value:red  id:c03 value:green  id:c04 value:black  id:c05 value:magenta  id:c06 value:teal  id:c07 value:yelloworange  id:c08 value:skyblue  id:c09 value:claret  id:c10 value:oceanblue  id:c11 value:purple  id:c12 value:powderblue  id:c13 value:coral  id:c14 value:redorange  id:c15 value:kelleygreen  id:c16 value:orange  id:c17 value:lightpurple  id:c18 value:tan2  id:c19 value:gray(0.3)  id:c20 value:blue  id:c21 value:red  id:c22 value:green  id:c23 value:black  id:c24 value:magenta  id:c25 value:teal  id:gridLine value:gray(0.5)  id:gridCanvas value:gray(0.8) BackgroundColors = canvas:gridCanvas Period = from:6 till:17 ScaleMajor = unit:year increment:1 start:6 grid:white LineData =  at:6 color:gridLine layer:back width:0.5  at:7 color:gridLine layer:back width:0.5  at:8 color:gridLine layer:back width:0.5  at:9 color:gridLine layer:back width:0.5  at:10 color:gridLine layer:back width:0.5  at:11 color:gridLine layer:back width:0.5  at:12 color:gridLine layer:back width:0.5  at:13 color:gridLine layer:back width:0.5  at:14 color:gridLine layer:back width:0.5  at:15 color:gridLine layer:back width:0.5  at:16 color:gridLine layer:back width:0.5  at:17 color:gridLine layer:back width:0.5 BarData=  barset:Hackers PlotData=  width:15   fontsize:M  textcolor:white  align:left   anchor:from   shift:(4,-4)   color:black  barSet:Hackers  color:c01 from:12 till:17 text:"Curtis Rueden (LOCI)"  color:c02 from:11 till:17 text:"Christian Dietz (KNIME/UniKN)"  color:c03 from:11 till:16 text:"Patrick Winter (KNIME/UniKN)"  color:c04 from:9 till:17 text:"Marcel Wiedenmann (KNIME/UniKN)"  color:c05 from:9 till:16 text:"Tim-Oliver Buchholz (KNIME/UniKN)"  color:c06 from:6 till:16 text:"Matthias Arzt (MPI-CBG)"  color:c07 from:6 till:16 text:"Richard Domander (BoneJ/RVC)"  color:c08 from:6 till:16 text:"Ulrik Günther (MPI-CBG)"  color:c09 from:6 till:16 text:"Robert Haase (MPI-CBG)"  color:c10 from:6 till:16 text:"Philipp Hanslovsky (Janelia)"  color:c11 from:6 till:16 text:"Kyle Harrington (Uni-Idaho)"  color:c12 from:6 till:16 text:"Florian Jug (MPI-CBG)"  color:c13 from:6 till:16 text:"Klim Kolyvanov (MDC/BIMSB)"  color:c14 from:6 till:16 text:"HongKee Moon (MPI-CBG)"  color:c15 from:6 till:16 text:"Tobias Pietzsch (MPI-CBG)"  color:c16 from:6 till:16 text:"Loic Royer (MPI-CBG)"  color:c17 from:6 till:16 text:"Stephan Saalfeld (Janelia)"  color:c18 from:6 till:16 text:"Pavel Tomancak (MPI-CBG)"  color:c19 from:6 till:16 text:"Vladimir Ulman (MPI-CBG)"  color:c20 from:6 till:13 text:"Jean-Yves Tinevez (Pasteur)"  color:c21 from:6 till:10 text:"David Hörl (LMU, MDC)"  color:c22 from:6 till:9 text:"Carsten Haubold (HCI)"  color:c23 from:6 till:9 text:"Jonas Massa (HCI)"

## Hackathon progress

### Tim-Oliver Buchholz

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

### Robert Haase

• 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>s as an intermediate solution until the [ThreeDViewer](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 maarzt , Florian Jug , and Curtis Rueden we launched the work on a PlotService for ImageJ2.

### Kyle Harrington

• Participated in technical discussions, especially those focused on the next generation ThreeDViewer
• Finished integrating imagej-ops usage into Funimage (see Funimage#26)

• More ThreeDViewer enhancements

### Tobias Pietzsch

• With Jean-Yves Tinevez , worked on Mastodon/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.

### Patrick Winter

• 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

### JeanYvesTinevez

• With Tobias Pietzsch , worked on Mastodon/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.

### Christian Dietz

• With Marcel Wiedenmann, worked on processing of very large images in ops
• With Tim-Oliver Buchholz, worked on BDV integration in KNIP

### Klim Kolyvanov

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

### Carsten Haubold

• 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

### HongKee Moon

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

## Technical discussions

### Programmers Anonymous

• 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.
• Florian Jug will manage the releases, both socially and technically.
• Robert Haase will update the Updater to more clearly communicate the ramifications of updating.
• Curtis Rueden will create Jenkins jobs for automating cutting of stable release candidates and releases.
• We agreed to continue pursuing the “melting pot” builds of Fiji and/or the SciJava universe, to better detect cross-component regressions and incompatibilities.
• Curtis Rueden will research effective approaches for running the melting pot via CI.
• Core maintainers (esp. Tobias Pietzsch and Stephan Saalfeld ) will run the melting pot manually to vet its usefulness and correctness.

### 3D viewers in ImageJ and Fiji

• We discussed how best to proceed with the ThreeDViewer, BigDataViewer et. al.
• 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
• skalarproduktraum will continue to develop Scenery for the core 3D rendering functionality