A volume rendering application to display 3D volumes created from DICOM files in the browser, using WebGPU. Two rendering techniques are implemented: Multi-Planar Reformatting (MPR) using maximum intensity projection and Shaded Volume Rendering (SVR) using Blinn-Phong lighting. Ossium requires a WebGPU-enabled browser to run.
Below is an example of Ossium running on a volume of a human brain, avaliable under the assets/
folder.
Clone the repository and install the dependencies:
git clone https://github.com/fraserlove/ossium.git
yarn install
Build ossium and start the development server:
yarn build && yarn dev
The application runs on port 8080
and can be accessed in the browser by going to http://localhost:8080
.
The transfer function is a 1D texture that maps the intensity values of the volume to colours. It is stored in a file with the .tf
extension.
To generate a transfer function, run the following command:
python scripts/tf_generator.py
This will generate a transfer function file with the default settings. The transfer function can then be loaded into the application using the Load Transfer Function
button in the GUI.
Action | Controls |
---|---|
Rotate | Left Click + Drag |
Pan | Right Click + Drag |
Zoom | Vertical Scroll |
Cine | Horizontal Scroll |
Change Light Direction | Control + Left Click + Drag (SVR only) |