Difference between revisions of "CTKSummary"

From NAMIC
Jump to: navigation, search
(Created page with 'This page provides a summary of CTK's role in the NA-MIC Toolkit. To learn more about CTK visit the [http://www.commontk.org/ CTK Website ]. == Description == The Visualizati…')
 
 
Line 3: Line 3:
 
== Description ==
 
== Description ==
  
The Visualization ToolKit ([http://www.vtk.org VTK]) is an open source, freely available software system for 3D computer graphics, image processing, and visualization used by thousands of researchers and developers around the world. The major objective of VTK is to support the visualization process: mapping data into perceptual forms (typically visual). VTK supports a wide variety of visualization algorithms including scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques such as implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation. In addition, dozens of imaging algorithms have been directly integrated to allow the user to intermix 2D imaging / 3D graphics algorithms and data. VTK also supports direct data interaction in the form of [[Media:VTKWidgets.ppt|3D widgets]], which are 3D representations that interactively modify data, or provide input to filtering algorithms.
+
The Common ToolKit ([http://www.commontk.org/ CTK]) is an open source, freely available software system for providing high-level components for biomedical and scientific computing applications. CTK, which is a very recent effort, is a repository of high-level componentware that combines a broad range of technology including Qt, VTK, [https://www.kitware.com/InfovisWiki/index.php/Main_Page Titan] (VTK's informatics subsystem), ITK, CMake, Slicer/Slicer Modules and DICOM.
  
 
== Role in NAMIC ==
 
== Role in NAMIC ==
  
VTK is a core software component used by major applications such as [[SlicerSummary|Slicer]].
+
At this point CTK is serving as a software repository for application componentware, and as a vehicle for international collaboration.
 
 
Advanced features of VTK being exploited and enhanced by NA-MIC include:
 
* [http://www.slicer.org/slicerWiki/index.php/Slicer3:GPURayCaster GPU-based volume rendering]
 
* [http://www.na-mic.org/Wiki/index.php/2009_Winter_Project_Week_Interactive_3D_Widgets_In_Slicer3 Interactive 3D widgets for annotation]
 
  
 
== Typical Usage ==
 
== Typical Usage ==
  
VTK is a toolkit, meaning that there is no application per se. Rather, the developer uses VTK to build applications by assembling the many classes available in the toolkit.
+
CTK is under active development and use cases are evolving. However, the general idea is that biomedical and scientific computing professionals will be able to quickly combine components from CTK to create targeted applications.
  
 
== Languages ==
 
== Languages ==
  
VTK is written in C++ but has bindings for Java, Python and TCL. These bindings are produced automatically during the software build process. Java, Python and Tcl are powerful languages for rapid software development and provide many modules for creating applications (GUI builder tools, numerics packages, etc.).
+
CTK is written in C++ but will have bindings to Python (at a minimum). These bindings are produced automatically during the software build process. Python is a powerful scientific computing languages that includes packages for numerical computing, web access, data manipulation and more.
  
 
== Platforms ==
 
== Platforms ==
  
VTK runs on most Unix, Linux and Windows platforms. Mac OSX is also supported (Jaguar or later.)
+
CTK runs on most Unix, Linux and Windows platforms. Mac OSX is also supported (Jaguar or later.)
  
 
== Software Dependencies ==
 
== Software Dependencies ==
Line 31: Line 27:
 
== Documentation, Tutorials and Examples ==
 
== Documentation, Tutorials and Examples ==
  
The VTK source code distribution contains an extensive set of working examples. Once you download VTK, the VTK/Examples directory contains examples written in the C++, Tcl, Python and Java languages.
+
As CTK is under rapid development, [http://www.commontk.org/index.php/Documentation/Whitepaper documentation] resources are spartan and subject to change. To learn more, we recommend contacting the [http://www.commontk.org/index.php/Main_Page CTK community].
 
 
Doxygen generated, [http://www.vtk.org/doc/nightly/html on-line VTK class documentation] is also available. Method descriptions, inheritance and collaboration diagrams, and other implementation details are available to users developing VTK applications.
 
 
 
Two books are available to learn VTK. The ''VTK User's Guide'' describes in detail how to work with the software. ''The Visualization Toolkit An Object-Oriented Approach to 3D Graphics'' is a higher-level theory book that describes important data structures and algorithms used in VTK. Both books can be purchased through [http://www.kitware.com/products/vtkguide.html Kitware] or [http://www.amazon.com Amazon.com].
 
  
 
== File Formats Supported ==
 
== File Formats Supported ==
  
Some of the files that VTK reads include 3D Studio, AVS Unstructured, BMP, BYU, DEM, DICOM, EnSight, JPEG, OBJ, PDB, PLOT3D, PLY, PNG, PNM, SLC, STL, TIFF, VRML, and VTK XML and simple file formats.
+
All formats supported by Slicer, VTK, ITK, Qt and DICOM. This includes SQL access (through Qt).
 
 
Some of the files that VTK writes include BMP, BYU, CGM, IV, JPEG, PLY, PNG, PNM, PostScript, Renderman, STL, TIFF, and VTK XML and simple file formats.
 
  
 
== Revision Control ==
 
== Revision Control ==
  
VTK uses CVS to manage the source code. Instructions for accessing the VTK source repository can be found [http://www.vtk.org/get-software.php#cvs here].
+
Version control is provided via [http://github.com/pieper/CTK git].  
  
 
== Size of Community ==
 
== Size of Community ==
  
There are over 2500 subscribers to the [http://www.vtk.org/mailman/listinfo/vtkusers vtkusers mailing list].
+
The current size of the community is small, and consists mainly of developers at this point. See the [http://www.commontk.org/index.php/GettingStarted startup guide] if you'd like to join the community.
  
 
== License ==
 
== License ==
  
[http://www.vtk.org/copyright.php The VTK copyright] is an open-source, Berkely-style license. It allows unrestricted use, including use in commercial products. (The only exceptions are software modules found in the patented software directory.)
+
CTK uses an open-source, Berkely-style license. It allows unrestricted use, including use in commercial products.  
  
 
== Future Work ==
 
== Future Work ==
  
VTK is a rapidly expanding software toolkit. While many changes are underway, there are two major areas that impact on NAMIC. Please follow the links to gather more information.
+
CTK is a rapidly expanding software toolkit. See the [http://www.commontk.org/index.php/Documentation whitepaper] for future plans.
# [[InformationVisualizationInVTK|Information visualization]] can be used to explore and interact with non-spatial-temporal data. Examples of such activities include exploring image metadata, performing document analysis, or displaying graphs of biological interactions.
 
# 3D interaction widgets enable the user to directly manipulate and probe their data. Example uses of widgets include manually segmenting data, cropping data to view interior details, and placing fiducials or annotations.
 

Latest revision as of 07:47, 12 May 2010

Home < CTKSummary

This page provides a summary of CTK's role in the NA-MIC Toolkit. To learn more about CTK visit the CTK Website .

Description

The Common ToolKit (CTK) is an open source, freely available software system for providing high-level components for biomedical and scientific computing applications. CTK, which is a very recent effort, is a repository of high-level componentware that combines a broad range of technology including Qt, VTK, Titan (VTK's informatics subsystem), ITK, CMake, Slicer/Slicer Modules and DICOM.

Role in NAMIC

At this point CTK is serving as a software repository for application componentware, and as a vehicle for international collaboration.

Typical Usage

CTK is under active development and use cases are evolving. However, the general idea is that biomedical and scientific computing professionals will be able to quickly combine components from CTK to create targeted applications.

Languages

CTK is written in C++ but will have bindings to Python (at a minimum). These bindings are produced automatically during the software build process. Python is a powerful scientific computing languages that includes packages for numerical computing, web access, data manipulation and more.

Platforms

CTK runs on most Unix, Linux and Windows platforms. Mac OSX is also supported (Jaguar or later.)

Software Dependencies

All platforms require CMake to build. CMake is a cross-platform software build tool. It uses hardware, compiler and operating system neutral configuration files to generate Makefiles, workspaces or projects particular to a particular development environment, so developers can use standard development tools on their target platform.

Documentation, Tutorials and Examples

As CTK is under rapid development, documentation resources are spartan and subject to change. To learn more, we recommend contacting the CTK community.

File Formats Supported

All formats supported by Slicer, VTK, ITK, Qt and DICOM. This includes SQL access (through Qt).

Revision Control

Version control is provided via git.

Size of Community

The current size of the community is small, and consists mainly of developers at this point. See the startup guide if you'd like to join the community.

License

CTK uses an open-source, Berkely-style license. It allows unrestricted use, including use in commercial products.

Future Work

CTK is a rapidly expanding software toolkit. See the whitepaper for future plans.