project-thumbnail-dicom
Developed for Upwork in 2016
Tags: Unity C# DICOM

One of my freelance projects included visualizing DICOM medical scan data.

More information

Freelancing allowed me to work on a variety of interesting projects, as well as small proof of concept solutions. One of such solutions was visualizing DICOM data in a 3D space. The idea behind this was that a medical professional could take a dental scan and preview it in a more dynamic manner, eventually panning around it and zooming in on points of interest.

What I did

For this, I was given some example data, that I had to load into a visualization solution of my choice and make it be displayed in 3D space. For this, I chose Unity, which is both a popular game engine, but also a good general purpose renderer, which also allows you to manage I/O easily and handles exporting solutions for a variety of platforms. As for the display of data, I actually used a particle system, as opposed to trying to generate meshes - which was actually a good solution, given the arbitrary nature of the data.

What I learnt

It did turn out that getting good performance was pretty difficult: visualizing point cloud data is a pretty large problem space and even if the scans weren't too detailed, I still needed to find a solution for letting this visualization run well on tablets and other mobile devices. What I ended up settling on was writing an algorithm that allows downsampling the point cloud in 3D - since you don't always need the full resolution.

Page rendered in: 0.01 seconds