Skip to main content

Examples

Basic usage

ExampleDescription
Basic Stack Viewport UsageDisplays a single image in a Stack Viewport.
Stack Viewport APIDemonstrates how to interact with a Stack viewport (e.g. Set VOI Range, Next/Previous Images, Flip H/V, Rotate, Invert, Zoom/Pan, Reset)
Stack Viewport PositioningDemonstrates basic positioning of the viewport image using display area and flip/rotation
Stack Sigmoid LUTDemonstrates the Sigmoid LUT Function instead of Linear
Stack Viewport EventsDemonstrates the Events that are fired during interaction with a Stack Viewport
Stack Viewport Canvas-to-WorldDemonstrates how to obtain the coordinates in the 3D world from a coordinate on the canvas.
Basic Volume Viewport UsageDisplays a set of DICOM images in a Volume Viewport.
Volume Viewport APIDemonstrates how to interact with a Volume viewport (e.g. Set VOI Range, Change Camera Position / Orientation, Change Slab Thickness, Flip H/V, Rotate, Invert, Zoom/Pan, Reset)
Volume Sigmoid LUTDemonstrates the Sigmoid LUT Function instead of Linear
3D Volume RenderingDemonstrates how to 3D render a volume and apply a preset
Volume Viewport EventsDemonstrates the Events that are fired during interaction with a Volume Viewport
Multiple Volumes in a Volume ViewportDemonstrates how to interact with a Volume viewport when using multiple volumes (e.g. for PET/CT fusion).
Multiple Volume Canvas-to-WorldDemonstrates how to use the canvasToWorld API to find the intensity value of each volume on mouse hover
Poly Data Actor in a Volume ViewportDemonstrates how to render poly data with a Volume viewport
Legacy DICOMweb (WADO-URI) SupportDemonstrates how to support retrieval of entire Part 10 DICOM files directly via URL
Basic Volume using streaming WADOURIDemonstrates how to displays a DICOM series (via URL) in a Volume viewport
Load Web images of PNG or JPG formatDemonstrates how render web images in a stack viewport
Load a dynamic 4D dataDemonstrates how you can render 4D data with cornerstone 3d
Render To CanvasDemonstrates how to use the api to render to a canvas directly
Change the colormap and adjusting the opacityDemonstrate how to interact with a fusion viewport, specifically by changing the colormap and adjusting the opacity.
Prioritizing Slices during Volume LoadingDemonstrates how to customize the slice loading order using the streaming-image volume loader
Programmatic Pan/ZoomDemonstrates how to programmatically pan/zoom a stack viewport. It can be used for setting initial display area and presentation state.
DICOM P10 from the local file systemProvides an interface to load a DICOM P10 image from your local file system to the Cornerstone3D
DICOM P10 from the local file system using CPUCornerstone3D uses WebGL for rendering by default (if available) and a fallback to CPU. This example force rendering on CPU for debugging purposes.
Stack viewport default propertiesDemonstrates how you can set per image properties for a stack viewport that acts as default values for that specific image
Volume Slab ScrollDemonstrates how to use the slab scroll tool to scroll through a volume
Resize viewport and change aspect ratioResize the viewport and allow various aspect ratios/conditions
Apply view reference and/or presentation parametersDemonstrates how to apply various view/reference presentation parameters.
Custom Web Worker FunctionDemonstrates how to use the web worker manager to register and execute custom web worker functions off the main thread

Tools library

ExampleDescription
ETDRS Grid ToolDemonstrates how to use the ETDRS Grid tool. An ETDRS Grid (Early Treatment Diabetic Retinopathy Study Grid) is a standardized grid used in ophthalmology to assess macular thickness and retinal changes.
Multiple Tool GroupsDemonstrates the usage of multiple tool groups for a set of viewports.
Stack Manipulation ToolsDemonstrates several manipulation tools (window/level, pan, zoom) as well as Stack Viewport-specific scrolling
Stack Manipulation Tools TouchDemonstrates several manipulation tools (window/level, pan, zoom) as well as Stack Viewport-specific scrolling for mobile touch
Annotation Tool ModesDemonstrates the various tool modes for annotation tools (active, passive, enabled, disabled)
Stack Annotation ToolsDemonstrates usage of various annotation tools (Probe, Rectangle ROI, Elliptical ROI, Bidirectional measurements) on a Stack Viewport.
Calibration ToolsDemonstrates usage of calibration tools on a Stack Viewport.
Volume Annotation Tools Demonstrates annotation using the Length tool in a Volume Viewport (on axial, sagittal, and oblique views)
Annotation Selection and LockingDemonstrates how to toggle the Locked and Selected states for Annotations
Viewports Reset CameraDemonstrates various options that are available for resetting camera on viewports
Annotation changing visibilityDemonstrates how to toggle the Visibility state for Annotations
Binding Tools with Modifier KeysDemonstrates how to bind a tool to a keyboard and mouse combination (e.g. shift+click, ctrl+click)
Magnify ToolDemonstrates the usage of the magnification tool
Advanced Magnify ToolDemonstrates the usage of the advanced magnification tool on stack and volume viewports
CINE ToolDemonstrates the usage of the CINE tool
Freehand ROI ToolDemonstrates drawing of both open and closed freehand ROIs (contour tool) on stack and volume viewports
Sculptor ToolDemonstrates sculpting of freehand ROIs and FreehandContourSegmentations
Manipulation Tools with Poly Data in a Volume Viewport APIDemonstrates how to interact with a Volume viewport (Pan, Zoom, Rotate) by mouse events
Volume Viewport OrientationDemonstrates you can switch between different orientation of a volume viewport
Referencing CursorsDemonstrates how to synchronize the cursor between multiple viewports
Double Click With Stack Annotation ToolsDemonstrates double click detection before/during/after using various annotation tools on a stack viewport.
Load a petCT data where PT series is 4DDemonstrates how to render a 4D data into multiple viewports and fuse them
ColorBarDemonstrates how to add an interactive color bar to stack viewport
Advanced ColorBarDemonstrates how to add an interactive color bar to stack and volume viewports with PT/CT volumes
Ultrasound Enhanced RegionDemonstrates several tools that can be used on Ultrasound data with Sequence of Ultrasound Regions Attributes
Window Level RegionDemonstrates how to use the window level region tool to adjust the window level of an image
Spline ROI ToolsDemonstrates how to use spline ROI tools (Linear, Cardinal, Catmull-ROM and BSpline)
LivewireDemonstrates how to use the livewire tool to create ROIs

Segmentation

ExampleDescription
Labelmap Segmentation RenderingDemonstrates how to add a Labelmap to the viewports for rendering
Contour Segmentation RepresentationDemonstrates how to use the Contour Segmentation Representation
Surface Segmentation RepresentationDemonstrates how to use the Surface Segmentation Representation
Labelmap Segmentation SwappingDemonstrate how to display segmentations on a volume viewport, and swap which segmentation is being displayed
Global Labelmap Segmentation ConfigurationDemonstrates how to set a global configuration for segmentation representations
Contour rendering configuration Demonstrates how to set a configuration (such as line thickness) for contour rendering
Viewport Specific Labelmap Segmentation ConfigurationDemonstrate how to change the configuration of how a specific tool group displays segmentations through via segmentation representations
Labelmap segment-specific ConfigurationDemonstrates how to change the configuration of a specific segment
Segmentation Tools (Labelmap) - Brush, ScissorsDemonstrates how to use manual segmentation tools to modify the segmentation data
Labelmap Segmentation Dynamic Threshold and PreviewDemonstrates how to use dynamic threshold with preview to modify the segmentation data
Labelmap Segment Color ChangeHere we demonstrate how to change the color of a segment in a segmentation representation
Labelmap Segmentation LockingDemonstrate how a segment can be locked such that it cannot be edited by segmentation tools
Rendering Labelmap with Different ResolutionsDemonstrates that the segmentation resolution need not to be the same as the source data
Rectangle ROI Threshold SegmentationDemonstrates how to use the rectangle roi tool to perform threshold segmentation
Stack Labelmap creation/edit for stack viewportsDemonstrates how to create and edit a segmentation labelmap for stack viewports
Spline ROI ToolsDemonstrates how to use spline ROI tools (Linear, Cardinal, Catmull-ROM and BSpline)
Interpolation of Contours between slicesDemonstrates how to setup interpolation between frames for contour segmentations
Contour Segmentation ConfigurationDemonstrates how to set a configuration for contour segmentations
Segmentation Bidirectional ToolDemonstrates the calculation of largest bidirectional diameters within segmented contours, akin to RECIST measurements for assessing changes in tumor sizes or anatomical structures over time in medical imaging.
Segment Select ToolDemonstrates the segmentSelectTool capabilities which you can use to switch active segment by only hovering over them.
Spline Segmentation ToolsDemonstrates how to create contour segmentations using SplineROI tool
Advanced Spline Segmentation ToolsDemonstrates how to create contour segmentations using SplineROI tool on multiple viewports (stack and volume), segmentations and different styles for active and inactive states
Freehand Segmentation ToolDemonstrates how to create contour segmentations using planarFreehandROITool tool
Livewire Segmentation ToolDemonstrates how to create contour segmentations using livewireContour tool
sculptorTool ToolDemonstrates how to have similar brush tool effects on the contour

Advanced Tools library

ExampleDescription
Maximum Intensity Projection (MIP) - Jump to ClickDemonstrates how to obtain the location of the maximum value along the ray in a MIP view, and then navigate another set of viewports to this location.
CrosshairsHere we demonstrate crosshairs linking three orthogonal views of the same data
Overlay GridDemonstrate overlay grid tool usage with three viewports one for each orientation
Reference LinesDemonstrate reference line tool for rendering viewports location with respect to each other
Orientation MarkerDemonstrate orientation marker tool for viewports orientation it has cube, axis and custom actors
PET-CT Fusion + MIPLayoutPT-CT fusion layout with Crosshairs, and synchronized cameras, CT W/L and PET threshold
Shared Tool StateDemonstrates that annotations are stored on frame of reference, and can therefore be shared between Stack and Volume Viewports.
StackViewport to and from VolumeViewport Demonstrates how annotations are preserved and rendered correctly even when a stack viewport is converted to a volume viewport and vice versa. This is an advanced usage for MPR
Volume Viewport SynchronizationDemonstrates how to set up synchronization between viewports for viewport-level (e.g. camera) and actor-level (e.g. VOI) properties.
Cancel Annotation DrawingDemonstrates how to use the keyboard (ESC) key to cancel annotation drawing.
Scale Overlay ToolDemonstrates the scale overlay tool for rendering a scale on a viewport showing the real world size of the image.
Generate 3D Volume From 4D DataDemonstrates generating a 3D volume from 4D data using subtract, average or sum.
Dynamically Add AnnotationsDemonstrates how to dynamically add annotations to a viewport

Polymorph Segmentation

ExampleDescription
Convert contour segmentation to stack labelmapDemonstrates how to convert a contour segmentation to a stack labelmap
Convert contour segmentation to volume labelmapDemonstrates how to convert a contour segmentation to a volume labelmap
Convert contour segmentation to surfaceDemonstrates how to convert a contour segmentation to a closed surface
Convert stack labelmap to surfaceDemonstrates how to convert a stack labelmap to a closed surface
Convert volume labelmap to surfaceDemonstrates how to convert a volume labelmap to a closed surface
Convert surface to volume labelmapDemonstrates how to convert a closed surface to a volume labelmap
Convert surface to stack labelmapDemonstrates how to convert a closed surface to a stack labelmap
Convert volume labelmap to contourDemonstrates how to convert a volume labelmap to a contour segmentation
Convert surface to contourDemonstrates how to convert a closed surface to a contour segmentation

DICOM image loader

ExampleDescription
WADO-URI (DICOM P10)WADO-URI (DICOM P10 via HTTP GET) with different codecs
HTJ2K Stack Basic LoadingDemonstrates basic loading of HTJ2K
HTJ2K Volume Basic LoadingDemonstrates basic loading of HTJ2K in MPR views
Stack Progressive LoadingStack progressive loading using HTJ2K and/or other methods.
Volume Progressive LoadingVolume progressive loading inter and intra image

Adapters

ExampleDescription
DICOM SEG exportDemonstrates how to export a segmentation to DICOM SEG
DICOM SEG StackDemonstrates how to import or export a segmentation to DICOM SEG from a Cornerstone3D stack
DICOM SEG VolumeDemonstrates how to import or export a segmentation to DICOM SEG from a Cornerstone3D volume

Other Viewports (video,wsi)

ExampleDescription
Video DisplayBasic video display
Video NavigationNavigation of video playback
Video Color ControlVideo Color Correction and Brightness/Contrast
Video ToolsVideo annotation tools
Video Annotation GroupingAnnotation grouping tools
Video Labelmap SegmentationVideo Labelmap Based Segmentation
Video Contour SegmentationDemonstrates spline and livewire contour segmentation on video viewports
Video Range SelectionVideo range selection
Whole Slide ImagingDisplay WSI Series
WSI Annotation ToolsWSI with length and other annotation tools

Nifti Volume loader

ExampleDescription
Load Nifti VolumeDemonstrates how to load and render a nifti volume
Tool Usage in NiftiDemonstrates how to use manipulation and annotation tools on a nifti volume