<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Documentation%2F4.8%2FExtensions%2FCurveMaker</id>
	<title>Documentation/4.8/Extensions/CurveMaker - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Documentation%2F4.8%2FExtensions%2FCurveMaker"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.8/Extensions/CurveMaker&amp;action=history"/>
	<updated>2026-04-13T23:05:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.8/Extensions/CurveMaker&amp;diff=55574&amp;oldid=prev</id>
		<title>UpdateBot: Nightly -&gt; 4.8</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.8/Extensions/CurveMaker&amp;diff=55574&amp;oldid=prev"/>
		<updated>2017-10-18T07:05:53Z</updated>

		<summary type="html">&lt;p&gt;Nightly -&amp;gt; 4.8&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
Author: Junichi Tokuda (BWH), Laurent Chauvin (BWH)&amp;lt;br&amp;gt;&lt;br /&gt;
Contact: Junichi Tokuda &amp;lt;email&amp;gt; tokuda@bwh.harvard.edu&amp;lt;/email&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
License: [http://www.slicer.org/pages/LicenseText Slicer license]&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|namic}}|NA-MIC&lt;br /&gt;
|{{collaborator|logo|ncigt}}|NCIGT&lt;br /&gt;
|{{collaborator|logo|spl}}|SPL&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This work is supported by NA-MIC, NCIGT, and the Slicer Community. This work is partially supported by NIH R01CA138586 &amp;quot;A New Method For Improved Targeting in Image-Guided Abdominal Interventions&amp;quot; (PI: Nobuhiko Hata), P01-CA67165 &amp;quot;Image Guided Therapy&amp;quot; (PI: Clare M. Tempany) &amp;lt;br&amp;gt;&lt;br /&gt;
The module has been developed based on ideas and feedback from the community. We would like to especially thank:&lt;br /&gt;
* Dr. Matthew Jolley, M.D., Fellow in Pediatric Anesthesia / Pediatric Cardiology, Boston Children's Hospital.&lt;br /&gt;
* Dr. Sumit Agrawal, MD, FRCS, Assistant Professor, Department of Otolaryngology, University of Western Ontario.&lt;br /&gt;
* Dr. Wei Wang, Ph.D., Department of Radiology, Brigham and Women's Hospital.&lt;br /&gt;
* Dr. Ron Kikinis, M.D. Department of Radiology, Brigham and Women's Hospital.&lt;br /&gt;
* Dr. Steve Pieper, Ph.D. Isomics, Inc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Extension Description}}&lt;br /&gt;
{{documentation/modulename}} is a simple scripted module to generate a 3D curve from a fiducial list. Curves between fiducial points are interpolated by vtkSplineFilter. The curve is dynamically updated as the fiducial list is modified (moved/added/deleted). The module is useful to draw lines in 3D space, or visualize tracked catheters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Use Cases}}&lt;br /&gt;
*Draw lines in 3D.&lt;br /&gt;
*Visualization of catheters.&lt;br /&gt;
*Analysis of needle trajectories for image-guided percutaneous interventions&lt;br /&gt;
*Quantitative analysis of curves, including&lt;br /&gt;
** Length&lt;br /&gt;
** Distance from specific points&lt;br /&gt;
** Curvature&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Slicer4-CurveMaker-GUI.png|thumb|400px|CurveMaker GUI and result of 3D curve.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
*Parameters&lt;br /&gt;
**'''Source points''': The list of fiducial points on the curve&lt;br /&gt;
**'''Curve model''': The model of the curve.&lt;br /&gt;
**'''Radius''': The radius of the curve model.&lt;br /&gt;
**'''Interpolation''': The method to interpolate the fiducial points.&lt;br /&gt;
***'''None''': The points are connected by a straight line. &lt;br /&gt;
***'''Cardinal Spline''': The default method.&lt;br /&gt;
***'''Hermite Spline''': The same interpolation method as the [[Documentation/Nightly/Modules/Endoscopy]] module. Useful for visualizing the trajectory of the virtual endoscope.&lt;br /&gt;
**'''Ring Mode''': Generate a closed-loop. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt; (NOTE: Ring Mode does not support Hermit Spline. Ring Mode &amp;quot;On&amp;quot; is disabled, when Hermit Spline is selected.)&amp;lt;/font&amp;gt;&lt;br /&gt;
**'''Enable''': Start updating the curve model based on the curve. While this check box is on, the curve model is automatically updated whenever the parameters are modified.&lt;br /&gt;
*Length&lt;br /&gt;
**'''Length''': The length of the current curve is shown in millimeter.&lt;br /&gt;
*Distance&lt;br /&gt;
**'''Distance from''': A MarkupsFiducial node that contains target points for distance measurement. The shortest distances between these points and the curve are calculated and shown in the table below.&lt;br /&gt;
**'''Extrapolate curves to measure the distances''': If enabled, the curve is extrapolated to find the closest point on the curve from the target points.&lt;br /&gt;
**'''Show error vectors''': Show vectors from the closet point on the curve to the target points on the table&lt;br /&gt;
*Curvature&lt;br /&gt;
**'''Curvature mode''': Color-map the curvature&lt;br /&gt;
**'''Color range''': Adjust the color range automatically, if &amp;quot;Auto&amp;quot; is selected.&lt;br /&gt;
**'''Color range''': Manually adjust the color range. &lt;br /&gt;
**'''Mean''': Mean curvature.&lt;br /&gt;
**'''Minimum''': Minimum curvature.&lt;br /&gt;
**'''Maximum''': Maximum curvature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Tutorials}}&lt;br /&gt;
==Installation==&lt;br /&gt;
The new features (Length, Distance, and Curvature) are available on nightly builds released on July 28 or later. First, open 3D Slicer:&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-3DSlicerScreen.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Open the Slicer Extensions from the icon on the menu bar:&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-SlicerExtensions.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Curve Maker&amp;quot; module from the list of extensions and click &amp;quot;INSTALL&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-SlicerExtensions-Install.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Once you restart 3D Slicer, the Curve Maker module should show up on the Modules menu (under Informatics-&amp;gt;Curve Maker)&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-Slicer-ModulesMenu.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==Generate a curve from fiducial points==&lt;br /&gt;
&lt;br /&gt;
First, create a fiducial list. Click the fiducial button on the menu bar to change the mouse mode to &amp;quot;Create-and-Place Fiducial&amp;quot;, and then click on the image to create a fiducial. Repeat those steps to create a list of fiducials. See [[Documentation/Nightly/Modules/Markups|the Markups module page]] for detail.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-FiducialPointMode.png|300px]] [[Image:CurveMaker-2.0-DefineFiducialPoints.png|300px]]&lt;br /&gt;
&lt;br /&gt;
If you have created a fiducial list right after starting 3D Slicer, the fiducial list should be named &amp;quot;F&amp;quot;. In the Curve Maker module, click the &amp;quot;Source Points&amp;quot; pull-down menu and select &amp;quot;F&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-SelectSourcePoints.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Also, create a 3D model node for the curve by selecting &amp;quot;Create new Model&amp;quot; from the &amp;quot;Curve model&amp;quot; pull-down menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-CreateNewModel.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Once the source points and curve models are specified, click &amp;quot;Generate Curve&amp;quot;. A curve that connects the fiducial points will appear on the 3D viewer.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-GenerateCurve.png|300px]] [[Image:CurveMaker-2.0-Curve.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Generate Curve&amp;quot; button only generates a curve once, and needs to be clicked every time parameters are changed. To update curves automatically, turn on &amp;quot;Auto update&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-AutoUpdate.png|300px]] [[Image:CurveMaker-2.0-DragPoint.png|300px]]&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Ring mode&amp;quot; is &amp;quot;On&amp;quot;, the first and the last points are connected to draw a ring.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-RingModeOn.png|300px]] [[Image:CurveMaker-2.0-Ring.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==Measure Curve Length==&lt;br /&gt;
To measure the length of the curve, simply open the &amp;quot;Length&amp;quot; frame.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-Length.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Measure Distances from Curve to Points==&lt;br /&gt;
To measure distances from the curve to points, first create a second MarkupsFiducial node using the Markups module. Open the Markups and choose &amp;quot;Create new MarkupsFiducial as ..&amp;quot; from &amp;quot;List&amp;quot; pull-down menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-Markups.png|300px]] [[Image:CurveMaker-2.0-CreateMarkups.png|300px]]&lt;br /&gt;
&lt;br /&gt;
You will be prompted to enter a name for the new Markups node. In this tutorial, we use &amp;quot;Points&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-EnterMarkupsName.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Once the new MarkupsFiducial node is selected, start adding new points by clicking &amp;quot;Create-andPlace Fiducial&amp;quot; button on the menu bar followed by a point on the image.&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-Distance-CreateAndPlaceFiducial1.png|300px]] [[Image:CurveMaker-2.0-Distance-CreateAndPlaceFiducial2.png|300px]] &lt;br /&gt;
&lt;br /&gt;
Open the &amp;quot;Distance&amp;quot; frame and choose the MarkupsFiducial node created in the previous step (named &amp;quot;Points&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-Distance-SelectFiducial.png|300px]] &lt;br /&gt;
&lt;br /&gt;
The distance from the curve to each point will be displayed. &lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-Distance-DistanceTable.png|300px]]&lt;br /&gt;
&lt;br /&gt;
These are the distances between the Markups points and points on the curve closest to each point. If &amp;quot;Extrapolate curves to measure the distances&amp;quot; is checked, it will extrapolate curves before searching the closet point. If &amp;quot;Show error vectors&amp;quot; is checked, the table also shows the vector from the closest point on the curve to each Markups point.&lt;br /&gt;
&lt;br /&gt;
==Visualize Curvature==&lt;br /&gt;
&lt;br /&gt;
Open the &amp;quot;Curvature&amp;quot; frame, and turn on &amp;quot;Curvature mode&amp;quot;. Also, select &amp;quot;Auto&amp;quot; for &amp;quot;Color range&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image:CurveMaker-2.0-CurvatureMode.png|300px]] [[Image:CurveMaker-2.0-Curvature.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Similar Extensions}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|References}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-section|Information for Developers}}&lt;br /&gt;
The code is available at [https://github.com/tokjun/CurveMaker Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{documentation/{{documentation/version}}/module-subsection|Logo}}&lt;br /&gt;
[[Image:CurveMakerIcon.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/extension-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>UpdateBot</name></author>
		
	</entry>
</feed>