ITK Google Summer of Code/2013: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
Line 53: Line 53:


'''Mentor:''' Matt McCormick (matt dot mccormick at kitware dot com).
'''Mentor:''' Matt McCormick (matt dot mccormick at kitware dot com).
=== Project: Cloud Enabled Remote ITK Process ===
'''Brief explanation:''' ITK has an extensive set of image image capabilities that are commonly used in desktop and laptop computers. This project will enable web and cloud processing directly in ITK using the python wrapped SimpleITK engine. The resulting application will need to interact with [http://ipython.org/notebook.html IPython Notebooks] to accept user commands and will need to interact with data sources such as JSON, XML and web hosted files/databases for input and output. The benefits of this application are three-fold. First, this will encourage reproducible research by enabling the sharing of the specific algorithms and data. Second, this will enable transparent migration of ITK code from a local installation to the cloud as problem sizes increase. And third, this becomes a powerful teaching tool for algorithms in medical imaging analysis.
'''Expected results:''' A ITK/python based application suitable for cloud processing of distributed data resources.
'''Prerequisites:''' Experience in web development, C++, ITK, and Python.

Revision as of 18:41, 29 March 2013

Project ideas for the Google Summer of Code 2013

Guidelines

Students

These ideas were contributed by developers and users of ITK. If you wish to submit a proposal based on these ideas you should contact the community members identified below to find out more about the idea, get to know the community member that will review your proposal, and receive feedback on your ideas.

The Google Summer of Code program is competitive, and accepted students will usually have thoroughly researched the technologies of their proposed project, been in frequent contact with potential mentors, and ideally have submitted a patch or two to fix bugs in their project (through Gerrit). Kitware makes extensive use of mailing lists, and this would be your best point of initial contact to apply for any of the proposed projects. The mailing lists can be found on the project pages linked in the preceding paragraph. Please see GSoC proposal guidelines for further guidelines on writing your proposal.

Adding Ideas

When adding a new idea to this page, please try to include the following information:

  • A brief explanation of the idea
  • Expected results/feature additions
  • Any prerequisites for working on the project
  • Links to any further information, discussions, bug reports etc
  • Any special mailing lists if not the standard mailing list for ITK
  • Your name and email address for contact (if willing to mentor, or nominated mentor)

Project Ideas

Project page, mailing lists, dashboard.

Project: Examples for Coders

Brief explanation: The ITKExamples project is an attempt to bring an improved, collaboratively develop code example documentation system to ITK and the broader open source community. The project brings features such as Git version controlled development, easy regression testing, self-contained, downloadable examples, support for multiple language, HTML, PDF, and EPub archives, acknowledgements through nightly-generated web-based rendering of git-stats, an index, and visualization.

Expected results: While the local development capabilities have many advantages, a browser-based contribution system is also desired. This has begun with the vcwebedit Sphinx Javascript extension project, but a Git-patch server that acts as a broker is still needed. 3D web-visualization of the 3D medical images via OpenGL with a project like Xtk is also desirable. Finally, more examples are needed.

Prerequisites: Experience in Javascript, Python, Sphinx, and C++ desired.

Mentor: Matt McCormick (matt dot mccormick at kitware dot com). David Doria (daviddoria at gmail dot com)

Project: Improved ObjectFactory backend with CPPMicroServices

Brief explanation: ITK implements the object factory design pattern to allow the dynamic registration of specialized class implementations. It is currently used to provide the variety of ImageIO classes, but the toolkit could also benefit from broader adoption. There are also limitations in adding new ImageIO classes that live outside the main repository, which is possible with the new modular infrastructure in ITKv4.

Expected results: CPPMicroServices is a "library provides a dynamic service registry based on the service layer as specified in the OSGi R4.2 specifications. It enables users to realize a service oriented approach within their software stack." This small, cross platform library could be used to greatly improve the capabilities of the ITK ObjectFactory system by extending the situations where objects can be registered into the factory and object priority can be assigned.

Prerequisites: Experience in C++ and cross-platform development.

Mentor: Matt McCormick (matt dot mccormick at kitware dot com).

Project: A Clang/LLVM based replacement for GCCXML

Brief explanation: The GCCXML project parses C++ source code to create an XML description that can be worked with by other projects. This backend is used by WrapITK to generate SWIG wrappers for ITK. However, there is a high maintenance burden when migrating to a newer GCC backend and making adjustments for newer versions of Visual Studio. The Clang/LLVM project provides a library that to parse source code. A GCCXML replacement based off libclang would be more maintainable.

Expected results: A new project to replace GCCXML based on libclang is created to build WrapITK. A Visual Studio 2010 build of WrapITK.

Prerequisites: Experience in C++. Experience in SWIG would be helpful.

Mentor: Matt McCormick (matt dot mccormick at kitware dot com).


Project: Cloud Enabled Remote ITK Process

Brief explanation: ITK has an extensive set of image image capabilities that are commonly used in desktop and laptop computers. This project will enable web and cloud processing directly in ITK using the python wrapped SimpleITK engine. The resulting application will need to interact with IPython Notebooks to accept user commands and will need to interact with data sources such as JSON, XML and web hosted files/databases for input and output. The benefits of this application are three-fold. First, this will encourage reproducible research by enabling the sharing of the specific algorithms and data. Second, this will enable transparent migration of ITK code from a local installation to the cloud as problem sizes increase. And third, this becomes a powerful teaching tool for algorithms in medical imaging analysis.

Expected results: A ITK/python based application suitable for cloud processing of distributed data resources.

Prerequisites: Experience in web development, C++, ITK, and Python.