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 installBuild ossium and start the development server:
yarn build && yarn devThe 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.pyThis 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) |