The ImageJ project, and related projects in the SciJava software ecosystem, are open source software projects. See the Licensing page for details.
Everybody is welcome to contribute with plugins, patches, bug reports, tutorials, documentation, and artwork.
The community encourages discussion about proposed changes on ImageJ’s communication channels. Submit your ideas!
Start on the Image.sc Forum, searching for discussions related to your contribution to get some context & background. It can also be helpful to search for applicable issues and plans across the spectrum of ImageJ resources. The ImageJ community believes that public discussion is important so that ideas are exposed to healthy alternate points of view rather than lost.
Ways to contribute
We are all busy, and it can be hard to make time to contribute to an open-source project. Here are some ways to get involved at any level of time, commitment, and expertise:
Improve the documentation here on the wiki.
File issues on GitHub when things don’t work.
Answer questions on forum.image.sc.
Fix small/easy bugs you find in the code on GitHub.
Tackle open issues—see the wish list page.
Take responsibility for one or more plugins by adopting a team role:
- Support - Respond to support requests on public channels such as this forum.
- Reviewer - Look over and approve GitHub pull requests when they come in for your component(s).
- Debugger - Investigate and debug problems with your component(s) when they are reported.
- Developer - Add new features to your component(s) upon user request.
- Lead, Maintainer - Make decisions about when to cut new releases and make them available to end users.
When in doubt, discuss your ideas publicly on the Image.sc Forum!
This site, imagej.net, is a wiki (similar to the Wikipedia project). This site is built by the ImageJ community, and anyone can contribute!
Contributing documentation is an easy way to give back to the community without needing to learn software development skills.
If you are a software developer, please consider documenting your work on this site. You can also create your own tutorial.
We strive for centralized documentation and online resources. Creating your own tutorial in your own GitHub space is great, but much less visible and accessible than adding to the official ImageJ2 tutorials. Same thing with doing your own blog post, or external documentation on your web site, or running your own ImageJ workshop with your own workshop materials. Those things are all good, but much better is to contribute it to the appropriate central resource—e.g., the Presentations page of this website.
Submit patches to ImageJ2 via pull requests against ImageJ2’s source on GitHub.
Note that since ImageJ2 has a modular architecture, it is possible that your change would be more applicable to one of the supporting technologies such as ImgLib2, SCIFIO or SciJava.
Changes to the original ImageJ are made by Wayne Rasband, the ImageJ developer, along with many contributors. He takes patch submissions and then reworks them to fit within the project’s development model and style before merging them. Attribution for the changes is noted in the release notes (see Release Notes/News).
Methods of getting the patch to Wayne include:
- Submit a pull request on GitHub against the ImageJ repository. Be aware that PRs will be reviewed and integrated by hand, not merged via the standard Git/GitHub workflow.
- Send the modified code in a private mail to Wayne.
The important part is that Wayne receive the code/patch, since he is the only one with the authority to merge it.
(See also this nice response from Curtis Rueden on the ImageJ mailing list.)