- 1 Introduction
- 2 Background
- 2.1 The NAMIC Kit
- 2.2 Tools Supporting the NA-MIC software methodology
- 2.3 Users of NA-MIC Kit
- The NA-MIC Kit consists of software that is being made available under the NA-MIC project. This software follows the NIH guidelines for open source software. In this section, we provide information about the components of the NA-MIC kit as well as supporting software tools that are being used by the software developers on the project.
- It is our intention to include in the NA-MIC kit only software that is free of IP restrictions, supported and comes with a BSD style license.
- This will allow anybody (including companies) to use our software. We only ask for an acknowledgment of our contributions. For more information, look at the licenses that come with the packages.
- We make no promises or claims about what the software can be used for. We make no restrictions either.
- The NA-MIC kit includes a number of toolkits, libraries, and applications. NA-MIC has adopted a software engineering methodology using extreme programming techniques. This methodology is supported by a variety of specific tools.
If you would like to contribute software to NA-MIC, please keep in mind the following guidelines that all our software must follow:
- From the RFA:
- …NIH does have goals for software dissemination…
- …software should be freely available …
- …permit the commercialization of enhanced or customized versions …
- …include the ability of researchers outside the center and its collaborating projects to modify the source code and to share modifications …
- See this presentation with background information and NA-MIC policy presented at the NA-MIC co-sponsored MICCAI 2005 Open Source Software Workshop for more information about how these goals are applied.
- Our conclusion was to standardize on BSD style licenses for the NA-MIC kit.
The NAMIC Kit
See this presentation on the NA-MIC Kit.
The current version of the NAMIC kit consists of the following end-user applications and software toolkits.
Software Applications for Biomedical Scientist
3D Slicer is a software package for visualization and medical image computing. See the Slicer webpages for more information. A tutorial for prospective users of the program can be found on the web. See our tutorials page for an introduction to the use of 3D Slicer.
Software Toolkits for NA-MIC Developers
The following software toolkits are being used to develop software within the NA-MIC community. They also form the foundation for the 3D Slicer software.
- This tutorial page points to introductory materials for the ITK software.
- The Insight Journal is an Open Access on-line publication covering the domain of medical image processing.
VTK is an open source system for 3D visualization, computer graphics, and human/computer interaction. Its core capabilities include image display, volume rendering, and surface display. It also provides a data processing framework for large data including mutlti-threading and scalable, distributed processing.
KWWidgets are an open source GUI toolkit with an unrestricted license compatible with the NAMIC's guiding philosophy. Slicer3 and many adjunct modules are implemented using the KWWidgets.
Tools Supporting the NA-MIC software methodology
NA-MIC has adopted a software methodology which is centered around an iterative development process. This approach requires frequent compilation, automated testing and multi-platform support. Software has been developed by a variety of groups to enable this approach.
Software Engineering Tools improved by NAMIC
Dashboards and BugTrackers
All components of the NA-MIC toolkit have an associated dashboard and bugtracker so that the current state of the toolkit is publicly accessible at all times.
Software Tools Used
- Memory Checking (Valgrind and Purify)
- Exuberant Tags (CTags)
- Bug Tracking
- CVS (Concurent Versioning System)
- Version Control
Procedure and Processes
The need for the following processes was identified in early meetings of NA-MIC PIs. Each of these processes are expected to evolve with the project.
- ITK for Matlab Users
- Slicer for Developers
- Mailing lists for NA-MIC Developers
- Tracking NAMIC Contributions to Software Packages
- Test Strategy
The following documents were identified as being useful for development of software and related materials for the NA-MIC community:
Users of NA-MIC Kit
The following page provides information about users of the NA-MIC Kit: NA-MIC Kit Users.