Scope of Project
Scope
Cornerstone3D
is a javascript library that enables 3D rendering of medical images
using purely web standards. The library employs WebGL for GPU accelerated rendering
whenever possible. Cornerstone3DTools
is a peer library to Cornerstone3D
and
contains a number manipulation and annotations tools that are used to interact with
the images.
The Cornerstone3D
scope DOES NOT encompass dealing with image/volume loading
and metadata parsing. The Cornerstone3D
scope DOES include image rendering and caching.
Proper image loaders should be registered TO the cornerstone3D using imageLoader.registerImageLoader
and volumeLoader.registerVolumeLoader
. Examples of such image loaders are wadors
loader
using cornerstoneDICOMImageLoader
for DICOM P10 instances over dicomweb
and wadouri
for
the DICOM P10 instances over HTTP.
In addition, Cornerstone3D
has a metadata registration mechanism that allows
metadata parsers to be registered TO the Cornerstone3D
using metaData.addProvider
.
Using cornerstoneDICOMImageLoader
, its image loaders and metadata providers self-register
with the Cornerstone3D
. You can always checkout the example helpers to see how an
end-to-end example from metadata parsing to image loading and image rendering can be achieved.
Typescript
Since all libraries in the Cornerstone3D
monorepo are written in Typescript, they provide
a type-safe API. This means that you can use the library in a TypeScript environment
and using type information, you can be assured that the parameters being passed to any method
match what is expected.
Browser Support
Cornerstone3D
uses the HTML5 canvas element and WebGL 2.0 GPU rendering to render images which is supported by all modern browsers.
Our advanced volume rendering has recently been revamped to allow for better performance and memory management and without the
requirement of using sharedArrayBuffer which previously was a requirement for rendering volumes.
- Chrome > 68
- Firefox > 79
- Edge > 79
If you are using an older browser, or don't have any graphics cards, your device might not be able to
render volumetric images with Cornerstone3D
. However, you can still render stack images using the
CPU fallback that we have implemented in Cornerstone3D
for such scenarios.
Monorepo hierarchy
Cornerstone3D
is a monorepo that contains the following packages:
/packages/core
: The core library responsible for rendering images and volumesand caching./packages/tools
: The tool library for manipulation, annotation and segmentation rendering and tools./packages/dicom-image-loader
: The image loader forwadors
andwadouri
DICOM P10 instances over HTTP./packages/nifti-volume-loader
: The image loader for NIfTI files./packages/docs
: Documentation for all the packages including guides, examples, and API reference.