Lecture task: The process of my bachelor thesis

What is the question of my bachelor thesis?

The question of my bachelor thesis is: How a data structure and data management can be designed to make it possible to render an arbitrarily sized multichannel volume dataset with allowing an high rendering speed on casual consumer hardware.

I think I have to add here a short motivation: Medical and biological 3D datasets can be very, very huge (>100GB), but it is kind of a computer scientist’s dream that they can be processed by ordinary computers in a smooth way.

The company for I was researching for with my bachelor thesis already knew that the goal is in parts achieveable – and therefore how the question should be answered. That was caused by the fact an other software company already achieved this goal in parts. But unfortunately they don’t offered any details of their implementation and researching for getting this done.

What was the procedure to resolve the question?

At first I had looked for related work in the specific domain space – medical and biological volume data visualization – of my bachelor thesis. Afterwards I sized up the search range incrementally to get more interesting papers.
Some of the retrieved papers could answer specific questions to my implementation in more detail or bring up some more ideas. Especially nice caching algorithms were interesting at the end, which is needed in many computer science areas.
In fact I the main part of my thesis was built up on the statements of only a few papers (three or four in numbers) for my work, because they covered my task very good and had different details in their approaches.
While I creating my theories about how a good data structure and data management should be I started writing some code to verify the most hypothesis I created during my research phase. Unfortunately I had not such a good time management to produce an implementation, that covers all of my theoretical work.
Sometimes I needed some information I could not retrieve during my researching phase, so I had to create these information byself through writing some tools for benchmarking, like Input/Output performance depending on different operating systems, hardware and file systems. These results was interesting for my experimental implementation, but creating these results slowed down my progressing.

What are the results of the question?

My result is a detailed concept of a data structure and management for the special case of volume data visualization including a experimental implementation, which is able to load very huge datasets and render them with standard rendering techniques.