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. The application must be viewed in a browser that supports WebGPU and has it enabled.
Clone the repository and install the dependencies:
git clone https://github.com/fraserlove/ossium.git
yarn install
Build the application and start the development server:
yarn dev
The application runs on port 8081
and can be accessed in the browser by going to http://localhost:8081
.
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 | Shift + Left Click + Drag (SVR only) |