<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hata</id>
	<title>Slicer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hata"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/wiki/Special:Contributions/Hata"/>
	<updated>2026-05-07T15:39:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;diff=17119</id>
		<title>File:SlicerNeurosurgeryTutorial-3.6.ppt</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;diff=17119"/>
		<updated>2010-07-01T12:45:58Z</updated>

		<summary type="html">&lt;p&gt;Hata: uploaded a new version of &amp;quot;File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17118</id>
		<title>File:Slicer-tutorial-neurosurgery.zip</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17118"/>
		<updated>2010-07-01T12:45:42Z</updated>

		<summary type="html">&lt;p&gt;Hata: uploaded a new version of &amp;quot;File:Slicer-tutorial-neurosurgery.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17117</id>
		<title>File:Slicer-tutorial-neurosurgery.zip</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17117"/>
		<updated>2010-06-30T20:38:02Z</updated>

		<summary type="html">&lt;p&gt;Hata: uploaded a new version of &amp;quot;File:Slicer-tutorial-neurosurgery.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;diff=17110</id>
		<title>File:SlicerNeurosurgeryTutorial-3.6.ppt</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;diff=17110"/>
		<updated>2010-06-29T23:06:07Z</updated>

		<summary type="html">&lt;p&gt;Hata: uploaded a new version of &amp;quot;File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17109</id>
		<title>File:Slicer-tutorial-neurosurgery.zip</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17109"/>
		<updated>2010-06-29T21:39:24Z</updated>

		<summary type="html">&lt;p&gt;Hata: uploaded a new version of &amp;quot;File:Slicer-tutorial-neurosurgery.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;diff=17106</id>
		<title>File:SlicerNeurosurgeryTutorial-3.6.ppt</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:SlicerNeurosurgeryTutorial-3.6.ppt&amp;diff=17106"/>
		<updated>2010-06-28T19:13:43Z</updated>

		<summary type="html">&lt;p&gt;Hata: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17105</id>
		<title>File:Slicer-tutorial-neurosurgery.zip</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=File:Slicer-tutorial-neurosurgery.zip&amp;diff=17105"/>
		<updated>2010-06-28T19:12:19Z</updated>

		<summary type="html">&lt;p&gt;Hata: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Announcments-3.6-Team&amp;diff=16990</id>
		<title>Announcments-3.6-Team</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Announcments-3.6-Team&amp;diff=16990"/>
		<updated>2010-06-14T19:43:16Z</updated>

		<summary type="html">&lt;p&gt;Hata: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to the [[Announcements:Slicer3.6|Slicer 3.6 announcement]]&lt;br /&gt;
&lt;br /&gt;
Development of Slicer 3.6 has been supported through volunteer work and through a number of funding mechanisms and sources. Please see the [http://www.slicer.org/pages/Acknowledgments Slicer Acknowledgements] page.&lt;br /&gt;
&lt;br /&gt;
Major contributors for the Slicer 3.6 release include (in alphabetic order):&lt;br /&gt;
* [http://www.orobix.com/luca Luca Antiga]: Python integration, CLI&lt;br /&gt;
* [http://www.spl.harvard.edu/pages/People/nicole Nicole Aucoin]: Software development, Fiducials, Informatics&lt;br /&gt;
* [http://kitware.com/company/team/aylward.html Stephen Aylward]: Registration, ITK&lt;br /&gt;
* [http://www.kitware.com/company/team/barre.html Sébastien Barré]: GUI, KWWidgets&lt;br /&gt;
* [http://www.niral.unc.edu/people Francois Budin]: Resampling of scalar images and DTI&lt;br /&gt;
* Andriy Fedorov: ChangeTracker, FastMarching Segmentation, CropVolume, LabelDiameterEstimation, N4ITK Bias field correction, debugging&lt;br /&gt;
* [http://www.kitware.com/company/team/fillion.html Jean-Christophe Fillion-Robin]: CTK, Qt&lt;br /&gt;
* [http://kitware.com/company/team/finet.html Julien Finet]: Volume rendering, CTK&lt;br /&gt;
* [http://kitware.com/company/team/galbreath.html Zack Galbreath]: CDash, Wiki, Sys Admin&lt;br /&gt;
* [http://www.kitware.com/company/team/goodlett.html Casey Goodlett]: Registration&lt;br /&gt;
* [http://www.spl.harvard.edu/~noby Nobuhiko Hata]: IGT modules&lt;br /&gt;
* [http://www.spl.harvard.edu/~hayes Kathryn Hayes]: Release engineering, software development, quality assurance&lt;br /&gt;
* [http://www.kitware.com/company/team/hoffman.html Bill Hoffman]: CMake, CTest, CPack, Software Process&lt;br /&gt;
* [http://kitware.com/company/team/ibanez.html Luis Ibanez]: Registration, Segmentation, ITK, Software Process (Testing)&lt;br /&gt;
* [http://people.csail.mit.edu/sylvain Sylvain Jaume]: SpineSegmentation, MRIBiasFieldCorrection, EMSegment&lt;br /&gt;
* [http://www.uiowa.edu Hans Johnson]: BRAINSFit, BRAINSDemonWarp, BRAINSResample, BRAINSROIAuto&lt;br /&gt;
* [http://kitware.com/company/team/jomier.html Julien Jomier]: MIDAS, CDash&lt;br /&gt;
* [http://www.spl.harvard.edu/~kikinis Ron Kikinis]: Principal Investigator, busboy&lt;br /&gt;
* [http://www.kitware.com/company/team/krishnan.html Karthik Krishnan]: 3D Widgets.&lt;br /&gt;
* [http://perk.cs.queensu.ca/profiles/lasso Andras Lasso]: ProstateNav, clinical testing &amp;amp; bugfixing&lt;br /&gt;
* [http://isp.ncifcrf.gov/abcc Yanling Liu]: Volume rendering.&lt;br /&gt;
* Mahnaz Maddah: EM Clustering of tractography&lt;br /&gt;
* [http://www.uiowa.edu Vincent Magnotta]: IA_FEM Mesh&lt;br /&gt;
* [http://wiki.na-mic.org/Wiki/index.php/User:Millerjv Jim Miller]: CLI, Registration, Lightbox, Compare View, Crosshairs&lt;br /&gt;
* [http://kitware.com/company/team/partyka.html Dave Partyka]: Cross-platform build and installation, CDash&lt;br /&gt;
* [http://www.spl.harvard.edu/~pieper Steve Pieper]: Chief architect, editor&lt;br /&gt;
* [http://www.spl.harvard.edu/pages/People/wjp Wendy Plesniak]: GUI, Informatics&lt;br /&gt;
* [http://www.csail.mit.edu/~pohl Kilian Pohl]: EMSegmenter&lt;br /&gt;
* [http://lmi.bwh.harvard.edu/~spujol/ Sonia Pujol]: Workshops, Tutorials, Testing&lt;br /&gt;
* [http://kitware.com/company/team/schroeder.html Will Schroeder]: VTK, 3D widgets&lt;br /&gt;
* Xiaodong Tao: Diffusion DICOM, Skull stripping, HAMMER, MS Lesion&lt;br /&gt;
* [http://www.niral.unc.edu/people Clement Vachet]: ARCTIC cortical thickness, Shape Analysis module&lt;br /&gt;
* [http://pnl.bwh.harvard.edu/people/profiles/wassermann.html Demian Wassermann]: Diffusion MRI modules, documentation.&lt;br /&gt;
* [http://lmi.bwh.harvard.edu/~westin Carl-Fredrik Westin]: Diffusion MRI overview&lt;br /&gt;
* Andrew Wiles: IGT tool selector, collect patient fiducials&lt;br /&gt;
* [http://www.spl.harvard.edu/~alexy Alex Yarmarkovich]: MRML, DTI modules, software development&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=15233</id>
		<title>Slicer3:BrainlabModule</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=15233"/>
		<updated>2010-05-03T17:37:02Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Feature Request */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Slicer3:Developers#Quick_Links_to_Slicer3_Projects|Back to '''Slicer Projects Page''']]&lt;br /&gt;
= Aim =&lt;br /&gt;
Brainlab (http://www.brainlab.com) offers a customized client/server architecture called '''VectorVision Link (VV Link)''' to enable the communication between the VectorVision Cranial (VVC) system and external IGT applications. The VV Link, open but not free, allows bi-directional real-time data transfer such as image data sets and tool positions. We propose to create a comprehensive workflow to interface 3D Slicer to Brainlab system and to use it for research. Specifically, we create simplified steps for neurosurgeons to use Slicer to perform some research in DTI visualization in OR while Brainlab is used as the primary navigation tool. Here is the scenario:&lt;br /&gt;
&lt;br /&gt;
Brainlab system will run as a standalone application; we won't install any software and hardware on the Brainlab computer and won't affect its FDA status either. Slicer runs on a different computer. These two computers will be connected to each other using a network or router. During surgical procedures, the Brainlab sends real-time tracking data and/or images to Slicer. The tracking information may be used to seed dynamic DTI visualization in Slicer.&lt;br /&gt;
&lt;br /&gt;
= Research Plan =&lt;br /&gt;
Our workflow will include the following steps:&lt;br /&gt;
#Load a scene into Slicer&lt;br /&gt;
#Set up connection between Brainlab and Slicer&lt;br /&gt;
#Navigate with DTI visualization in Slicer as the surgeon performs tracking with Brainlab&lt;br /&gt;
&lt;br /&gt;
We will implement the workflow by developing a Slicer module called '''BrainlabModule'''. This interactive module uses OpenIGTLink (http://www.na-mic.org/Wiki/index.php/OpenIGTLink) for data communication between Brainlab and Slicer, and uses Fiducial, DTMRI and FiducialSeeding modules for DTI visualization. Also, it uses existing Slicer functions to load MRML scenes.&lt;br /&gt;
&lt;br /&gt;
The development of BrainlabModule will be completed in two phases. In the first phase, a simulator will be created. That is, a sequence of synthetic tracking points (not from Brainlab system) will be streamed to Slicer where fiducial-driven DTI visualization will be performed. In the second phase, a real Brainlab system will be needed to test the entire workflow. Upon completion, both modes (Simulator and Brainlab) will co-exist in the module; the user may choose which mode to execute. &lt;br /&gt;
&lt;br /&gt;
Both modes are accompanied by training materials and documentation to ensure usability.&lt;br /&gt;
&lt;br /&gt;
= Comprehensive Tasks Needed to Accomplish the Aim =&lt;br /&gt;
* BrainlabModule on simulation&lt;br /&gt;
* Tutorial writing&lt;br /&gt;
* BrainlabModule with a real Brainlab system through VV Link&lt;br /&gt;
* Tutorial writing&lt;br /&gt;
* BrainlabModule with a real Brainlab system through OpenIGTLink&lt;br /&gt;
* Tutorial updating&lt;br /&gt;
&lt;br /&gt;
=Design of Module=&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow|Version 1 of workflow (as of 04/02/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:ConnectStep|A working version of Connect Step (as of 04/09/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow2|Version 2 of workflow (as of 04/16/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow3|Version 3 of workflow (as of 04/30/2010)]]&lt;br /&gt;
&lt;br /&gt;
=Key Personnel=&lt;br /&gt;
Haiying Liu&amp;lt;br&amp;gt;&lt;br /&gt;
Noby Hata &amp;lt;br&amp;gt;&lt;br /&gt;
Ron Kikinis&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
* Week of 04/26/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** A new dataset for tracking simulation has been generated.&lt;br /&gt;
*** Access to OpenIGTLink module is now through C++ code rather on interface.&lt;br /&gt;
*** Re-design of Connect step. Major changes: 1. Moved Port and Server entries under '''Brainlab''' option; 2. Removed OpenIGTLinkIF button since it's no more needed.&lt;br /&gt;
*** Re-implementation of Navigate step. Major changes: 1. Added Slice Control so that 2D Slice(s) can update automatically following the seeding fiducial; 2. Added Data Module button so that the user can jump to MRML tree to drag the seeding fiducial under the transform node of the tracking simulation.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** Demo the module at the IGT group (Noby's group) meeting to get comments from the team.&lt;br /&gt;
*** Enhance the module following the team's comments.&lt;br /&gt;
&lt;br /&gt;
* Week of 04/12/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** Since Brainlab changed its letter from Brain'''L'''ab to Brain'''l'''ab. Our module has been changed from BrainLabModule to BrainlabModule. This involved many changes in the module, including titles, file names, class names and function names. The new module compiles without any errors.&lt;br /&gt;
*** The Load Step has been implemented.&lt;br /&gt;
*** The Navigate Step has been implemented.&lt;br /&gt;
*** Bug fixing with the thread, which handles the network communication between BrainlabModule and the tracking source. Now the thread can be started and stopped anytime we wanted.&lt;br /&gt;
*** The steps inside the workflow of BrainlabModule may be re-ordered as follows: Load, Connect and Navigate.&lt;br /&gt;
*** The workflow is now working with simulator.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** Access to OpenIGTLink module needs to be programmatically through C++ code.&lt;br /&gt;
*** Dragging a fiducial list node into the child list of a transform node needs to be implemented in C++.&lt;br /&gt;
*** A better version of data for tracking simulation needs to be generated to get better visualization of DTI tractography.&lt;br /&gt;
&lt;br /&gt;
* Week of 04/05/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** The user interface (GUI) has been enhanced and implemented for the Connect Step where the network communication between BrainlabModule and a tracking source is going to be set up. Now we have a working version of Connect Step for tracking simulation. After few configurations, simulated tracking data will be streamed to OpenIGTLink module in Slicer once the Connect button is clicked. The data streaming process may be stopped by clicking the Close button. &lt;br /&gt;
*** Since the connection between BrainlabModule and the tracking source is always on, it's a good idea to have a separate thread to handle the network communication. This will improve the Slicer response to the user interaction. The thread will be stopped by clicking the Close button in the interface.&lt;br /&gt;
*** A stream of simulated tracking data points may be generated inside memory or read from a file. The file IO is chosen since in the future tracking data sets of real surgical cases, which are usually saved in a file, may be used for post-surgical re-examination or just demonstration only.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** OpenIGTLink module is now configured through its interface. This configuration will be required to be implemented programmatically in the C++ code of BrainlabModule.&lt;br /&gt;
*** Implementation of Load Step and Navigate Step will be executed next week.&lt;br /&gt;
&lt;br /&gt;
* Week of 03/29/2010&lt;br /&gt;
** Ron, Noby and Haiying met at Ron's office to discuss the specs of the module and time frame for implementation.&lt;br /&gt;
** Haiying completed the [[Slicer3:BrainLabModule:Workflow|workflow.]]&lt;br /&gt;
&lt;br /&gt;
= Dependency =&lt;br /&gt;
The following modules are required for Brainlab module to work properly:&amp;lt;br&amp;gt;&lt;br /&gt;
Fiducial&amp;lt;br&amp;gt;&lt;br /&gt;
OpenIGTLink&amp;lt;br&amp;gt;&lt;br /&gt;
DTMRI&amp;lt;br&amp;gt;&lt;br /&gt;
FiducialSeeding&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
= Feature Request =&lt;br /&gt;
--[[User:Hata|Hata]] 17:37, 3 May 2010 (UTC)&lt;br /&gt;
*drive the orghogonal slices, with cross-hair marker. The cross-hair should indicate the locations of the slicer of the other two slices.&lt;br /&gt;
*Ability to draw foot print (will explain)&lt;br /&gt;
*Beep in the foot prints, or our any arbitary chosen area&lt;br /&gt;
*Ability to provide endoscopic view&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=15232</id>
		<title>Slicer3:BrainlabModule</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=15232"/>
		<updated>2010-05-03T17:31:42Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Feature Request */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Slicer3:Developers#Quick_Links_to_Slicer3_Projects|Back to '''Slicer Projects Page''']]&lt;br /&gt;
= Aim =&lt;br /&gt;
Brainlab (http://www.brainlab.com) offers a customized client/server architecture called '''VectorVision Link (VV Link)''' to enable the communication between the VectorVision Cranial (VVC) system and external IGT applications. The VV Link, open but not free, allows bi-directional real-time data transfer such as image data sets and tool positions. We propose to create a comprehensive workflow to interface 3D Slicer to Brainlab system and to use it for research. Specifically, we create simplified steps for neurosurgeons to use Slicer to perform some research in DTI visualization in OR while Brainlab is used as the primary navigation tool. Here is the scenario:&lt;br /&gt;
&lt;br /&gt;
Brainlab system will run as a standalone application; we won't install any software and hardware on the Brainlab computer and won't affect its FDA status either. Slicer runs on a different computer. These two computers will be connected to each other using a network or router. During surgical procedures, the Brainlab sends real-time tracking data and/or images to Slicer. The tracking information may be used to seed dynamic DTI visualization in Slicer.&lt;br /&gt;
&lt;br /&gt;
= Research Plan =&lt;br /&gt;
Our workflow will include the following steps:&lt;br /&gt;
#Load a scene into Slicer&lt;br /&gt;
#Set up connection between Brainlab and Slicer&lt;br /&gt;
#Navigate with DTI visualization in Slicer as the surgeon performs tracking with Brainlab&lt;br /&gt;
&lt;br /&gt;
We will implement the workflow by developing a Slicer module called '''BrainlabModule'''. This interactive module uses OpenIGTLink (http://www.na-mic.org/Wiki/index.php/OpenIGTLink) for data communication between Brainlab and Slicer, and uses Fiducial, DTMRI and FiducialSeeding modules for DTI visualization. Also, it uses existing Slicer functions to load MRML scenes.&lt;br /&gt;
&lt;br /&gt;
The development of BrainlabModule will be completed in two phases. In the first phase, a simulator will be created. That is, a sequence of synthetic tracking points (not from Brainlab system) will be streamed to Slicer where fiducial-driven DTI visualization will be performed. In the second phase, a real Brainlab system will be needed to test the entire workflow. Upon completion, both modes (Simulator and Brainlab) will co-exist in the module; the user may choose which mode to execute. &lt;br /&gt;
&lt;br /&gt;
Both modes are accompanied by training materials and documentation to ensure usability.&lt;br /&gt;
&lt;br /&gt;
= Comprehensive Tasks Needed to Accomplish the Aim =&lt;br /&gt;
* BrainlabModule on simulation&lt;br /&gt;
* Tutorial writing&lt;br /&gt;
* BrainlabModule with a real Brainlab system through VV Link&lt;br /&gt;
* Tutorial writing&lt;br /&gt;
* BrainlabModule with a real Brainlab system through OpenIGTLink&lt;br /&gt;
* Tutorial updating&lt;br /&gt;
&lt;br /&gt;
=Design of Module=&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow|Version 1 of workflow (as of 04/02/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:ConnectStep|A working version of Connect Step (as of 04/09/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow2|Version 2 of workflow (as of 04/16/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow3|Version 3 of workflow (as of 04/30/2010)]]&lt;br /&gt;
&lt;br /&gt;
=Key Personnel=&lt;br /&gt;
Haiying Liu&amp;lt;br&amp;gt;&lt;br /&gt;
Noby Hata &amp;lt;br&amp;gt;&lt;br /&gt;
Ron Kikinis&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
* Week of 04/26/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** A new dataset for tracking simulation has been generated.&lt;br /&gt;
*** Access to OpenIGTLink module is now through C++ code rather on interface.&lt;br /&gt;
*** Re-design of Connect step. Major changes: 1. Moved Port and Server entries under '''Brainlab''' option; 2. Removed OpenIGTLinkIF button since it's no more needed.&lt;br /&gt;
*** Re-implementation of Navigate step. Major changes: 1. Added Slice Control so that 2D Slice(s) can update automatically following the seeding fiducial; 2. Added Data Module button so that the user can jump to MRML tree to drag the seeding fiducial under the transform node of the tracking simulation.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** Demo the module at the IGT group (Noby's group) meeting to get comments from the team.&lt;br /&gt;
*** Enhance the module following the team's comments.&lt;br /&gt;
&lt;br /&gt;
* Week of 04/12/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** Since Brainlab changed its letter from Brain'''L'''ab to Brain'''l'''ab. Our module has been changed from BrainLabModule to BrainlabModule. This involved many changes in the module, including titles, file names, class names and function names. The new module compiles without any errors.&lt;br /&gt;
*** The Load Step has been implemented.&lt;br /&gt;
*** The Navigate Step has been implemented.&lt;br /&gt;
*** Bug fixing with the thread, which handles the network communication between BrainlabModule and the tracking source. Now the thread can be started and stopped anytime we wanted.&lt;br /&gt;
*** The steps inside the workflow of BrainlabModule may be re-ordered as follows: Load, Connect and Navigate.&lt;br /&gt;
*** The workflow is now working with simulator.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** Access to OpenIGTLink module needs to be programmatically through C++ code.&lt;br /&gt;
*** Dragging a fiducial list node into the child list of a transform node needs to be implemented in C++.&lt;br /&gt;
*** A better version of data for tracking simulation needs to be generated to get better visualization of DTI tractography.&lt;br /&gt;
&lt;br /&gt;
* Week of 04/05/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** The user interface (GUI) has been enhanced and implemented for the Connect Step where the network communication between BrainlabModule and a tracking source is going to be set up. Now we have a working version of Connect Step for tracking simulation. After few configurations, simulated tracking data will be streamed to OpenIGTLink module in Slicer once the Connect button is clicked. The data streaming process may be stopped by clicking the Close button. &lt;br /&gt;
*** Since the connection between BrainlabModule and the tracking source is always on, it's a good idea to have a separate thread to handle the network communication. This will improve the Slicer response to the user interaction. The thread will be stopped by clicking the Close button in the interface.&lt;br /&gt;
*** A stream of simulated tracking data points may be generated inside memory or read from a file. The file IO is chosen since in the future tracking data sets of real surgical cases, which are usually saved in a file, may be used for post-surgical re-examination or just demonstration only.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** OpenIGTLink module is now configured through its interface. This configuration will be required to be implemented programmatically in the C++ code of BrainlabModule.&lt;br /&gt;
*** Implementation of Load Step and Navigate Step will be executed next week.&lt;br /&gt;
&lt;br /&gt;
* Week of 03/29/2010&lt;br /&gt;
** Ron, Noby and Haiying met at Ron's office to discuss the specs of the module and time frame for implementation.&lt;br /&gt;
** Haiying completed the [[Slicer3:BrainLabModule:Workflow|workflow.]]&lt;br /&gt;
&lt;br /&gt;
= Dependency =&lt;br /&gt;
The following modules are required for Brainlab module to work properly:&amp;lt;br&amp;gt;&lt;br /&gt;
Fiducial&amp;lt;br&amp;gt;&lt;br /&gt;
OpenIGTLink&amp;lt;br&amp;gt;&lt;br /&gt;
DTMRI&amp;lt;br&amp;gt;&lt;br /&gt;
FiducialSeeding&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
= Feature Request =&lt;br /&gt;
*Ability to identify images for navigation&lt;br /&gt;
*Ability to drive the orghogonal slices, with cross-hair marker. The cross-hair should indicate the locations of the slicer of the other two slices.&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=14625</id>
		<title>Slicer3:BrainlabModule</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=14625"/>
		<updated>2010-04-28T17:44:04Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Research Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Slicer3:Developers#Quick_Links_to_Slicer3_Projects|Back to '''Slicer Projects Page''']]&lt;br /&gt;
= Aim =&lt;br /&gt;
Brainlab (http://www.brainlab.com) offers a customized client/server architecture called '''VectorVision Link (VV Link)''' to communicate with external IGT environment [NH be more specific. what is environment?]. This software API [NH spell out, API is a customized client/server environment or just a subset of it?], open but not free, allows other programs to acquire tracking information [NH information is a fuzzy word. be more specific] and images from the Brainlab system. We propose to create a comprehensive workflow to interface 3D Slicer to Brainlab system and to use it for research. Specifically, we create simplified steps for neurosurgeons to use Slicer to perform some research in DTI visualization in OR while Brainlab is used as the primary navigation tool. Here is the scenario:&lt;br /&gt;
&lt;br /&gt;
Brainlab system will still run as usual [NH awkward]; we won't install any software and hardware on the Brainlab computer and won't affect its FDA status either. Slicer runs on a different computer. These two computers will be connected to each other using a network or router. During surgical procedures, the Brainlab sends real-time tracking data and/or images to Slicer. The tracking information may be used to seed dynamic DTI visualization in Slicer.&lt;br /&gt;
&lt;br /&gt;
= Research Plan =&lt;br /&gt;
Our workflow will include the following steps:&lt;br /&gt;
#Load a scene (default or user specific) into Slicer&lt;br /&gt;
#Set up connection between Brainlab and Slicer&lt;br /&gt;
#Navigate with DTI visualization in Slicer as the surgeon performs tracking with Brainlab&lt;br /&gt;
&lt;br /&gt;
This will hopefully [NH no need to say hope in the technical note] help the surgeon [ the surgeon or a surgeon?] efficiently integrate Slicer with Brainlab [NH surgeons don't want integration ration. surgeons need benefit]. We will implement the workflow by developing a Slicer module called '''BrainlabModule'''. This interactive module uses OpenIGTLink (http://www.na-mic.org/Wiki/index.php/OpenIGTLink) for data communication between Brainlab and Slicer, and uses Fiducial, DTMRI and FiducialSeeding modules for DTI visualization. Also, it uses existing Slicer functions to load MRML scenes.&lt;br /&gt;
&lt;br /&gt;
The development of BrainlabModule will be completed in two phases. In the first phase, a simulator will be created. That is, a sequence of synthetic tracking points (not from Brainlab system) will be streamed to Slicer where fiducial-driven DTI visualization will be performed. In the second phase, a real Brainlab system will be needed to test the entire workflow. Upon completion, both modes (Simulator and Brainlab) will co-exist in the module; the user may choose which mode to execute. &lt;br /&gt;
&lt;br /&gt;
Both modes are accompanied by training materials and documentation to ensure usability.&lt;br /&gt;
&lt;br /&gt;
= Comprehensive tasks needed to accomplish the aim =&lt;br /&gt;
==TO BE FILLED G NOBY==&lt;br /&gt;
&lt;br /&gt;
=Design of Module=&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow|Version 1 of workflow (as of 04/02/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:ConnectStep|A working version of Connect Step (as of 04/09/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow2|Version 2 of workflow (as of 04/16/2010)]]&lt;br /&gt;
&lt;br /&gt;
=Key Personnel=&lt;br /&gt;
Haiying Liu&amp;lt;br&amp;gt;&lt;br /&gt;
Noby Hata &amp;lt;br&amp;gt;&lt;br /&gt;
Ron Kikinis&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
* Week of 04/12/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** Since Brainlab changed its letter from Brain'''L'''ab to Brain'''l'''ab. Our module has been changed from BrainLabModule to BrainlabModule. This involved many changes in the module, including titles, file names, class names and function names. The new module compiles without any errors.&lt;br /&gt;
*** The Load Step has been implemented.&lt;br /&gt;
*** The Navigate Step has been implemented.&lt;br /&gt;
*** Bug fixing with the thread, which handles the network communication between BrainlabModule and the tracking source. Now the thread can be started and stopped anytime we wanted.&lt;br /&gt;
*** The steps inside the workflow of BrainlabModule may be re-ordered as follows: Load, Connect and Navigate.&lt;br /&gt;
*** The workflow is now working with simulator.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** Access to OpenIGTLink module needs to be programmatically through C++ code.&lt;br /&gt;
*** Dragging a fiducial list node into the child list of a transform node needs to be implemented in C++.&lt;br /&gt;
*** A better version of data for tracking simulation needs to be generated to get better visualization of DTI tractography.&lt;br /&gt;
&lt;br /&gt;
* Week of 04/05/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** The user interface (GUI) has been enhanced and implemented for the Connect Step where the network communication between BrainlabModule and a tracking source is going to be set up. Now we have a working version of Connect Step for tracking simulation. After few configurations, simulated tracking data will be streamed to OpenIGTLink module in Slicer once the Connect button is clicked. The data streaming process may be stopped by clicking the Close button. &lt;br /&gt;
*** Since the connection between BrainlabModule and the tracking source is always on, it's a good idea to have a separate thread to handle the network communication. This will improve the Slicer response to the user interaction. The thread will be stopped by clicking the Close button in the interface.&lt;br /&gt;
*** A stream of simulated tracking data points may be generated inside memory or read from a file. The file IO is chosen since in the future tracking data sets of real surgical cases, which are usually saved in a file, may be used for post-surgical re-examination or just demonstration only.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** OpenIGTLink module is now configured through its interface. This configuration will be required to be implemented programmatically in the C++ code of BrainlabModule.&lt;br /&gt;
*** Implementation of Load Step and Navigate Step will be executed next week.&lt;br /&gt;
&lt;br /&gt;
* Week of 03/29/2010&lt;br /&gt;
** Ron, Noby and Haiying met at Ron's office to discuss the specs of the module and time frame for implementation.&lt;br /&gt;
** Haiying completed the [[Slicer3:BrainLabModule:Workflow|workflow.]]&lt;br /&gt;
&lt;br /&gt;
= Dependency =&lt;br /&gt;
The following modules are required for Brainlab module to work properly:&amp;lt;br&amp;gt;&lt;br /&gt;
Fiducial&amp;lt;br&amp;gt;&lt;br /&gt;
OpenIGTLink&amp;lt;br&amp;gt;&lt;br /&gt;
DTMRI&amp;lt;br&amp;gt;&lt;br /&gt;
FiducialSeeding&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
= Feature Request =&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=14624</id>
		<title>Slicer3:BrainlabModule</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=14624"/>
		<updated>2010-04-28T17:31:47Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Research Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Slicer3:Developers#Quick_Links_to_Slicer3_Projects|Back to '''Slicer Projects Page''']]&lt;br /&gt;
= Aim =&lt;br /&gt;
Brainlab (http://www.brainlab.com) offers a customized client/server architecture called '''VectorVision Link (VV Link)''' to communicate with external IGT environment [NH be more specific. what is environment?]. This software API [NH spell out, API is a customized client/server environment or just a subset of it?], open but not free, allows other programs to acquire tracking information [NH information is a fuzzy word. be more specific] and images from the Brainlab system. We propose to create a comprehensive workflow to interface 3D Slicer to Brainlab system and to use it for research. Specifically, we create simplified steps for neurosurgeons to use Slicer to perform some research in DTI visualization in OR while Brainlab is used as the primary navigation tool. Here is the scenario:&lt;br /&gt;
&lt;br /&gt;
Brainlab system will still run as usual [NH awkward]; we won't install any software and hardware on the Brainlab computer and won't affect its FDA status either. Slicer runs on a different computer. These two computers will be connected to each other using a network or router. During surgical procedures, the Brainlab sends real-time tracking data and/or images to Slicer. The tracking information may be used to seed dynamic DTI visualization in Slicer.&lt;br /&gt;
&lt;br /&gt;
= Research Plan =&lt;br /&gt;
Our workflow will include the following steps:&lt;br /&gt;
#Load a scene (default or user specific) into Slicer&lt;br /&gt;
#Set up connection between Brainlab and Slicer&lt;br /&gt;
#Navigate with DTI visualization in Slicer as the surgeon performs tracking with Brainlab&lt;br /&gt;
&lt;br /&gt;
This will hopefully [NH no need to say hope in the technical note] help the surgeon [ the surgeon or a surgeon?] efficiently integrate Slicer with Brainlab [NH surgeons don't want integration ration. surgeons need benefit]. We will implement the workflow by developing a Slicer module called '''BrainlabModule'''. This interactive module uses OpenIGTLink (http://www.na-mic.org/Wiki/index.php/OpenIGTLink) for data communication between Brainlab and Slicer, and uses Fiducial, DTMRI and FiducialSeeding modules for DTI visualization. Also, it uses existing Slicer functions to load MRML scenes.&lt;br /&gt;
&lt;br /&gt;
The development of BrainlabModule will be completed in two phases. In the first phase, a simulator will be created. That is, a sequence of synthetic tracking points (not from Brainlab system) will be streamed to Slicer where fiducial-driven DTI visualization will be performed. In the second phase, a real Brainlab system will be needed to test the entire workflow. Upon completion, both modes (Simulator and Brainlab) will co-exist in the module; the user may choose which mode to execute. &lt;br /&gt;
&lt;br /&gt;
Both modes are accompanied by training materials and documentation to ensure usability.&lt;br /&gt;
&lt;br /&gt;
=Design of Module=&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow|Version 1 of workflow (as of 04/02/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:ConnectStep|A working version of Connect Step (as of 04/09/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow2|Version 2 of workflow (as of 04/16/2010)]]&lt;br /&gt;
&lt;br /&gt;
=Key Personnel=&lt;br /&gt;
Haiying Liu&amp;lt;br&amp;gt;&lt;br /&gt;
Noby Hata &amp;lt;br&amp;gt;&lt;br /&gt;
Ron Kikinis&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
* Week of 04/12/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** Since Brainlab changed its letter from Brain'''L'''ab to Brain'''l'''ab. Our module has been changed from BrainLabModule to BrainlabModule. This involved many changes in the module, including titles, file names, class names and function names. The new module compiles without any errors.&lt;br /&gt;
*** The Load Step has been implemented.&lt;br /&gt;
*** The Navigate Step has been implemented.&lt;br /&gt;
*** Bug fixing with the thread, which handles the network communication between BrainlabModule and the tracking source. Now the thread can be started and stopped anytime we wanted.&lt;br /&gt;
*** The steps inside the workflow of BrainlabModule may be re-ordered as follows: Load, Connect and Navigate.&lt;br /&gt;
*** The workflow is now working with simulator.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** Access to OpenIGTLink module needs to be programmatically through C++ code.&lt;br /&gt;
*** Dragging a fiducial list node into the child list of a transform node needs to be implemented in C++.&lt;br /&gt;
*** A better version of data for tracking simulation needs to be generated to get better visualization of DTI tractography.&lt;br /&gt;
&lt;br /&gt;
* Week of 04/05/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** The user interface (GUI) has been enhanced and implemented for the Connect Step where the network communication between BrainlabModule and a tracking source is going to be set up. Now we have a working version of Connect Step for tracking simulation. After few configurations, simulated tracking data will be streamed to OpenIGTLink module in Slicer once the Connect button is clicked. The data streaming process may be stopped by clicking the Close button. &lt;br /&gt;
*** Since the connection between BrainlabModule and the tracking source is always on, it's a good idea to have a separate thread to handle the network communication. This will improve the Slicer response to the user interaction. The thread will be stopped by clicking the Close button in the interface.&lt;br /&gt;
*** A stream of simulated tracking data points may be generated inside memory or read from a file. The file IO is chosen since in the future tracking data sets of real surgical cases, which are usually saved in a file, may be used for post-surgical re-examination or just demonstration only.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** OpenIGTLink module is now configured through its interface. This configuration will be required to be implemented programmatically in the C++ code of BrainlabModule.&lt;br /&gt;
*** Implementation of Load Step and Navigate Step will be executed next week.&lt;br /&gt;
&lt;br /&gt;
* Week of 03/29/2010&lt;br /&gt;
** Ron, Noby and Haiying met at Ron's office to discuss the specs of the module and time frame for implementation.&lt;br /&gt;
** Haiying completed the [[Slicer3:BrainLabModule:Workflow|workflow.]]&lt;br /&gt;
&lt;br /&gt;
= Dependency =&lt;br /&gt;
The following modules are required for Brainlab module to work properly:&amp;lt;br&amp;gt;&lt;br /&gt;
Fiducial&amp;lt;br&amp;gt;&lt;br /&gt;
OpenIGTLink&amp;lt;br&amp;gt;&lt;br /&gt;
DTMRI&amp;lt;br&amp;gt;&lt;br /&gt;
FiducialSeeding&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
= Feature Request =&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=14623</id>
		<title>Slicer3:BrainlabModule</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:BrainlabModule&amp;diff=14623"/>
		<updated>2010-04-28T17:29:55Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Aim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Slicer3:Developers#Quick_Links_to_Slicer3_Projects|Back to '''Slicer Projects Page''']]&lt;br /&gt;
= Aim =&lt;br /&gt;
Brainlab (http://www.brainlab.com) offers a customized client/server architecture called '''VectorVision Link (VV Link)''' to communicate with external IGT environment [NH be more specific. what is environment?]. This software API [NH spell out, API is a customized client/server environment or just a subset of it?], open but not free, allows other programs to acquire tracking information [NH information is a fuzzy word. be more specific] and images from the Brainlab system. We propose to create a comprehensive workflow to interface 3D Slicer to Brainlab system and to use it for research. Specifically, we create simplified steps for neurosurgeons to use Slicer to perform some research in DTI visualization in OR while Brainlab is used as the primary navigation tool. Here is the scenario:&lt;br /&gt;
&lt;br /&gt;
Brainlab system will still run as usual [NH awkward]; we won't install any software and hardware on the Brainlab computer and won't affect its FDA status either. Slicer runs on a different computer. These two computers will be connected to each other using a network or router. During surgical procedures, the Brainlab sends real-time tracking data and/or images to Slicer. The tracking information may be used to seed dynamic DTI visualization in Slicer.&lt;br /&gt;
&lt;br /&gt;
= Research Plan =&lt;br /&gt;
Our workflow will include the following steps:&lt;br /&gt;
#Load a scene (default or user specific) into Slicer&lt;br /&gt;
#Set up connection between Brainlab and Slicer&lt;br /&gt;
#Navigate with DTI visualization in Slicer as the surgeon performs tracking with Brainlab&lt;br /&gt;
&lt;br /&gt;
This will hopefully help the surgeon efficiently integrate Slicer with Brainlab. We will implement the workflow by developing a Slicer module called '''BrainlabModule'''. This interactive module uses OpenIGTLink (http://www.na-mic.org/Wiki/index.php/OpenIGTLink) for data communication between Brainlab and Slicer, and uses Fiducial, DTMRI and FiducialSeeding modules for DTI visualization. Also, it uses existing Slicer functions to load MRML scenes.&lt;br /&gt;
&lt;br /&gt;
The development of BrainlabModule will be completed in two phases. In the first phase, a Brainlab simulator will be created. That is, a sequence of synthetic tracking points (not from Brainlab system) will be streamed to Slicer where fiducial-driven DTI visualization will be performed. In the second phase, a real Brainlab system will be needed to test the entire workflow. Upon completion, both modes (Simulator and Brainlab) will co-exist in the module; the user may choose which mode to execute. &lt;br /&gt;
&lt;br /&gt;
Both modes are accompanied by training materials and documentation to ensure usability.&lt;br /&gt;
&lt;br /&gt;
=Design of Module=&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow|Version 1 of workflow (as of 04/02/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:ConnectStep|A working version of Connect Step (as of 04/09/2010)]]&lt;br /&gt;
*[[Slicer3:BrainlabModule:Workflow2|Version 2 of workflow (as of 04/16/2010)]]&lt;br /&gt;
&lt;br /&gt;
=Key Personnel=&lt;br /&gt;
Haiying Liu&amp;lt;br&amp;gt;&lt;br /&gt;
Noby Hata &amp;lt;br&amp;gt;&lt;br /&gt;
Ron Kikinis&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
* Week of 04/12/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** Since Brainlab changed its letter from Brain'''L'''ab to Brain'''l'''ab. Our module has been changed from BrainLabModule to BrainlabModule. This involved many changes in the module, including titles, file names, class names and function names. The new module compiles without any errors.&lt;br /&gt;
*** The Load Step has been implemented.&lt;br /&gt;
*** The Navigate Step has been implemented.&lt;br /&gt;
*** Bug fixing with the thread, which handles the network communication between BrainlabModule and the tracking source. Now the thread can be started and stopped anytime we wanted.&lt;br /&gt;
*** The steps inside the workflow of BrainlabModule may be re-ordered as follows: Load, Connect and Navigate.&lt;br /&gt;
*** The workflow is now working with simulator.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** Access to OpenIGTLink module needs to be programmatically through C++ code.&lt;br /&gt;
*** Dragging a fiducial list node into the child list of a transform node needs to be implemented in C++.&lt;br /&gt;
*** A better version of data for tracking simulation needs to be generated to get better visualization of DTI tractography.&lt;br /&gt;
&lt;br /&gt;
* Week of 04/05/2010&lt;br /&gt;
** Work '''DONE''':&lt;br /&gt;
*** The user interface (GUI) has been enhanced and implemented for the Connect Step where the network communication between BrainlabModule and a tracking source is going to be set up. Now we have a working version of Connect Step for tracking simulation. After few configurations, simulated tracking data will be streamed to OpenIGTLink module in Slicer once the Connect button is clicked. The data streaming process may be stopped by clicking the Close button. &lt;br /&gt;
*** Since the connection between BrainlabModule and the tracking source is always on, it's a good idea to have a separate thread to handle the network communication. This will improve the Slicer response to the user interaction. The thread will be stopped by clicking the Close button in the interface.&lt;br /&gt;
*** A stream of simulated tracking data points may be generated inside memory or read from a file. The file IO is chosen since in the future tracking data sets of real surgical cases, which are usually saved in a file, may be used for post-surgical re-examination or just demonstration only.&lt;br /&gt;
** To do list:&lt;br /&gt;
*** OpenIGTLink module is now configured through its interface. This configuration will be required to be implemented programmatically in the C++ code of BrainlabModule.&lt;br /&gt;
*** Implementation of Load Step and Navigate Step will be executed next week.&lt;br /&gt;
&lt;br /&gt;
* Week of 03/29/2010&lt;br /&gt;
** Ron, Noby and Haiying met at Ron's office to discuss the specs of the module and time frame for implementation.&lt;br /&gt;
** Haiying completed the [[Slicer3:BrainLabModule:Workflow|workflow.]]&lt;br /&gt;
&lt;br /&gt;
= Dependency =&lt;br /&gt;
The following modules are required for Brainlab module to work properly:&amp;lt;br&amp;gt;&lt;br /&gt;
Fiducial&amp;lt;br&amp;gt;&lt;br /&gt;
OpenIGTLink&amp;lt;br&amp;gt;&lt;br /&gt;
DTMRI&amp;lt;br&amp;gt;&lt;br /&gt;
FiducialSeeding&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
= Feature Request =&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:Working_Through_of_IGT_Modules&amp;diff=12925</id>
		<title>Slicer3:Working Through of IGT Modules</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:Working_Through_of_IGT_Modules&amp;diff=12925"/>
		<updated>2010-03-30T18:10:51Z</updated>

		<summary type="html">&lt;p&gt;Hata: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Installation=&lt;br /&gt;
&lt;br /&gt;
*Step 1) Install Slicer 3&lt;br /&gt;
*Step 2) Install Tracker simulator&lt;br /&gt;
&lt;br /&gt;
==Install Slicer3==&lt;br /&gt;
&lt;br /&gt;
* Install Slicer 3 using either of the followin options.&lt;br /&gt;
**Windows 32 bit, Mac OS, Linux 32 bit: Slicer3 nightly build can be downloaded from here: http://www.slicer.org/pages/Special:SlicerDownloads. Some bug fixes have been checked in recently. Please download a Slicer binary for your computer, which is newer than April 20, 2009.&lt;br /&gt;
**Linux 64bit: A working Slicer3 binary (Linux, x86 64-bit) is also available for download from here: [[Media:Slicer3-3.3-alpha-2009-04-17-linux-x86_64.tar.gz|Slicer3-3.3_Linux_x86_64]].&lt;br /&gt;
* Install Slicer on your computer. If you run Windows, use the installer; otherwise, unzip the binary to your preferred location.&lt;br /&gt;
&lt;br /&gt;
=Install Tracker Simulator=&lt;br /&gt;
The tracking simulator will be used to generate and send fake tracking data to Slicer3. Download and unzip a precompiled version (binary):&lt;br /&gt;
* [[Media:TrackerClient_Win_x86_32.zip|For Windows (32-bit)]].&lt;br /&gt;
* [[Media:TrackerClient_Darwin_x86.tgz |For Mac OS X (x86)]].&lt;br /&gt;
* [[Media:TrackerClient_Linux_x86_32.tgz|For Linux (x86, 32-bit)]].&lt;br /&gt;
* [[Media:TrackerClient_Linux_x86_64.tgz|For Linux (x86, 64-bit)]].&lt;br /&gt;
&lt;br /&gt;
==Download Datasets==&lt;br /&gt;
&lt;br /&gt;
* Tutorial images can be downloaded here: [[Media:Tutorial_images.tar.gz|sample datasets]].&lt;br /&gt;
&lt;br /&gt;
=Run IGT Modules=&lt;br /&gt;
* Basic Slicer3 navigation tutorial: http://wiki.na-mic.org/Wiki/index.php/IGT:ToolKit/Navigation-tutorial.&lt;br /&gt;
* Advanced Slicer3 navigation tutorial: http://wiki.na-mic.org/Wiki/index.php/IGT:ToolKit/Navigation-with-Aurora.&lt;br /&gt;
* Real-time fiducial seeding of DTI tractography: http://www.slicer.org/slicerWiki/index.php?title=Slicer3%3ABrainLab_Integration.&lt;br /&gt;
* IGT module tutorials: http://www.na-mic.org/Wiki/index.php/IGT:ToolKit.&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:Working_Through_of_IGT_Modules&amp;diff=12923</id>
		<title>Slicer3:Working Through of IGT Modules</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:Working_Through_of_IGT_Modules&amp;diff=12923"/>
		<updated>2010-03-30T18:09:26Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Install Slicer3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Install Slicer3=&lt;br /&gt;
&lt;br /&gt;
* Install Slicer 3 using either of the followin options.&lt;br /&gt;
**Windows 32 bit, Mac OS, Linux 32 bit: Slicer3 nightly build can be downloaded from here: http://www.slicer.org/pages/Special:SlicerDownloads. Some bug fixes have been checked in recently. Please download a Slicer binary for your computer, which is newer than April 20, 2009.&lt;br /&gt;
**Linux 64bit: A working Slicer3 binary (Linux, x86 64-bit) is also available for download from here: [[Media:Slicer3-3.3-alpha-2009-04-17-linux-x86_64.tar.gz|Slicer3-3.3_Linux_x86_64]].&lt;br /&gt;
* Install Slicer on your computer. If you run Windows, use the installer; otherwise, unzip the binary to your preferred location.&lt;br /&gt;
&lt;br /&gt;
=Install Tracker Simulator=&lt;br /&gt;
The tracking simulator will be used to generate and send fake tracking data to Slicer3. Download and unzip a precompiled version (binary):&lt;br /&gt;
* [[Media:TrackerClient_Win_x86_32.zip|For Windows (32-bit)]].&lt;br /&gt;
* [[Media:TrackerClient_Darwin_x86.tgz |For Mac OS X (x86)]].&lt;br /&gt;
* [[Media:TrackerClient_Linux_x86_32.tgz|For Linux (x86, 32-bit)]].&lt;br /&gt;
* [[Media:TrackerClient_Linux_x86_64.tgz|For Linux (x86, 64-bit)]].&lt;br /&gt;
&lt;br /&gt;
=Download Datasets=&lt;br /&gt;
&lt;br /&gt;
* Tutorial images can be downloaded here: [[Media:Tutorial_images.tar.gz|sample datasets]].&lt;br /&gt;
&lt;br /&gt;
=Run IGT Modules=&lt;br /&gt;
* Basic Slicer3 navigation tutorial: http://wiki.na-mic.org/Wiki/index.php/IGT:ToolKit/Navigation-tutorial.&lt;br /&gt;
* Advanced Slicer3 navigation tutorial: http://wiki.na-mic.org/Wiki/index.php/IGT:ToolKit/Navigation-with-Aurora.&lt;br /&gt;
* Real-time fiducial seeding of DTI tractography: http://www.slicer.org/slicerWiki/index.php?title=Slicer3%3ABrainLab_Integration.&lt;br /&gt;
* IGT module tutorials: http://www.na-mic.org/Wiki/index.php/IGT:ToolKit.&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:Working_Through_of_IGT_Modules&amp;diff=12922</id>
		<title>Slicer3:Working Through of IGT Modules</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:Working_Through_of_IGT_Modules&amp;diff=12922"/>
		<updated>2010-03-30T18:07:28Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Install Slicer3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Install Slicer3=&lt;br /&gt;
&lt;br /&gt;
* Install Slicer 3 using either of the followin options.&lt;br /&gt;
**Slicer3 nightly build can be downloaded from here: http://www.slicer.org/pages/Special:SlicerDownloads. Some bug fixes have been checked in recently. Please download a Slicer binary for your computer, which is newer than April 20, 2009.&lt;br /&gt;
** A working Slicer3 binary (Linux, x86 64-bit) is also available for download from here: [[Media:Slicer3-3.3-alpha-2009-04-17-linux-x86_64.tar.gz|Slicer3-3.3_Linux_x86_64]].&lt;br /&gt;
* Install Slicer on your computer. If you run Windows, use the installer; otherwise, unzip the binary to your preferred location.&lt;br /&gt;
&lt;br /&gt;
=Install Tracker Simulator=&lt;br /&gt;
The tracking simulator will be used to generate and send fake tracking data to Slicer3. Download and unzip a precompiled version (binary):&lt;br /&gt;
* [[Media:TrackerClient_Win_x86_32.zip|For Windows (32-bit)]].&lt;br /&gt;
* [[Media:TrackerClient_Darwin_x86.tgz |For Mac OS X (x86)]].&lt;br /&gt;
* [[Media:TrackerClient_Linux_x86_32.tgz|For Linux (x86, 32-bit)]].&lt;br /&gt;
* [[Media:TrackerClient_Linux_x86_64.tgz|For Linux (x86, 64-bit)]].&lt;br /&gt;
&lt;br /&gt;
=Download Datasets=&lt;br /&gt;
&lt;br /&gt;
* Tutorial images can be downloaded here: [[Media:Tutorial_images.tar.gz|sample datasets]].&lt;br /&gt;
&lt;br /&gt;
=Run IGT Modules=&lt;br /&gt;
* Basic Slicer3 navigation tutorial: http://wiki.na-mic.org/Wiki/index.php/IGT:ToolKit/Navigation-tutorial.&lt;br /&gt;
* Advanced Slicer3 navigation tutorial: http://wiki.na-mic.org/Wiki/index.php/IGT:ToolKit/Navigation-with-Aurora.&lt;br /&gt;
* Real-time fiducial seeding of DTI tractography: http://www.slicer.org/slicerWiki/index.php?title=Slicer3%3ABrainLab_Integration.&lt;br /&gt;
* IGT module tutorials: http://www.na-mic.org/Wiki/index.php/IGT:ToolKit.&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:BrainLabModule&amp;diff=12920</id>
		<title>Slicer3:BrainLabModule</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:BrainLabModule&amp;diff=12920"/>
		<updated>2010-03-30T18:05:47Z</updated>

		<summary type="html">&lt;p&gt;Hata: Created page with 'Back to Slicer ARRA home page = Aim = Medical images often contain a wealth of information, such as anatomy and pathology, not explicitly accessible. …'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Projects:ARRASuplements|Back to Slicer ARRA home page]]&lt;br /&gt;
= Aim =&lt;br /&gt;
Medical images often contain a wealth of information, such as anatomy and pathology, not explicitly accessible. One way to address this issue is via image annotation and markup. We propose to create a comprehensive framework for annotation and markup within 3D Slicer, enabling users to capture structured information easily. Furthermore, we will develop schemas for saving and recovering this information into and from XNAT, allowing queries of larger data sets of medical scans. This tool will provide clinicians with a relatively simple way to capture information latent in medical scans, and also to select micro-cohorts of medical scans for studying diseases.&lt;br /&gt;
&lt;br /&gt;
= Research Plan =&lt;br /&gt;
3D Slicer currently provides very basic technology for annotating images. This limits users in their ability to properly capture semantic information contained in images and data sets. We propose to address this issue by expanding Slicer's mark up and annotation capabilities. New features will include: &lt;br /&gt;
* a rich set of geometric objects for improved visual differentiation between annotations&lt;br /&gt;
* markers for measuring anatomical characteristics, such as the volume of an annotated region, to provide patient specific information difficult to extract from visual inspection&lt;br /&gt;
* entry fields beyond free-text, such as graphics and external data, to capture comprehensive information and support for emerging domain specific ontologiesand &lt;br /&gt;
* a full integration of these capabilities with the mrml tree to support Scenesnapshots, load, save both to disk and XNAT.&lt;br /&gt;
&lt;br /&gt;
We will implement these features by developing two different modules. The first module, called Marker Module, creates different types of markers based on current ITK technology. The user defines the appearance of the marker by specifying its color, size, and shape, such as points and 3D boxes. The user also labels each marker with tags and specifies its function, such as measuring the volume of a region.&lt;br /&gt;
&lt;br /&gt;
The Annotation Module, the second module, provides the interface for annotating images with these markers. Users place the markers on the image and further specify the semantic information through free text, plots, and references to ontology and internet. The annotations are shown both in 3D and 2D viewers. The module also allows annotating entire scenes by linking annotations across images, as well as within an image. All annotations are stored in a database targeted towards medical imaging, called XNAT. The structure of the database is automatically defined by the tags of the markers. Thus, users can query across large image data sets by looking for specific tag values. &lt;br /&gt;
&lt;br /&gt;
Both modules are accompanied by training materials and documentation to ensure usability.&lt;br /&gt;
=Design of Module=&lt;br /&gt;
* Current [[Media:AMI-GUI-Design.ppt | GUI ]] outline - [[Media:SlicerAM QtAnnotation.png | Screenhot]] in Slicer &lt;br /&gt;
* Suggested [[Media:AMI_MRMLMarkUpNode.ppt | MRML ]] outline&lt;br /&gt;
&lt;br /&gt;
=Key Personnel=&lt;br /&gt;
60% Kilian Pohl &amp;lt;BR&amp;gt;&lt;br /&gt;
95% Yong Zhang&lt;br /&gt;
&lt;br /&gt;
=Events=&lt;br /&gt;
* 12/16/09 - 12/17/09 [[Dec-2009-SlicerAIMBrainstorming | Annotation Brain Storming]]&lt;br /&gt;
* 01/06/10 [[AHM2010:AnnotationBreakout | Break out session]] at AHM 2010&lt;br /&gt;
* 01/19/10 Biweekly Annotation Tcon from 4:00 - 5:00 pm EST (next meeting 2/9): Tel: (218) 862-1115 Conference ID: 348265#, [https://www.lotuslive.com/join?schedid=4572317 Desktop Sharing ]&lt;br /&gt;
&lt;br /&gt;
=Progress=&lt;br /&gt;
* 03/26/10&lt;br /&gt;
** The property restoration is now implemented properly.&lt;br /&gt;
** Property Modification is re-designed to simplify the operation.&lt;br /&gt;
** Removed bug: ruler/angle disappear after adding fiducials &lt;br /&gt;
** Removed BUG: in property dialog, when editing the text, the character is entered from right to left.&lt;br /&gt;
** include lock annotation into option button (use same logic as for new (De)select All button)&lt;br /&gt;
** For each annotation type provide list outlining which display property can be changed, which cannot , and which one you do not know &lt;br /&gt;
** Resolved BUG: When saving a report with a file name that already exists then the following message appears in the command shell &amp;quot;Error: cannot make directory&amp;quot; and directory with files is not updated&lt;br /&gt;
** Resolved BUG: Annotation Properties: (Un)selected color is initially white even though widget in 3D viewer is different&lt;br /&gt;
** Resolved BUG: Select Color window does not show the correct color&lt;br /&gt;
** Resolved BUG: Selected and Unselected Color are switched&lt;br /&gt;
** Define Tooltips for fiducial, angle, ruler,report, save mrml button&lt;br /&gt;
** In table: Add proper tool tip for visualization and edit button&lt;br /&gt;
** Resolved BUG: when saving report with out ending html to the file name - icons will not be saved under Linux&lt;br /&gt;
** Created Test Module for testing miAnnotation logic&lt;br /&gt;
** In collaboration with  Nicole Aucoin figured out line display bug in 3D Viewer &lt;br /&gt;
** Use the Kitware slider and colorPicker under Display Property&lt;br /&gt;
** Fixed BUG: Slicer crashes when creating an annotation while Display properties is open, and when closing the property window and then pressing edit for the new annotation&lt;br /&gt;
&lt;br /&gt;
* 03/19/10&lt;br /&gt;
** In the property window display properties are shown via collapsed frame by default&lt;br /&gt;
** List all attributes for text/point/line and implement those that can be modified&lt;br /&gt;
** Fixed BUG: When pressing the property button warning messages pop up in my command shell &lt;br /&gt;
** Annotation Properties: For Angle and Ruler Widget also shows now values of AnnotationDisplayNode and AnnotationControlPointsNode&lt;br /&gt;
** Change design of html report &lt;br /&gt;
** Implemented text edition and update for ruler and angle widgets.&lt;br /&gt;
** Changed the default mouse mode icon to MousePick.&lt;br /&gt;
** Modified Report Dialog to avoid horizontal slider when screen shot is included in the report.&lt;br /&gt;
** Removed multiple warning messages.&lt;br /&gt;
** Fixed Bug in Report: empty text fields are displayed without boundaries &lt;br /&gt;
** Ruler Distance is now displayed just in mm &lt;br /&gt;
** After talking to BWH changed name of tool from Reporting to miAnnotation&lt;br /&gt;
* 03/12/10&lt;br /&gt;
** Created icons for:&lt;br /&gt;
*** edit conditioning for all annotation types (done), &lt;br /&gt;
*** mouse mode icons, pause, play, cancel, ok/done, (Un)lock (done)&lt;br /&gt;
*** new the annotation types poly line, spline with control points, volume information extractor, and sticky note (done)&lt;br /&gt;
*** Modify fiducial icon just to show one star and change save annotation icon  (done)&lt;br /&gt;
*** Modify save annotation and save scene icons (done)&lt;br /&gt;
*** Modify move up/down delete icons (done)&lt;br /&gt;
** Write 5 page, double column, AMIA paper about Reporting&lt;br /&gt;
* 03/05/10&lt;br /&gt;
** Removed Warning Messages when compiling&lt;br /&gt;
** Fixed Bug: When entering text in property box (under linux) it is entered from right to left instead left to right &lt;br /&gt;
** Fixed Bug: Annotation Property: funny behavior with selecting set of digits in a numerical value  and typing in a numeric value - only the first digit gets change.&lt;br /&gt;
** Fixed Bug: Value of Angle node is not update in table&lt;br /&gt;
** Fixed Bug: Updating the value in the table slows down the operations&lt;br /&gt;
** Changed the default ruler from 1mm to 500mm.&lt;br /&gt;
** Angle Widget is added by manually clicking three points on the viewer. The angle value is now shown in the table. The behavior of the angle button is in the &amp;quot;toggle down&amp;quot; state until all three control points are set&lt;br /&gt;
** When selecting annotation in table, color of annotation in 3D Viewer changes to selected color &lt;br /&gt;
** Revised &amp;quot;add ruler&amp;quot; button to click-style instead of toggle-style&lt;br /&gt;
** When creating a new annotation, set this entry to selected and all other table entries to unselected&lt;br /&gt;
** (De) Select All button: change as discussed with Wendy Plesniak, BWH, to option button with proper logic&lt;br /&gt;
** Setting color/selected color for individual Ruler and Angle widgets in property dialog&lt;br /&gt;
** Fixed Bug: hiding/unhiding ruler and angle annotations&lt;br /&gt;
** Change display property for each annotation individually&lt;br /&gt;
** Lots of warning messages when compiling code&lt;br /&gt;
* 02/26/10&lt;br /&gt;
** Created pop up window showing screen shot&lt;br /&gt;
** Manual editing of coordinates via &amp;quot;Property Window&amp;quot;&lt;br /&gt;
** Resolved column width problem in table ([http://wiki.na-mic.org/Wiki/index.php/File:Screenshot-Form.JPG  original problem], [http://wiki.na-mic.org/Wiki/index.php/File:ARRA_SlicerAM_Screenshot_TableV2.png second screen shot problem])&lt;br /&gt;
** Fixed bug where hide icon changed size in table&lt;br /&gt;
** Include icons when saving html report in a directory with the same name as the html file&lt;br /&gt;
** [http://wiki.na-mic.org/Wiki/index.php/File:ARRA_SlicerAM_Screenshot_GUI.png Reorganized GUI] based on feedback from Wendy Plesniak, BWH  &lt;br /&gt;
** Include screen shots (if any) in the report (see [http://wiki.na-mic.org/Wiki/index.php/File:ARRA_SlicerAM_Screenshot_ReportV1.png an example])&lt;br /&gt;
** Fixed the following bug: After resizing the 3D Window taking a screen shot only displays the window with the original size (see [http://wiki.na-mic.org/Wiki/index.php/File:ARRA_SlicerAM_Screenshot_Window.png screen shot]) &lt;br /&gt;
** Fixed Bug: Value update of ruler widget is slow &lt;br /&gt;
** Text defined in property box now shows up in table&lt;br /&gt;
** Integrated vtkMRMLAnnotationAngleNode with AngleWidget&lt;br /&gt;
** Added new buttons to create frame based on feedback from BWH &lt;br /&gt;
* 02/19/10 &lt;br /&gt;
** Implement a general structure for vtkMRMLAnnotation*Node&lt;br /&gt;
** Work together with Kitware to resolve QT Table layout problem &lt;br /&gt;
** Allow defining long text annotations for each widget&lt;br /&gt;
** Improve user interaction through pop up windows when trying to modify an existing annotation &lt;br /&gt;
** Creating and removing ruler now works correctly &lt;br /&gt;
** Use correct label format to display measurement values in Annotation Property window &lt;br /&gt;
** Created a &amp;quot;Save annotation&amp;quot; Window&lt;br /&gt;
** Fixed changing icon size in table (see original [http://wiki.na-mic.org/Wiki/index.php/File:ARRA_SlicerAM_Screenshot_Table-IconProblem.png screen shot] )&lt;br /&gt;
** Fixed slicer crashing closing the property window &lt;br /&gt;
** Renamed and resized columns in Table&lt;br /&gt;
*02/12/10 removed bugs related to table buttons, linked button to angle widget and ruler widget&lt;br /&gt;
*02/05/10 implemented &amp;quot;Save Annotation Report&amp;quot; button and &amp;quot;Move up/down&amp;quot; buttons; added extra column in the report table for visibility; modified annotation property dialog; implemented button-click in the table.&lt;br /&gt;
*01/29/10 implemented functionality for &amp;quot;Annotation Property Modification&amp;quot; button, &amp;quot;Create Report&amp;quot; button, and integrated new icons for buttons.&lt;br /&gt;
*01/22/10 Set up the source control for the reporting module; implemented functionality for &amp;quot;Select All&amp;quot; button, &amp;quot;Visible&amp;quot; button, and &amp;quot;Delete&amp;quot; button in the GUI; created new icons for buttons&lt;br /&gt;
*01/15/10 Organized biweekly Tcon &lt;br /&gt;
*01/08/10 Participated in all week All Hands Meeting in Utah; Expanded QT interface with functionality to set seeds in images; Defined a final MRML Structure for storing annotation.  &lt;br /&gt;
*01/01/10 Generated a [[Media:SlicerAM QtAnnotation.png | GUI interface]] via QT for the annotation module. [[Projects:ARRA:SlicerAM#Widget_related_action_items | Reviewed ]] all VTK Widgets related to annotation.  &lt;br /&gt;
*12/25/09 Created [[ 2010_Winter_Project_Week_mComment | project ]] and organized [[ AHM2010:AnnotationBreakout | break out session ]] at AHM meeting. Coordinated efforts with BWH team in preparation of the meeting. &lt;br /&gt;
*12/18/09 Held workshop to integrate AMI into 3D Slicer. Hired new person to implement AMI in Slicer.   &lt;br /&gt;
*12/11/09 [[ Projects:ARRA:SlicerAM_RSNA09Report | Summary ]] of tools demoed at RSNA &lt;br /&gt;
*12/04/09 Visited RSNA to review annotation tools by GE, Siemens &amp;amp;  Phillips. Connected to caBIG AIM project to see how we can make use of their data scheme &lt;br /&gt;
*11/29/09 Created GUI for MarkUp module  &lt;br /&gt;
*11/20/09 Design MRML Structure of Annotation and MarkUp Module&lt;br /&gt;
*11/13/09 Organize [[Dec-2009-SlicerAIMBrainstorming | Annotation Brain Storming]] Session&lt;br /&gt;
*11/06/09 Designed User Interface , Meet with Julien Finet and Jean-Christophe Fillion-Robin from Kitware to discuss integration of Qt in 3D Slicer&lt;br /&gt;
*10/30/09 Participated in Qt-Tcon, Interviewed candidate at Almaden, coordinated efforts with Nicole Aucoin &lt;br /&gt;
*10/23/09 Organized onsite interview , got in contact with Steve Pieper to discuss next steps, installed Slicer3&lt;br /&gt;
*10/17/09 Started interviewing postdoc as well as solving several HR issues for hiring personal&lt;br /&gt;
&lt;br /&gt;
= Feature Request =&lt;br /&gt;
== KW Widgets ==&lt;br /&gt;
* For further detail go [[ Projects:ARRA:SlicerAM:KWWidgets | here ]]&lt;br /&gt;
&lt;br /&gt;
== QT Related ==&lt;br /&gt;
* Submit bugs and feature request via [http://na-mic.org/Mantis/search.php?project_id=1&amp;amp;category=QtGUI&amp;amp;sticky_issues=on&amp;amp;sortby=last_updated&amp;amp;dir=DESC&amp;amp;hide_status_id=90  Mantis]&lt;br /&gt;
*  Feature requests that may open discussions can be added [http://wiki.slicer.org/slicerWiki/index.php/Slicer3:Developers:Projects:QtSlicer/OpenDiscussions  here]&lt;br /&gt;
&lt;br /&gt;
== Yong ==&lt;br /&gt;
* Major&lt;br /&gt;
** BUG: When changing line color in Display Properties it changes the Text Color&lt;br /&gt;
*** Yong: it turns out that when setting the color using LineDisplayNode, it also sets the color for DisplayNode. This could be a bug in the node data structures.&lt;br /&gt;
*** KP: this is not the case check out Line 3053 in vtkSlicermiAnnotationModuleLogic.cxx revision 179&lt;br /&gt;
** BUG: Line color changes for Rulers when annotation is selected in table and mouse moves over the line in the 3D Window&lt;br /&gt;
** define functionality for the following buttons: &lt;br /&gt;
*** mouse mode status icon&lt;br /&gt;
*** radio button with play and pause, cancel, done&lt;br /&gt;
** define functionality for the following two buttons: &lt;br /&gt;
*** sticky note (pop up window)&lt;br /&gt;
*** info extractor which will be a option button that displays all volume nodes -&amp;gt; you select the node to extract the info from the header =&amp;gt; annotation is displayed in pop up window&lt;br /&gt;
** Save the view with the annotation it was last time modified in the 3D viewer&lt;br /&gt;
** put options for screen capture into new screen capture pop window  &lt;br /&gt;
** BUG: Lock does not lock the position of a widget in the 3D Viewer&lt;br /&gt;
*** Working with Nicole Aucoin to resolve this issue - waiting for VTK 5.6 release&lt;br /&gt;
** Grid out your buttons  (Create Frame) &lt;br /&gt;
*** Yong will communicate with Wendy to resolve issue&lt;br /&gt;
&lt;br /&gt;
* Minor &lt;br /&gt;
** Turn Screen Capture button into option button with options:  Active viewer, All viewer, slicer window - by default last action  &lt;br /&gt;
** Fiducial button: put label under button (after click on) what to do next such as setting seeds in 3D window &lt;br /&gt;
** Create a Slicer widget for a multi column list with convenience button that we currently have - have options for making them visible or not  &lt;br /&gt;
** Combine move up and down button into one option button which shows the last action (up or down) by default&lt;br /&gt;
** Create window showing volume tab when pressing Adjust Volume Properties&lt;br /&gt;
** Show current mouse behavior on mouse behavior button - also show menu to change mouse behavior - use [http://qt.nokia.com/doc/4.6/qpushbutton.html#setMenu QPushButton::setMenu() ] &lt;br /&gt;
** Show options in Change Viewer Layout use [http://qt.nokia.com/doc/4.6/qpushbutton.html#setMenu QPushButton::setMenu() ] &lt;br /&gt;
** Generate testscript to interactively test various widgets and GUI elements&lt;br /&gt;
** create local copy of the doxygen file using getbuildtest.tcl --no-slicer-update -doxy&lt;br /&gt;
&lt;br /&gt;
* Not Important&lt;br /&gt;
** Have text field in table to fill out space also when changing size of window (see current [http://wiki.na-mic.org/Wiki/index.php/File:ARRA_SlicerAM_Screenshot_TableV3.png screen shot] )  &lt;br /&gt;
*** Yong: this requires a re-design of the resizeEvent() of the QTableWidget, do we really need to do it?&lt;br /&gt;
** BUG: When saving a report with a file name without html extension the save window will check for the existence of that file name instead of the file name + .html&lt;br /&gt;
*** Yong: tried but cannot fix it unless go into the QFileDialog source code, it is recommended to include the extension name when using in Linux.&lt;br /&gt;
&lt;br /&gt;
== Kilian ==&lt;br /&gt;
* investigate vtkMRMLHierarchicalModelNode for annotations&lt;br /&gt;
&lt;br /&gt;
== Wendy ==&lt;br /&gt;
* Extend the Save Data Widget API to display one data type and hide save options&lt;br /&gt;
== Steve ==&lt;br /&gt;
* Bug: Ruler still visible in 2D window after pressing hide button. This bug has been reported to Mantis http://na-mic.org/Mantis/view.php?id=760&lt;br /&gt;
* For compiling Slicer3 in windows OS, has to use &amp;quot;SET PYTHON OFF&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Julien / JC ==&lt;br /&gt;
* BUG: When pressing save button reporting module is replaced with last module visited before: an email is sent to report the issue to Julien and JC.&amp;lt;BR&amp;gt;&lt;br /&gt;
Mar 02: Work around : go to File-&amp;gt; Load Scene-&amp;gt; Cancel&lt;br /&gt;
&lt;br /&gt;
== Nicole ==&lt;br /&gt;
Mar 02: Adding SeedWidget to Reporting Module - Nicole is waiting for the integration of the new Vtk version into Slicer&lt;br /&gt;
&lt;br /&gt;
== Karthik Krishnan ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Resolved ==&lt;br /&gt;
* BUG Fix: Nothing happens when Property Window is open and you press the edit button for another annotation&lt;br /&gt;
&lt;br /&gt;
= Display Properties of Widgets =&lt;br /&gt;
* Unavailable / Unknown:&lt;br /&gt;
** Set text colors for Ruler and Angle Widget &lt;br /&gt;
** Get/Set glyph scale / point size for point display node&lt;br /&gt;
** Get/Set text opacity/ambient/diffuse/specular from text display node  &lt;br /&gt;
** Color of &amp;quot;angle line&amp;quot; cannot be defined  &lt;br /&gt;
* Available:&lt;br /&gt;
** Get/Set text colors from display node&lt;br /&gt;
** Get/Set text scale from display node&lt;br /&gt;
** Get/Set point colors from point display node&lt;br /&gt;
** Get/Set point opacity/ambient/diffuse/specular from point display node&lt;br /&gt;
** Get/Set line colors from line display node&lt;br /&gt;
** Get/Set line width/opacity/ambient/diffuse/specular from line display node&lt;br /&gt;
** Get text format for angle and ruler&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:Volume_Rendering_With_Cuda&amp;diff=11676</id>
		<title>Slicer3:Volume Rendering With Cuda</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:Volume_Rendering_With_Cuda&amp;diff=11676"/>
		<updated>2009-12-16T20:34:28Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Note =&lt;br /&gt;
&lt;br /&gt;
'''This project is no longer active. Nobuhiko Hata, Dec 16, 2009'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''This project is no longer active. Nobuhiko Hata, Dec 16, 2009'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''This project is no longer active. Nobuhiko Hata, Dec 16, 2009'''&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
On this page a description of the ''Volume Rendering algorithm with CUDA For Slicer3'' is presented.&lt;br /&gt;
A link to the IGT project page can be found on [http://wiki.na-mic.org/Wiki/index.php/Slicer-IGT/GPU-IGT Slicer-IGT/GPU-IGT].&lt;br /&gt;
&lt;br /&gt;
Involved in this projects are '''Benjamin Grauer (integration into vtk/Slicer3)''', Nicholas Harlambang (cuda algorithms) and Nobuhiko Hata (project supervisor).&lt;br /&gt;
&lt;br /&gt;
The Volume Renderer has been tested on GeForce 8800GTX and Windows so far.&lt;br /&gt;
The latest CUDA compatible drivers can be found [http://www.nvidia.com/object/cuda_get.html here]. &lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
The goal of this project is to implement a CUDA based Volume Rendering Technique inside of [http://www.vtk.org VTK] and Slicer3.&lt;br /&gt;
&lt;br /&gt;
== Project Outline ==&lt;br /&gt;
Several steps have to be made to integrating a CUDA based volume rendering technique into vtk.&lt;br /&gt;
#Implement and Integrate a '''CUDA Volume Rendering algorithm'''.&lt;br /&gt;
#Integrate '''CUDA runtime API''' support into VTK using a class based approach.&lt;br /&gt;
#Integrate the algorithm into a '''VTK pipeline''' (described below)&lt;br /&gt;
#Create a '''user interface''' to control the flow of the Volume Rendering within Slicer3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Module VolumeRenderingCuda has been moved out of Slicer3 trunk and saved in NAMICSandBox/CUDAForVolumeRendering, and is not actively being developed. Now, we should use VolumeRendering module for volume rendering in Slicer3. Updated by Haiying Liu on Oct 30, 2009'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cuda Volume Rendering Algorithm =&lt;br /&gt;
The Code that we use so far has been implemented by Nicholas Harlambang and can be viewed [http://svn.orxonox.net/subprojects/volrenSample here].&lt;br /&gt;
&lt;br /&gt;
== Feature Wishlist ==&lt;br /&gt;
{| border=1 cellspacing&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! Relevance || Feature || Status || Dependency || Description&lt;br /&gt;
|-&lt;br /&gt;
| +++       || Z-Buffer || 60% || Current Z-buffer to CUDA || Render and stop at the Z-buffer information&lt;br /&gt;
|-&lt;br /&gt;
| ++ || Different Data Types || 100% || || uchar, char, float, double, short, ushort, int&lt;br /&gt;
|-&lt;br /&gt;
| +++ || Sample Distance || 60% || || The sampling step distance along the ray.&lt;br /&gt;
|-&lt;br /&gt;
| ++ ||  Transfer Function || 100% || ||&lt;br /&gt;
|-&lt;br /&gt;
| + || Lighting Model || 30% || || &lt;br /&gt;
|-&lt;br /&gt;
| = || Multiple Lights || 0% || || &lt;br /&gt;
|-&lt;br /&gt;
| - || Shading Model || 0% || Lighting Model || Use Shaders to render &lt;br /&gt;
|-&lt;br /&gt;
| +++ || Perspective and Planar Projection || 100% || || Perspective Projection using vtkCamera Projection Matrix&lt;br /&gt;
|-&lt;br /&gt;
| = || Memory To Texture || 100% ||  || Render CUDA directly onto Texture (for GeForce Cards only)&lt;br /&gt;
|-&lt;br /&gt;
| - || Partial Memory Update || 0% || || Partial Updates of the Input data for animation&lt;br /&gt;
|-&lt;br /&gt;
| -- || vtkCudaVolumeProperty || 100% || Transfer Function, || Implement all the features of [http://public.kitware.com/VTK/doc/release/4.0/html/classvtkVolumeProperty.html vtkVolumeProperty] &lt;br /&gt;
|-&lt;br /&gt;
| - || Animation || 60% || Partial Memory Update || 4D Animated Image Data&lt;br /&gt;
|-&lt;br /&gt;
| + || No more static Symbols || 80% || || Remove the need of all c-style static Symbols in the CUDA code&lt;br /&gt;
|-&lt;br /&gt;
| --- || Multicore/GPU implementation || 0% || Everything else || Multicore implementation of the Cuda Rendering&lt;br /&gt;
|-&lt;br /&gt;
| -- || Gradients || ?% || || Not sure yet!  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= VTK Cuda Runtime API support =&lt;br /&gt;
The c-interface to the CUDA objects and functions will be wrapped in a safe object oriented VTK-C++ class hierarchy.&lt;br /&gt;
*[[VTK Cuda Wrapper Classes]]&lt;br /&gt;
*[http://wiki.na-mic.org/Wiki/index.php/VTK_Cuda_Memory_Management_Classes VTK Cuda Memory Management Classes]&lt;br /&gt;
&lt;br /&gt;
== Cuda Memory ==&lt;br /&gt;
Cuda memory comes in different shapes and forms:&lt;br /&gt;
*'''Host Memory''': Non-Paged Memory on the host side for fast interaction with the CUDA devices. see ''vtkCudaHostMemory.h''&lt;br /&gt;
*'''Linear Memory''': Linerely arranged memory on the CUDA device. see ''vtkCudaMemory.h''&lt;br /&gt;
*'''Pitch Memory''': 2D memory arrays that are aligned in the correct fashion for a fast interaction on the cuda devices. (Arranged over the memory banks for quick access). see ''vtkCudaMemoryPitch.h''&lt;br /&gt;
*'''Array Memory''': Arrays allocated over the CUDA API. see ''vtkCudaMemoryArray.h''&lt;br /&gt;
*'''Texture Memory''': Not discussed here. see [[VTK Cuda Wrapper Classes]]&lt;br /&gt;
All these memories are derived from a base class (see ''vtkCudaMemoryBase.h'') as shown in the following picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:vtkCudaMemoryManagementClassDiagram.png|frame|none|Cuda Memory Class Diagram]]&lt;br /&gt;
&lt;br /&gt;
= VTK Modules and Pipeline =&lt;br /&gt;
These are the modules that will be created in order to integrate a Cuda based Volume Rendering into the Slicer3 pipeline&lt;br /&gt;
# '''A [http://www.vtk.org/doc/release/5.0/html/a01572.html vtkImageReader]:''' to read Volume data as any kind of Volume Data&lt;br /&gt;
# '''A [[vtkCudaImageFilter]]:''' A Filter to convert from the reader output to a cuda-able DataSet&lt;br /&gt;
# '''A [http://wiki.na-mic.org/Wiki/index.php/VtkCudaDataSet VtkCudaDataSet]:''' A new vtkDataSet where that holds and handles the data transfer from and to one or multiple CUDA devices.&lt;br /&gt;
# '''A [[vtkCudaVolumeMapper]]:''' A new vtkVolumeMapper that renders the scene using the &lt;br /&gt;
## lighting model&lt;br /&gt;
## a prepared Z buffer&lt;br /&gt;
## a camera position&lt;br /&gt;
## A [http://www.vtk.org/doc/release/5.0/html/a02096.html vtkTexture] and a Plane to render the result to&lt;br /&gt;
# '''An actor''' that places the volume into the scene&lt;br /&gt;
# Chain this '''pipeline''' together and attach it to a rendering window.&lt;br /&gt;
&lt;br /&gt;
In the following image the pipeline is displayed together with the connections from the VTK, Slicer3 and CUDA frameworks.&lt;br /&gt;
[[Image:VtkCudaVolumeRenderingPipeline.png|frame|none|500px|CUDA Volume Rendering Pipeline]]&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
* The '''Fat''' line displays the pipeline flow.&lt;br /&gt;
* Green colored fields are classes from the Slicer3 or vtk implementation&lt;br /&gt;
* Red colored fields are CUDA and hardware specific parts&lt;br /&gt;
* Blue colored fields are specially implemented parts for the communication of cuda and vtk and the volume rendering algorithms.&lt;br /&gt;
&lt;br /&gt;
= A Slicer3 User Interface =&lt;br /&gt;
The GUI will be designed using KWWidgets. With this the user will be able to change the rendering resolution, step size, control the color sceme and load and store further information.&lt;br /&gt;
&lt;br /&gt;
= Tasks and Timeline =&lt;br /&gt;
== Tasks and Completion ==&lt;br /&gt;
{| border=1 cellspacing&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! colspan=3 | Status&lt;br /&gt;
|- bgcolor=&amp;quot;#bbddff&amp;quot;&lt;br /&gt;
|colspan=3 | Overall Status&lt;br /&gt;
| rowspan=20 valign=&amp;quot;top&amp;quot; | 75%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2  | Integrate into VTK &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot;  | 85% &lt;br /&gt;
|-&lt;br /&gt;
|VTK Memory Class Definitions || 90%&lt;br /&gt;
|-&lt;br /&gt;
|VTK Access Classes || 80%&lt;br /&gt;
|-&lt;br /&gt;
|VTK Algorithm || 90%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2 bgcolor=&amp;quot;#ddffff&amp;quot; | CUDA Volume Rendering Algorithm &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#ddffff&amp;quot; | 80%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt to Z-buffer || 70%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt lighting model || 0%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt to input Image || 100%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2 | Integration into Slicer &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot; | 80%&lt;br /&gt;
|-&lt;br /&gt;
|Integrate as a Module || 100%&lt;br /&gt;
|-&lt;br /&gt;
| GUI || 90% &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! From !! To !! Task&lt;br /&gt;
|-&lt;br /&gt;
| 12/14/07 || 05/31/08 || Master Thesis Duration&lt;br /&gt;
|-&lt;br /&gt;
| 12/14/07 || 12/31/07 || Reading into the Project, Defining Basic Classes&lt;br /&gt;
|-&lt;br /&gt;
| 01/01/08 || 01/06/08 || Basic Class Definition Ready for Hands on Meeting&lt;br /&gt;
|-&lt;br /&gt;
| 01/07/08 || 01/12/08 || Hands on meeting in Salt Lake City&lt;br /&gt;
|-&lt;br /&gt;
| 01/14/08 || 02/01/08 || Further Implementation&lt;br /&gt;
|-&lt;br /&gt;
| 05/01/08 || 29/05/08 || Write Master Thesis&lt;br /&gt;
|-&lt;br /&gt;
| 06/14/08 ||          || Hand in Masters Thesis in Zurich&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
See the daily progress [http://www.google.com/notebook/public/08097279861700679221/BDQdBIgoQ1czeruoi?hl=en here].&lt;br /&gt;
* (01/03/08): Successfully proved that CUDA runs inside of Slicer3 with the code from Nicholas Harlambang&lt;br /&gt;
* (02/01/08): Cuda inside of Slicer3 and external Application, 4D imaging&lt;br /&gt;
* (02/05/08): Integration Rendering with Cuda Code and Transfer Functions&lt;br /&gt;
* (02/11/08): Integration with Network Module [http://wiki.na-mic.org/Wiki/index.php/OpenIGTLink OpenIGTLink] See [http://people.ee.ethz.ch/~grauerb/Slicer3/openIGTLinkCuda02_02.htm here]&lt;br /&gt;
* (03/06/08): Model is aligned correctly in Slicer RAS space.&lt;br /&gt;
&lt;br /&gt;
=Install Cuda into Slicer3=&lt;br /&gt;
* Download Slicer3 with Cuda: &lt;br /&gt;
 svn co http://www.na-mic.org/svn/Slicer3/branches/igt_cuda_merge Slicer3&lt;br /&gt;
* Install Cuda following the instructions in [[Media:Cuda2slicer3.pdf]]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
#For testing purposes: [[Image:Heart256.raw]] Store this file in Slicer3/Modules/VolumeRenderingCuda/Testing/heart256.raw&lt;br /&gt;
#Also checkout the main project page at [http://wiki.na-mic.org/Wiki/index.php/Slicer-IGT/GPU-IGT Slicer-IGT/GPU-IGT]&lt;br /&gt;
#Currently I am working in this [http://www.na-mic.org/svn/Slicer3/branches/cuda branch] &lt;br /&gt;
##on CudaSupport: [http://www.na-mic.org/svn/Slicer3/branches/cuda/Modules/VolumeRenderingCuda Libs/CudaSupport]&lt;br /&gt;
##and CudaVolumeRendering: [http://www.na-mic.org/svn/Slicer3/branches/cuda/Modules/VolumeRenderingCuda Modules/VolumeRenderingCuda]&lt;br /&gt;
#Slicer Version using CUDA: [[media:SlicerWithCuda.zip]] [[media:SlicerWithCuda_Check.zip]] [[media:SlicerWithCudaAndUltrasoundSimulator.zip]] [[media:SlicerWithCUDAUS_New.gz]] &lt;br /&gt;
&lt;br /&gt;
==People Involved==&lt;br /&gt;
* Nobuhiko Hata: Supervisor&lt;br /&gt;
* Nicholas Harlambang: Implementer of the Cuda Code and Algorithms&lt;br /&gt;
* Benjamin Grauer: Implementer of the VTK/Cuda integration and CudaSupport Library&lt;br /&gt;
* Andreas Freudling: First Implementation of Volume Rendering in Slicer3 and great supporter&lt;br /&gt;
&lt;br /&gt;
==Screen Captures==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:FirstCudaVolumeRenderInSlicer3.png|The First Volume Render using CUDA within the Slicer Window&lt;br /&gt;
Image:First4DVolumeRenderInSlicer3.png|The First 4D Volume Rendering in CUDA using VTK &lt;br /&gt;
Image:CudaIntegrationMethodHead.png|The First Volume Render using CUDA within the Slicer Window&lt;br /&gt;
Image:CudaIntegrationMethodInterpolationHead.png|Volume Rendered Head with a Interpolation Smoother&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:Volume_Rendering_With_Cuda&amp;diff=11675</id>
		<title>Slicer3:Volume Rendering With Cuda</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:Volume_Rendering_With_Cuda&amp;diff=11675"/>
		<updated>2009-12-16T20:34:18Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Note =&lt;br /&gt;
&lt;br /&gt;
'''This project is no longer active. Nobuhiko Hata, Dec 16, 2009'''&lt;br /&gt;
'''This project is no longer active. Nobuhiko Hata, Dec 16, 2009'''&lt;br /&gt;
'''This project is no longer active. Nobuhiko Hata, Dec 16, 2009'''&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
On this page a description of the ''Volume Rendering algorithm with CUDA For Slicer3'' is presented.&lt;br /&gt;
A link to the IGT project page can be found on [http://wiki.na-mic.org/Wiki/index.php/Slicer-IGT/GPU-IGT Slicer-IGT/GPU-IGT].&lt;br /&gt;
&lt;br /&gt;
Involved in this projects are '''Benjamin Grauer (integration into vtk/Slicer3)''', Nicholas Harlambang (cuda algorithms) and Nobuhiko Hata (project supervisor).&lt;br /&gt;
&lt;br /&gt;
The Volume Renderer has been tested on GeForce 8800GTX and Windows so far.&lt;br /&gt;
The latest CUDA compatible drivers can be found [http://www.nvidia.com/object/cuda_get.html here]. &lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
The goal of this project is to implement a CUDA based Volume Rendering Technique inside of [http://www.vtk.org VTK] and Slicer3.&lt;br /&gt;
&lt;br /&gt;
== Project Outline ==&lt;br /&gt;
Several steps have to be made to integrating a CUDA based volume rendering technique into vtk.&lt;br /&gt;
#Implement and Integrate a '''CUDA Volume Rendering algorithm'''.&lt;br /&gt;
#Integrate '''CUDA runtime API''' support into VTK using a class based approach.&lt;br /&gt;
#Integrate the algorithm into a '''VTK pipeline''' (described below)&lt;br /&gt;
#Create a '''user interface''' to control the flow of the Volume Rendering within Slicer3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Module VolumeRenderingCuda has been moved out of Slicer3 trunk and saved in NAMICSandBox/CUDAForVolumeRendering, and is not actively being developed. Now, we should use VolumeRendering module for volume rendering in Slicer3. Updated by Haiying Liu on Oct 30, 2009'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cuda Volume Rendering Algorithm =&lt;br /&gt;
The Code that we use so far has been implemented by Nicholas Harlambang and can be viewed [http://svn.orxonox.net/subprojects/volrenSample here].&lt;br /&gt;
&lt;br /&gt;
== Feature Wishlist ==&lt;br /&gt;
{| border=1 cellspacing&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! Relevance || Feature || Status || Dependency || Description&lt;br /&gt;
|-&lt;br /&gt;
| +++       || Z-Buffer || 60% || Current Z-buffer to CUDA || Render and stop at the Z-buffer information&lt;br /&gt;
|-&lt;br /&gt;
| ++ || Different Data Types || 100% || || uchar, char, float, double, short, ushort, int&lt;br /&gt;
|-&lt;br /&gt;
| +++ || Sample Distance || 60% || || The sampling step distance along the ray.&lt;br /&gt;
|-&lt;br /&gt;
| ++ ||  Transfer Function || 100% || ||&lt;br /&gt;
|-&lt;br /&gt;
| + || Lighting Model || 30% || || &lt;br /&gt;
|-&lt;br /&gt;
| = || Multiple Lights || 0% || || &lt;br /&gt;
|-&lt;br /&gt;
| - || Shading Model || 0% || Lighting Model || Use Shaders to render &lt;br /&gt;
|-&lt;br /&gt;
| +++ || Perspective and Planar Projection || 100% || || Perspective Projection using vtkCamera Projection Matrix&lt;br /&gt;
|-&lt;br /&gt;
| = || Memory To Texture || 100% ||  || Render CUDA directly onto Texture (for GeForce Cards only)&lt;br /&gt;
|-&lt;br /&gt;
| - || Partial Memory Update || 0% || || Partial Updates of the Input data for animation&lt;br /&gt;
|-&lt;br /&gt;
| -- || vtkCudaVolumeProperty || 100% || Transfer Function, || Implement all the features of [http://public.kitware.com/VTK/doc/release/4.0/html/classvtkVolumeProperty.html vtkVolumeProperty] &lt;br /&gt;
|-&lt;br /&gt;
| - || Animation || 60% || Partial Memory Update || 4D Animated Image Data&lt;br /&gt;
|-&lt;br /&gt;
| + || No more static Symbols || 80% || || Remove the need of all c-style static Symbols in the CUDA code&lt;br /&gt;
|-&lt;br /&gt;
| --- || Multicore/GPU implementation || 0% || Everything else || Multicore implementation of the Cuda Rendering&lt;br /&gt;
|-&lt;br /&gt;
| -- || Gradients || ?% || || Not sure yet!  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= VTK Cuda Runtime API support =&lt;br /&gt;
The c-interface to the CUDA objects and functions will be wrapped in a safe object oriented VTK-C++ class hierarchy.&lt;br /&gt;
*[[VTK Cuda Wrapper Classes]]&lt;br /&gt;
*[http://wiki.na-mic.org/Wiki/index.php/VTK_Cuda_Memory_Management_Classes VTK Cuda Memory Management Classes]&lt;br /&gt;
&lt;br /&gt;
== Cuda Memory ==&lt;br /&gt;
Cuda memory comes in different shapes and forms:&lt;br /&gt;
*'''Host Memory''': Non-Paged Memory on the host side for fast interaction with the CUDA devices. see ''vtkCudaHostMemory.h''&lt;br /&gt;
*'''Linear Memory''': Linerely arranged memory on the CUDA device. see ''vtkCudaMemory.h''&lt;br /&gt;
*'''Pitch Memory''': 2D memory arrays that are aligned in the correct fashion for a fast interaction on the cuda devices. (Arranged over the memory banks for quick access). see ''vtkCudaMemoryPitch.h''&lt;br /&gt;
*'''Array Memory''': Arrays allocated over the CUDA API. see ''vtkCudaMemoryArray.h''&lt;br /&gt;
*'''Texture Memory''': Not discussed here. see [[VTK Cuda Wrapper Classes]]&lt;br /&gt;
All these memories are derived from a base class (see ''vtkCudaMemoryBase.h'') as shown in the following picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:vtkCudaMemoryManagementClassDiagram.png|frame|none|Cuda Memory Class Diagram]]&lt;br /&gt;
&lt;br /&gt;
= VTK Modules and Pipeline =&lt;br /&gt;
These are the modules that will be created in order to integrate a Cuda based Volume Rendering into the Slicer3 pipeline&lt;br /&gt;
# '''A [http://www.vtk.org/doc/release/5.0/html/a01572.html vtkImageReader]:''' to read Volume data as any kind of Volume Data&lt;br /&gt;
# '''A [[vtkCudaImageFilter]]:''' A Filter to convert from the reader output to a cuda-able DataSet&lt;br /&gt;
# '''A [http://wiki.na-mic.org/Wiki/index.php/VtkCudaDataSet VtkCudaDataSet]:''' A new vtkDataSet where that holds and handles the data transfer from and to one or multiple CUDA devices.&lt;br /&gt;
# '''A [[vtkCudaVolumeMapper]]:''' A new vtkVolumeMapper that renders the scene using the &lt;br /&gt;
## lighting model&lt;br /&gt;
## a prepared Z buffer&lt;br /&gt;
## a camera position&lt;br /&gt;
## A [http://www.vtk.org/doc/release/5.0/html/a02096.html vtkTexture] and a Plane to render the result to&lt;br /&gt;
# '''An actor''' that places the volume into the scene&lt;br /&gt;
# Chain this '''pipeline''' together and attach it to a rendering window.&lt;br /&gt;
&lt;br /&gt;
In the following image the pipeline is displayed together with the connections from the VTK, Slicer3 and CUDA frameworks.&lt;br /&gt;
[[Image:VtkCudaVolumeRenderingPipeline.png|frame|none|500px|CUDA Volume Rendering Pipeline]]&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
* The '''Fat''' line displays the pipeline flow.&lt;br /&gt;
* Green colored fields are classes from the Slicer3 or vtk implementation&lt;br /&gt;
* Red colored fields are CUDA and hardware specific parts&lt;br /&gt;
* Blue colored fields are specially implemented parts for the communication of cuda and vtk and the volume rendering algorithms.&lt;br /&gt;
&lt;br /&gt;
= A Slicer3 User Interface =&lt;br /&gt;
The GUI will be designed using KWWidgets. With this the user will be able to change the rendering resolution, step size, control the color sceme and load and store further information.&lt;br /&gt;
&lt;br /&gt;
= Tasks and Timeline =&lt;br /&gt;
== Tasks and Completion ==&lt;br /&gt;
{| border=1 cellspacing&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! colspan=3 | Status&lt;br /&gt;
|- bgcolor=&amp;quot;#bbddff&amp;quot;&lt;br /&gt;
|colspan=3 | Overall Status&lt;br /&gt;
| rowspan=20 valign=&amp;quot;top&amp;quot; | 75%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2  | Integrate into VTK &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot;  | 85% &lt;br /&gt;
|-&lt;br /&gt;
|VTK Memory Class Definitions || 90%&lt;br /&gt;
|-&lt;br /&gt;
|VTK Access Classes || 80%&lt;br /&gt;
|-&lt;br /&gt;
|VTK Algorithm || 90%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2 bgcolor=&amp;quot;#ddffff&amp;quot; | CUDA Volume Rendering Algorithm &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#ddffff&amp;quot; | 80%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt to Z-buffer || 70%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt lighting model || 0%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt to input Image || 100%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2 | Integration into Slicer &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot; | 80%&lt;br /&gt;
|-&lt;br /&gt;
|Integrate as a Module || 100%&lt;br /&gt;
|-&lt;br /&gt;
| GUI || 90% &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! From !! To !! Task&lt;br /&gt;
|-&lt;br /&gt;
| 12/14/07 || 05/31/08 || Master Thesis Duration&lt;br /&gt;
|-&lt;br /&gt;
| 12/14/07 || 12/31/07 || Reading into the Project, Defining Basic Classes&lt;br /&gt;
|-&lt;br /&gt;
| 01/01/08 || 01/06/08 || Basic Class Definition Ready for Hands on Meeting&lt;br /&gt;
|-&lt;br /&gt;
| 01/07/08 || 01/12/08 || Hands on meeting in Salt Lake City&lt;br /&gt;
|-&lt;br /&gt;
| 01/14/08 || 02/01/08 || Further Implementation&lt;br /&gt;
|-&lt;br /&gt;
| 05/01/08 || 29/05/08 || Write Master Thesis&lt;br /&gt;
|-&lt;br /&gt;
| 06/14/08 ||          || Hand in Masters Thesis in Zurich&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
See the daily progress [http://www.google.com/notebook/public/08097279861700679221/BDQdBIgoQ1czeruoi?hl=en here].&lt;br /&gt;
* (01/03/08): Successfully proved that CUDA runs inside of Slicer3 with the code from Nicholas Harlambang&lt;br /&gt;
* (02/01/08): Cuda inside of Slicer3 and external Application, 4D imaging&lt;br /&gt;
* (02/05/08): Integration Rendering with Cuda Code and Transfer Functions&lt;br /&gt;
* (02/11/08): Integration with Network Module [http://wiki.na-mic.org/Wiki/index.php/OpenIGTLink OpenIGTLink] See [http://people.ee.ethz.ch/~grauerb/Slicer3/openIGTLinkCuda02_02.htm here]&lt;br /&gt;
* (03/06/08): Model is aligned correctly in Slicer RAS space.&lt;br /&gt;
&lt;br /&gt;
=Install Cuda into Slicer3=&lt;br /&gt;
* Download Slicer3 with Cuda: &lt;br /&gt;
 svn co http://www.na-mic.org/svn/Slicer3/branches/igt_cuda_merge Slicer3&lt;br /&gt;
* Install Cuda following the instructions in [[Media:Cuda2slicer3.pdf]]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
#For testing purposes: [[Image:Heart256.raw]] Store this file in Slicer3/Modules/VolumeRenderingCuda/Testing/heart256.raw&lt;br /&gt;
#Also checkout the main project page at [http://wiki.na-mic.org/Wiki/index.php/Slicer-IGT/GPU-IGT Slicer-IGT/GPU-IGT]&lt;br /&gt;
#Currently I am working in this [http://www.na-mic.org/svn/Slicer3/branches/cuda branch] &lt;br /&gt;
##on CudaSupport: [http://www.na-mic.org/svn/Slicer3/branches/cuda/Modules/VolumeRenderingCuda Libs/CudaSupport]&lt;br /&gt;
##and CudaVolumeRendering: [http://www.na-mic.org/svn/Slicer3/branches/cuda/Modules/VolumeRenderingCuda Modules/VolumeRenderingCuda]&lt;br /&gt;
#Slicer Version using CUDA: [[media:SlicerWithCuda.zip]] [[media:SlicerWithCuda_Check.zip]] [[media:SlicerWithCudaAndUltrasoundSimulator.zip]] [[media:SlicerWithCUDAUS_New.gz]] &lt;br /&gt;
&lt;br /&gt;
==People Involved==&lt;br /&gt;
* Nobuhiko Hata: Supervisor&lt;br /&gt;
* Nicholas Harlambang: Implementer of the Cuda Code and Algorithms&lt;br /&gt;
* Benjamin Grauer: Implementer of the VTK/Cuda integration and CudaSupport Library&lt;br /&gt;
* Andreas Freudling: First Implementation of Volume Rendering in Slicer3 and great supporter&lt;br /&gt;
&lt;br /&gt;
==Screen Captures==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:FirstCudaVolumeRenderInSlicer3.png|The First Volume Render using CUDA within the Slicer Window&lt;br /&gt;
Image:First4DVolumeRenderInSlicer3.png|The First 4D Volume Rendering in CUDA using VTK &lt;br /&gt;
Image:CudaIntegrationMethodHead.png|The First Volume Render using CUDA within the Slicer Window&lt;br /&gt;
Image:CudaIntegrationMethodInterpolationHead.png|Volume Rendered Head with a Interpolation Smoother&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/3.4&amp;diff=7705</id>
		<title>Documentation/3.4</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/3.4&amp;diff=7705"/>
		<updated>2009-02-07T16:09:15Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* IGT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: This page is currently under construction&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[Image:Base-Features-and-Modules.png|thumb|right|overview|[[Media:Integrating with Slicer3.ppt | Integrating with Slicer3]]]]&lt;br /&gt;
This page is a portal for documentation about Slicer 3.4.&lt;br /&gt;
For information for software developers, please go to the Developers page (see link in navigation box to the left).&lt;br /&gt;
&lt;br /&gt;
=How-To Tutorials=&lt;br /&gt;
[http://wiki.na-mic.org/Wiki/index.php/Slicer3:Training Slicer3 tutorial page]&lt;br /&gt;
&lt;br /&gt;
=Feature Request and Problem Reports=&lt;br /&gt;
We have an issues [http://www.na-mic.org/Bug/my_view_page.php tracker] for Slicer 3. You need to create an account for filing reports. We keep track of both feature requests and bug reports. Make sure to use the pull-down in the upper right to select Slicer 3.&lt;br /&gt;
&lt;br /&gt;
=List of Modules in need of documentation=&lt;br /&gt;
* Requirements for modules to be added to the release:&lt;br /&gt;
** The module is feature complete for the tasks advertised on 2-4-2009&lt;br /&gt;
** The module has a test. See [http://wiki.na-mic.org/Wiki/index.php/Slicer3:Execution_Model_Testing here] for more information.&lt;br /&gt;
** Module has documentation on the [[Documentation-3.4#Modules|Slicer wiki]]. Please use the template provided [[Documentation-3.4#Modules|here]] to structure your page. &lt;br /&gt;
**Please add a pointer to the documentation on the Slicer wiki to the the Help tab of the module. See the '''Editor module''' in Slicer for an example.&lt;br /&gt;
** The contributor (and their manager/advisor), the lab (with labs/institution logo) and the funding source (with grant number, logo optional) are listed in the Acknowledgement tab of the module. Please see the '''Models module''' for and example. The people listed in the acknowledgement will be the primary people for support and maintenance relative of the module.&lt;br /&gt;
* If your module has [[Documentation-3.2|documentation in Slicer 3.2]], please copy/paste/update into the 3.4 version&lt;br /&gt;
&lt;br /&gt;
==Main GUI==&lt;br /&gt;
*[[Modules:MainApplicationGUI-Documentation-3.4| Main Application GUI]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:EventBindings-3.4| List of Hotkeys and Keyboard Shortcuts]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Loading-Data-3.4| How to load data]] (Steve Pieper)&lt;br /&gt;
*[[Modules:Saving-Documentation-3.4| Save Scene and Data Module]] (Wendy Plesniak)&lt;br /&gt;
&lt;br /&gt;
==Modules==&lt;br /&gt;
*Please copy the template linked below, paste it into your page and customize it with your module's information.&lt;br /&gt;
[[Slicer3:Module_Documentation-3.4_Template|Slicer3:Module_Documentation-3.4_Template]]&lt;br /&gt;
*See above for info to be put into the Help and Acknowledgement Tabs&lt;br /&gt;
*To put your lab's logo into a module, see [[Slicer3:Execution_Model_Documentation#Adding_Module_Logos_to_Slicer3|here]]&lt;br /&gt;
===Core and Loadable Modules===&lt;br /&gt;
*[[Modules:FetchMI-Documentation-3.4| Fetch Medical Informatics Module]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:Volumes-Documentation-3.4| Volumes Module]] (Steve Pieper)&lt;br /&gt;
**[[Modules:Volumes:Diffusion Editor-Documentation-3.4| Diffusion Editor]] (Kerstin Kessel)&lt;br /&gt;
*[[Modules:Models-Documentation-3.4| Models Module]] (Alex Yarmarkovich)&lt;br /&gt;
*[[Modules:Fiducials-Documentation-3.4| Fiducials Module]]  (Nicole Aucoin)&lt;br /&gt;
*[[Modules:Data-Documentation-3.4| Data Module]] (Alex Yarmarkovich)&lt;br /&gt;
*[[Modules:Slices-Documentation-3.4|Slices Module]] (Jim Miller)&lt;br /&gt;
*[[Modules:Transforms-Documentation-3.4| Transforms Module]] (Alex Yarmarkovich)&lt;br /&gt;
*[[Modules:Color-Documentation-3.4| Color Module]] (Nicole Aucoin)&lt;br /&gt;
&lt;br /&gt;
*[[Modules:Editor-Documentation-3.4| Interactive Editor]] (Steve Pieper)&lt;br /&gt;
*[[Modules:OpenIGTLinkIF-Documentation-3.4| OpenIGTLinkIF Module]] (Junichi Tokuda)&lt;br /&gt;
*[[Modules:QDECModule-Documentation-3.4| QDEC Module]] (Nicole Aucoin)&lt;br /&gt;
*[[Modules:QueryAtlas-Documentation-3.4|Query Atlas Module]] (Wendy Plesniak)&lt;br /&gt;
*[[Modules:ROIModule-Documentation-3.4|ROI Module]] (Alex Yarmarkovich)&lt;br /&gt;
*[[Modules:VolumeRendering-Documentation-3.4| Volume Rendering Module]] (Alex Yarmarkovich)&lt;br /&gt;
&lt;br /&gt;
==Other Modules==&lt;br /&gt;
&lt;br /&gt;
Please adhere to the naming scheme for the module documentation:&lt;br /&gt;
**[ [Modules:MyModuleNameNoSpaces-Documentation-3.4|My Module Name With Spaces] ] (First Last Name)&lt;br /&gt;
===Wizards===&lt;br /&gt;
*[[Modules:ChangeTracker-Documentation-3.4|ChangeTracker]] (Andriy Fedorov)&lt;br /&gt;
*[[Modules:IA_FEMesh-Documentation-3.4|IA FE Meshing Module]] (Vince Magnotta)&lt;br /&gt;
===IGT===&lt;br /&gt;
*[[Modules:NeuroNav-Documentation-3.4| NeuroNav Module]] (Haiying Liu)&lt;br /&gt;
*[[Modules:ProstateNav-Documentation-3.4| ProstateNav Module]] (Junichi Tokuda)&lt;br /&gt;
&lt;br /&gt;
===Batch processing===&lt;br /&gt;
**[[Modules:EMSegment-Documentation-3.4|EM Segementer batch]] (Stephen Aylward)&lt;br /&gt;
**[[Modules:GaussianBlur-Documentation-3.4|Gaussian blur batch]] (Stephen Aylward)&lt;br /&gt;
**[[Modules:Registration-Documentation-3.4|Registration batch]] (Stephen Aylward)&lt;br /&gt;
===Converters===&lt;br /&gt;
**[[Modules:CreateaDicomSeries-Documentation-3.4|Create a Dicom Series]] (Bill Lorensen)&lt;br /&gt;
**Dicom to NRRD (Xiaodong Tao)&lt;br /&gt;
**[[Modules:OrientImages-Documentation-3.4|Orient Images]] (Bill Lorensen)&lt;br /&gt;
&lt;br /&gt;
===Demonstration===&lt;br /&gt;
**[[Modules:ExecutionModelTour-Documentation-3.4|Execution Model Tour]] (Daniel Blezek, Bill Lorensen)&lt;br /&gt;
**Scripted Module Example (unknown)&lt;br /&gt;
===Filtering===&lt;br /&gt;
**Change Tracker Command-line &lt;br /&gt;
**[[Modules:CheckerboardFilter-Documentation-3.4|Checkerboard Filter]] (Bill Lorensen)&lt;br /&gt;
**Extract Skeleton (Pierre Seroul, Martin Styner, Guido Gerig, Stephen Aylward)&lt;br /&gt;
**[[Modules:HistogramMatching-Documentation-3.4|Histogram Matching]] (Bill Lorensen)&lt;br /&gt;
**Image Label Combine (Alex Yarmarkovich)&lt;br /&gt;
**[[Modules:OtsuThreshold-Documentation-3.4|Otsu Threshold]] (Bill Lorensen)&lt;br /&gt;
**[[Modules:ResampleVolume-Documentation-3.4|Resample Volume]] (Bill Lorensen)&lt;br /&gt;
**Resample Volume2 (Francois Budin)&lt;br /&gt;
**Threshold Image (Nicole Aucoin)&lt;br /&gt;
**[[Modules:VotingBinaryHoleFilling-Documentation-3.4|Voting Binary Hole Filling]] (Bill Lorensen)&lt;br /&gt;
**Zero Crossing Based Edge Detection Filter&lt;br /&gt;
**Arithmetic&lt;br /&gt;
***[[Modules:AddImages-Documentation-3.4|Add Images]] (Bill Lorensen)&lt;br /&gt;
***[[Modules:SubtractImages-Documentation-3.4|Subtract Images]] (Bill Lorensen)&lt;br /&gt;
**Denoising&lt;br /&gt;
***[[Modules:GradientAnisotropicFilter-Documentation-3.4| Gradient Anisotropic Filter]]  (Bill Lorensen checked this in)&lt;br /&gt;
***[[Modules:CurvatureAnisotropicDiffusion-Documentation-3.4|Curvature Anisotropic Diffusion]] (Bill Lorensen)&lt;br /&gt;
***Gaussian Blur (Julien Jomier, Stephen Aylward) &lt;br /&gt;
***[[Modules:MedianFilter-Documentation-3.4|Median Filter]] (Bill Lorensen)&lt;br /&gt;
**Morphology&lt;br /&gt;
***[[Modules:GreyscaleFillHole-Documentation-3.4|Greyscale Fill Hole]] (Bill Lorensen)&lt;br /&gt;
***[[Modules:GreyscaleGrindPeak-Documentation-3.4|Greyscale Grind Peak]] (Bill Lorensen)&lt;br /&gt;
&lt;br /&gt;
===Models===&lt;br /&gt;
**Clip Model (Alex Yarmarkovich)&lt;br /&gt;
**Distance Transform Model (unknown)&lt;br /&gt;
**Grayscale Model Maker (Nicole Aucoin)&lt;br /&gt;
**[[Modules:Modelmaker-Documentation-3.4| Modelmaker]] (Nicole Aucoin)&lt;br /&gt;
**Model into Label Volume (Nicole Aucoin, Bill Lorensen)&lt;br /&gt;
**Probe Volume with Model (Paint) (Lauren O'Donnell)&lt;br /&gt;
&lt;br /&gt;
===Python Modules===&lt;br /&gt;
**Python Explode Volume Transform (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Gaussian Smoothing (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Gradient Anisotropic Diffusion  (Daniel Blezek)&lt;br /&gt;
**Python Numpy Script (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Resample Volume (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Reslice as Volume (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Script (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Surface Connectivity (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Surface ICP Registration (Luca Antiga, Daniel Blezek)&lt;br /&gt;
**Python Surface Toolbox (Luca Antiga, Daniel Blezek)&lt;br /&gt;
&lt;br /&gt;
===Registration===&lt;br /&gt;
**Affine Registration  (Daniel Blezek)&lt;br /&gt;
**[[Modules:DeformableB-SplineRegistration-Documentation-3.4|Deformable B-Spline Registration]] (Bill Lorensen)&lt;br /&gt;
**Diffeomorphic Demons Algorithm (Tom Vercauteren, Enger Konukoglu, Killian Pohl)&lt;br /&gt;
**Linear Registration (Daniel Blezek)&lt;br /&gt;
**Realign Volume (Nicole Aucoin)&lt;br /&gt;
**Rigid Registration (Daniel Blezek)&lt;br /&gt;
**Test Grid Transform Registration (Yinglin Lee)&lt;br /&gt;
**(Utah) Deformable B-Spline Registration (Experimental) (Sam Gerber, Jim Miller, Steve Pieper, Ross Whitaker)&lt;br /&gt;
===Segmentation===&lt;br /&gt;
**EM Segment Command-Line (unknown)&lt;br /&gt;
**EM Segment Simple (unknown)&lt;br /&gt;
**EMSegmentTemplateBuilder (unknown)&lt;br /&gt;
**Freesurfer Surface Section Extraction (Katharina Quintus)&lt;br /&gt;
**Gyri Contour Segmentation (Peter Karasev)&lt;br /&gt;
**Simple Region Growing (Jim Miller)&lt;br /&gt;
===Statistics===&lt;br /&gt;
**Calculate Volume Statistics (Tri Ngo)&lt;br /&gt;
**Label Statistics (Steve Pieper)&lt;br /&gt;
===DWI and Tractography===&lt;br /&gt;
====DWI====&lt;br /&gt;
**DICOM DWI loader (Xiaodong Tao)&lt;br /&gt;
**Estimation&lt;br /&gt;
***Diffusion Tensor Estimation (Raul San Jose Estepar)&lt;br /&gt;
***Python Diffusion Tensor Estimation (Julien von Siebenthal)&lt;br /&gt;
**Python Extract Baseline DWI Volume (Julien von Siebenthal)&lt;br /&gt;
**Filter&lt;br /&gt;
***Joint Rician LMMSE Image Filter (Antonio Tritan Vega, Santiago Aja Fernandez)&lt;br /&gt;
***Rician LMMSE Image Filter (Antonio Tritan Vega, Santiago Aja Fernandez)&lt;br /&gt;
***Unbiased Non Local Means filter for DWI  (Antonio Tritan Vega, Santiago Aja Fernandez)&lt;br /&gt;
**Python Shift DWI Values (Julien von Siebenthal)&lt;br /&gt;
**Python Recenter Scalar to DWI Volume (Julien von Siebenthal)&lt;br /&gt;
&lt;br /&gt;
====DTI====&lt;br /&gt;
**Resample DTI Volume (Francois Budin)&lt;br /&gt;
**Display (Alex Yarmakovich)&lt;br /&gt;
**Diffusion Tensor Scalar Measurements (Raul San Jose Estepar)&lt;br /&gt;
**Analysis&lt;br /&gt;
***Fiducial Seeding (Steve Pieper, Alex Yarmakovich)&lt;br /&gt;
***ROI Select (Lauren O'Donnell)&lt;br /&gt;
***ROI Seeding (Raul San Jose Estepar)&lt;br /&gt;
***Python Stochastic Tractography (Julien von Siebenthal)&lt;br /&gt;
&lt;br /&gt;
=Documented Modules=&lt;br /&gt;
&lt;br /&gt;
==Main GUI==&lt;br /&gt;
&lt;br /&gt;
==Modules==&lt;br /&gt;
&lt;br /&gt;
===Core and Loadable Modules===&lt;br /&gt;
&lt;br /&gt;
==CLI Modules==&lt;br /&gt;
&lt;br /&gt;
=Modules on NITRC=&lt;br /&gt;
[[Image:SlicerOnNITRC2009.png|thumb|right|Slicer on NITRC]]&lt;br /&gt;
We are using NITRC as a repository for contributed modules. As a general rule, we do not test them ourselves, it is the downloaders job to ensure that they do what they want them to do.&lt;br /&gt;
&lt;br /&gt;
Click [http://www.nitrc.org/search/?type_of_search=soft&amp;amp;words=slicer3&amp;amp;Search.x=0&amp;amp;Search.y=0&amp;amp;Search=Search  here] to see a listing of Slicer 3 modules on NITRC.&lt;br /&gt;
&lt;br /&gt;
'''This is how to get modules from NITRC into Slicer 3.4'''&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:Volume_Rendering_With_Cuda&amp;diff=5112</id>
		<title>Slicer3:Volume Rendering With Cuda</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:Volume_Rendering_With_Cuda&amp;diff=5112"/>
		<updated>2008-06-05T20:32:00Z</updated>

		<summary type="html">&lt;p&gt;Hata: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
On this page a description of the ''Volume Rendering algorithm with CUDA For Slicer3'' is presented.&lt;br /&gt;
A link to the IGT project page can be found on [http://wiki.na-mic.org/Wiki/index.php/Slicer-IGT/GPU-IGT Slicer-IGT/GPU-IGT].&lt;br /&gt;
&lt;br /&gt;
Involved in this projects are '''Benjamin Grauer (integration into vtk/Slicer3)''', Nicholas Harlambang (cuda algorithms) and Nobuhiko Hata (project supervisor).&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
The goal of this project is to implement a CUDA based Volume Rendering Technique inside of [http://www.vtk.org VTK] and Slicer3.&lt;br /&gt;
&lt;br /&gt;
== Project Outline ==&lt;br /&gt;
Several steps have to be made to integrating a CUDA based volume rendering technique into vtk.&lt;br /&gt;
#Implement and Integrate a '''CUDA Volume Rendering algorithm'''.&lt;br /&gt;
#Integrate '''CUDA runtime API''' support into VTK using a class based approach.&lt;br /&gt;
#Integrate the algorithm into a '''VTK pipeline''' (described below)&lt;br /&gt;
#Create a '''user interface''' to control the flow of the Volume Rendering within Slicer3.&lt;br /&gt;
&lt;br /&gt;
= Cuda Volume Rendering Algorithm =&lt;br /&gt;
The Code that we use so far has been implemented by Nicholas Harlambang and can be viewed [http://svn.orxonox.net/subprojects/volrenSample here].&lt;br /&gt;
&lt;br /&gt;
== Feature Wishlist ==&lt;br /&gt;
{| border=1 cellspacing&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! Relevance || Feature || Status || Dependency || Description&lt;br /&gt;
|-&lt;br /&gt;
| +++       || Z-Buffer || 60% || Current Z-buffer to CUDA || Render and stop at the Z-buffer information&lt;br /&gt;
|-&lt;br /&gt;
| ++ || Different Data Types || 100% || || uchar, char, float, double, short, ushort, int&lt;br /&gt;
|-&lt;br /&gt;
| +++ || Sample Distance || 60% || || The sampling step distance along the ray.&lt;br /&gt;
|-&lt;br /&gt;
| ++ ||  Transfer Function || 100% || ||&lt;br /&gt;
|-&lt;br /&gt;
| + || Lighting Model || 30% || || &lt;br /&gt;
|-&lt;br /&gt;
| = || Multiple Lights || 0% || || &lt;br /&gt;
|-&lt;br /&gt;
| - || Shading Model || 0% || Lighting Model || Use Shaders to render &lt;br /&gt;
|-&lt;br /&gt;
| +++ || Perspective and Planar Projection || 100% || || Perspective Projection using vtkCamera Projection Matrix&lt;br /&gt;
|-&lt;br /&gt;
| = || Memory To Texture || 100% ||  || Render CUDA directly onto Texture (for GeForce Cards only)&lt;br /&gt;
|-&lt;br /&gt;
| - || Partial Memory Update || 0% || || Partial Updates of the Input data for animation&lt;br /&gt;
|-&lt;br /&gt;
| -- || vtkCudaVolumeProperty || 100% || Transfer Function, || Implement all the features of [http://public.kitware.com/VTK/doc/release/4.0/html/classvtkVolumeProperty.html vtkVolumeProperty] &lt;br /&gt;
|-&lt;br /&gt;
| - || Animation || 60% || Partial Memory Update || 4D Animated Image Data&lt;br /&gt;
|-&lt;br /&gt;
| + || No more static Symbols || 80% || || Remove the need of all c-style static Symbols in the CUDA code&lt;br /&gt;
|-&lt;br /&gt;
| --- || Multicore/GPU implementation || 0% || Everything else || Multicore implementation of the Cuda Rendering&lt;br /&gt;
|-&lt;br /&gt;
| -- || Gradients || ?% || || Not sure yet!  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= VTK Cuda Runtime API support =&lt;br /&gt;
The c-interface to the CUDA objects and functions will be wrapped in a safe object oriented VTK-C++ class hierarchy.&lt;br /&gt;
*[[VTK Cuda Wrapper Classes]]&lt;br /&gt;
*[http://wiki.na-mic.org/Wiki/index.php/VTK_Cuda_Memory_Management_Classes VTK Cuda Memory Management Classes]&lt;br /&gt;
&lt;br /&gt;
== Cuda Memory ==&lt;br /&gt;
Cuda memory comes in different shapes and forms:&lt;br /&gt;
*'''Host Memory''': Non-Paged Memory on the host side for fast interaction with the CUDA devices. see ''vtkCudaHostMemory.h''&lt;br /&gt;
*'''Linear Memory''': Linerely arranged memory on the CUDA device. see ''vtkCudaMemory.h''&lt;br /&gt;
*'''Pitch Memory''': 2D memory arrays that are aligned in the correct fashion for a fast interaction on the cuda devices. (Arranged over the memory banks for quick access). see ''vtkCudaMemoryPitch.h''&lt;br /&gt;
*'''Array Memory''': Arrays allocated over the CUDA API. see ''vtkCudaMemoryArray.h''&lt;br /&gt;
*'''Texture Memory''': Not discussed here. see [[VTK Cuda Wrapper Classes]]&lt;br /&gt;
All these memories are derived from a base class (see ''vtkCudaMemoryBase.h'') as shown in the following picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:vtkCudaMemoryManagementClassDiagram.png|frame|none|Cuda Memory Class Diagram]]&lt;br /&gt;
&lt;br /&gt;
= VTK Modules and Pipeline =&lt;br /&gt;
These are the modules that will be created in order to integrate a Cuda based Volume Rendering into the Slicer3 pipeline&lt;br /&gt;
# '''A [http://www.vtk.org/doc/release/5.0/html/a01572.html vtkImageReader]:''' to read Volume data as any kind of Volume Data&lt;br /&gt;
# '''A [[vtkCudaImageFilter]]:''' A Filter to convert from the reader output to a cuda-able DataSet&lt;br /&gt;
# '''A [http://wiki.na-mic.org/Wiki/index.php/VtkCudaDataSet VtkCudaDataSet]:''' A new vtkDataSet where that holds and handles the data transfer from and to one or multiple CUDA devices.&lt;br /&gt;
# '''A [[vtkCudaVolumeMapper]]:''' A new vtkVolumeMapper that renders the scene using the &lt;br /&gt;
## lighting model&lt;br /&gt;
## a prepared Z buffer&lt;br /&gt;
## a camera position&lt;br /&gt;
## A [http://www.vtk.org/doc/release/5.0/html/a02096.html vtkTexture] and a Plane to render the result to&lt;br /&gt;
# '''An actor''' that places the volume into the scene&lt;br /&gt;
# Chain this '''pipeline''' together and attach it to a rendering window.&lt;br /&gt;
&lt;br /&gt;
In the following image the pipeline is displayed together with the connections from the VTK, Slicer3 and CUDA frameworks.&lt;br /&gt;
[[Image:VtkCudaVolumeRenderingPipeline.png|frame|none|500px|CUDA Volume Rendering Pipeline]]&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
* The '''Fat''' line displays the pipeline flow.&lt;br /&gt;
* Green colored fields are classes from the Slicer3 or vtk implementation&lt;br /&gt;
* Red colored fields are CUDA and hardware specific parts&lt;br /&gt;
* Blue colored fields are specially implemented parts for the communication of cuda and vtk and the volume rendering algorithms.&lt;br /&gt;
&lt;br /&gt;
= A Slicer3 User Interface =&lt;br /&gt;
The GUI will be designed using KWWidgets. With this the user will be able to change the rendering resolution, step size, control the color sceme and load and store further information.&lt;br /&gt;
&lt;br /&gt;
= Tasks and Timeline =&lt;br /&gt;
== Tasks and Completion ==&lt;br /&gt;
{| border=1 cellspacing&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! colspan=3 | Status&lt;br /&gt;
|- bgcolor=&amp;quot;#bbddff&amp;quot;&lt;br /&gt;
|colspan=3 | Overall Status&lt;br /&gt;
| rowspan=20 valign=&amp;quot;top&amp;quot; | 75%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2  | Integrate into VTK &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot;  | 85% &lt;br /&gt;
|-&lt;br /&gt;
|VTK Memory Class Definitions || 90%&lt;br /&gt;
|-&lt;br /&gt;
|VTK Access Classes || 80%&lt;br /&gt;
|-&lt;br /&gt;
|VTK Algorithm || 90%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2 bgcolor=&amp;quot;#ddffff&amp;quot; | CUDA Volume Rendering Algorithm &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#ddffff&amp;quot; | 80%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt to Z-buffer || 70%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt lighting model || 0%&lt;br /&gt;
|-&lt;br /&gt;
|Adapt to input Image || 100%&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#ddffff&amp;quot;&lt;br /&gt;
|colspan=2 | Integration into Slicer &lt;br /&gt;
| rowspan=4 valign=&amp;quot;top&amp;quot; | 80%&lt;br /&gt;
|-&lt;br /&gt;
|Integrate as a Module || 100%&lt;br /&gt;
|-&lt;br /&gt;
| GUI || 90% &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#ccccff&amp;quot;&lt;br /&gt;
! From !! To !! Task&lt;br /&gt;
|-&lt;br /&gt;
| 12/14/07 || 05/31/08 || Master Thesis Duration&lt;br /&gt;
|-&lt;br /&gt;
| 12/14/07 || 12/31/07 || Reading into the Project, Defining Basic Classes&lt;br /&gt;
|-&lt;br /&gt;
| 01/01/08 || 01/06/08 || Basic Class Definition Ready for Hands on Meeting&lt;br /&gt;
|-&lt;br /&gt;
| 01/07/08 || 01/12/08 || Hands on meeting in Salt Lake City&lt;br /&gt;
|-&lt;br /&gt;
| 01/14/08 || 02/01/08 || Further Implementation&lt;br /&gt;
|-&lt;br /&gt;
| 05/01/08 || 29/05/08 || Write Master Thesis&lt;br /&gt;
|-&lt;br /&gt;
| 06/14/08 ||          || Hand in Masters Thesis in Zurich&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;br /&gt;
See the daily progress [http://www.google.com/notebook/public/08097279861700679221/BDQdBIgoQ1czeruoi?hl=en here].&lt;br /&gt;
* (01/03/08): Successfully proved that CUDA runs inside of Slicer3 with the code from Nicholas Harlambang&lt;br /&gt;
* (02/01/08): Cuda inside of Slicer3 and external Application, 4D imaging&lt;br /&gt;
* (02/05/08): Integration Rendering with Cuda Code and Transfer Functions&lt;br /&gt;
* (02/11/08): Integration with Network Module [http://wiki.na-mic.org/Wiki/index.php/OpenIGTLink OpenIGTLink] See [http://people.ee.ethz.ch/~grauerb/Slicer3/openIGTLinkCuda02_02.htm here]&lt;br /&gt;
* (03/06/08): Model is aligned correctly in Slicer RAS space.&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
#For testing purposes: [[Image:Heart256.raw]] Store this file in Slicer3/Modules/VolumeRenderingCuda/Testing/heart256.raw&lt;br /&gt;
#Also checkout the main project page at [http://wiki.na-mic.org/Wiki/index.php/Slicer-IGT/GPU-IGT Slicer-IGT/GPU-IGT]&lt;br /&gt;
#Currently I am working in this [http://www.na-mic.org/svn/Slicer3/branches/cuda branch] &lt;br /&gt;
##on CudaSupport: [http://www.na-mic.org/svn/Slicer3/branches/cuda/Modules/VolumeRenderingCuda Libs/CudaSupport]&lt;br /&gt;
##and CudaVolumeRendering: [http://www.na-mic.org/svn/Slicer3/branches/cuda/Modules/VolumeRenderingCuda Modules/VolumeRenderingCuda]&lt;br /&gt;
#Slicer Version using CUDA: [[media:SlicerWithCuda.zip]]&lt;br /&gt;
&lt;br /&gt;
==People Involved==&lt;br /&gt;
* Nobuhiko Hata: Supervisor&lt;br /&gt;
* Nicholas Harlambang: Implementer of the Cuda Code and Algorithms&lt;br /&gt;
* Benjamin Grauer: Implementer of the VTK/Cuda integration and CudaSupport Library&lt;br /&gt;
* Andreas Freudling: First Implementation of Volume Rendering in Slicer3 and great supporter&lt;br /&gt;
&lt;br /&gt;
==Screen Captures==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:FirstCudaVolumeRenderInSlicer3.png|The First Volume Render using CUDA within the Slicer Window&lt;br /&gt;
Image:First4DVolumeRenderInSlicer3.png|The First 4D Volume Rendering in CUDA using VTK &lt;br /&gt;
Image:CudaIntegrationMethodHead.png|The First Volume Render using CUDA within the Slicer Window&lt;br /&gt;
Image:CudaIntegrationMethodInterpolationHead.png|Volume Rendered Head with a Interpolation Smoother&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hata</name></author>
		
	</entry>
</feed>