Source code

Revision as of 17:49, 16 October 2014 by Schindelin (talk | contribs) (Reword a little bit and document the concerns of the five building blocks)

Template:DevelopmentThe source code of Fiji/ImageJ2 is very modular, i.e. it is organized into well-separated subprojects. That separation offers many advantages for efficient software development and it is well worth investing a little bit of time to understand.

The actual source code development is managed using the Git version control system.

Source code

The source code of ImageJ and related SciJava projects is managed using the Git version control system.

All source code is on GitHub. The user-facing parts are:

  • ImageJ – a generic image processing application
  • Fiji – a distribution of ImageJ and plugins supporting life sciences in particular

Both ImageJ and Fiji consist of multiple sub-projects; All projects address their individual "concern" and leave all other concerns to the respective other projects.

The developer-facing parts are:

  • ImgLib2 – generic multi-dimensional data processing in Java
  • SCIFIO – file I/O
  • SciJava – common utilities, plugin infrastructure, scripting, the context

Building from source

  1. Install Maven.
  2. Clone the source repository of interest.
  3. Type mvn from the top-level directory.

Using an IDE

You can import the code into your favorite IDE.


You can browse the Javadocs online.

Running ImageJ1 unit tests

We have written a substantial number of unit tests to exercise ImageJ 1.x functionality. See the Unit tests for ImageJ1 page for more information.