Difference between revisions of "NA-MIC-Kit-Old"

From NAMIC Wiki
Jump to: navigation, search
(New page: foo)
 
Line 1: Line 1:
foo
+
== Introduction ==
 +
* 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.
 +
 
 +
=Background=
 +
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 …
 +
* http://grants1.nih.gov/grants/guide/rfa-files/RFA-RM-04-003.html
 +
 
 +
* See this [[Media:NA-MIC-2005-10-30-Licencing.ppt| presentation with background information and NA-MIC policy]] presented at the NA-MIC co-sponsored [http://www.ia.unc.edu/MICCAI2005/workshop/OpenSourceSoftwareWorkshop.html 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 [[Media:NA-MIC_Kit_revised.ppt| '''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 ===
 +
 
 +
==== [[Slicer|3D Slicer]] ====
 +
3D Slicer is a software package for visualization and medical image computing. See the Slicer [http://www.slicer.org webpages] for more information.
 +
A tutorial for prospective users of the program  can be found on the web. See our  [[Slicer:Workshops:User_Training_101|'''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.
 +
 
 +
==== [[ITKSummary|The Insight Toolkit (ITK)]] ====
 +
 
 +
* This [[ITK:User_Training_101|'''tutorial''']] page points to introductory materials for the ITK software.
 +
* The [http://www.insight-journal.org '''Insight Journal'''] is an Open Access on-line publication covering the domain of medical image processing.
 +
 
 +
==== [[VTKSummary|The Visualization Toolkit (VTK)]] ====
 +
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.
 +
 
 +
==== [[KWWidgetsSummary|KWWidgets]] ====
 +
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.
 +
 
 +
==== [[TeemSummary|Teem (libraries + command-line tools)]] ====
 +
 
 +
== 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 ===
 +
 
 +
* [[CmakeSummary|CMake]]
 +
* [[CTestSummary|CTest]]
 +
* [[Dart2Summary|Dart2]]
 +
* [[CPackSummary|CPack]]
 +
 
 +
=== 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.
 +
 
 +
* [[Dashboards|Dashboards for Components of NA-MIC Kit]]
 +
* [[Bug_Trackers|BugTrackers for Components of NA-MIC Kit]]
 +
 
 +
=== Software Tools Used ===
 +
 
 +
* [[DoxygenSummary|Doxygen ]]
 +
* [[MemoryCheckSummary|Memory Checking (Valgrind and Purify) ]]
 +
* [[StyleCheckSummary|StyleCheck ]]
 +
* [[SourceNavigatorSummary|SourceNavigator ]]
 +
* [[ExuberantTagsSummary|Exuberant Tags (CTags)]]
 +
* [[BugTrackers|Bug Tracking ]]
 +
* [[Cvs|CVS (Concurent Versioning System)]]
 +
* [[Svn|subversion]]
 +
* [[DartSummary|Dart]]
 +
* [[VersionControlSummary|Version Control]]
 +
* [[PythonSummary|Python ]]
 +
* [[TCLTKSummary|TCL/TK ]]
 +
* [[JavaSummary|Java ]]
 +
* [[CCPPSummary|C/C++ ]]
 +
* [[OpenGLSummary|OpenGL ]]
 +
 
 +
=== 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.
 +
 
 +
* [[ITKforMatlabUsersSummary|ITK for Matlab Users]]
 +
* [[SlicerForProgrammersSummary|Slicer for Developers]]
 +
* [[MailingListsSummary|Mailing lists for NA-MIC Developers]]
 +
* [[TrackNumberofDownloads|Tracking NAMIC Contributions to Software Packages]]
 +
* [[TestStrategy|Test Strategy]]
 +
* [[Software_Engineering_Thoughts_and_Links|Software_Engineering_Thoughts_and_Links]]
 +
 
 +
=== Documents ===
 +
 
 +
The following documents were identified as being useful for development of software and related materials for the NA-MIC community:
 +
 
 +
* [[OverviewSoftwareProcessSummary|Overview of Software Process]]
 +
* [[NAMICStypeGuideSummary|Style Guide]]
 +
* [[Slicer:VTK_ITK_Coordinates|Issues Related to using VTK and ITK together]]
 +
 
 +
==Users of NA-MIC Kit==
 +
 
 +
The following page provides information about users of the NA-MIC Kit: [[NA-MIC Kit Users]].

Revision as of 11:05, 4 October 2007

Home < NA-MIC-Kit-Old

Introduction

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

Background

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 …
  • http://grants1.nih.gov/grants/guide/rfa-files/RFA-RM-04-003.html
  • 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

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.

The Insight Toolkit (ITK)

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

The Visualization Toolkit (VTK)

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

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.

Teem (libraries + command-line tools)

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

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.

Documents

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.