It has been a while
After all this time of inactivity here it is a bit challenging to put a few words into a reasonable sentence that would express what I have been doing lately. Making a long story short: I moved back to Poland to close cases that I had left open when I had decided to take a position at CERN.
During the one of my scientific trips in high school I was told that being a physicist might be practical because you can turn out to be a good engineer of any kind. Physicist might have more flexibility when it comes to choosing a job than highly specialized engineers. However the latter are paid better.
At that time I was really interested in 3D graphics. Since I have no artistic gift and all my drawings and 3D models are utterly awful the one reasonable way was to concentrate on technical part of rendering. I started with simple scenes utilizing OpenGL API then I moved on incorporating physically-based animations. Just because of that my C/C++ programming skills improved by quite a lot and my library of graphics related books expanded. It was giving me a huge amount of fun seeing the physically-based animation of the flag waving in the wind in the real time, tuning its parameters and so on.
So I had to make a choice. I did not like much the perspective of computer science since this environment changes rapidly and universities in Poland are not very adapted to it. The second choice would be game design related studies but this was not a good alternative either. Firstly, at a time there were only one or two public universities in Poland that were offering this as a separate field of study. Secondly, they were just starting to offer it. I did not want to be an experimental rabbit. Finally I decided to pick technical physics in Cracow.
The plan of studies was looking very promising. At the beginning they teach you how things work from the very basic point of view. Then in principle you can focus on more specific stuff of your interest choosing between a bunch of lectures and assignments.
In practice, first 2 years were extremely stressful and packed with a basic principles content, so I had no internal motivation to develop in my own way (the C++ course was a shining exception). Then I was able to take a few courses that were of my particular interest that shaped me more in the way that I had initially intended. This transformed my abilities more towards solving real problems with a computer.
Decision and consequences
In Poland, as in the most countries, if you want to graduate from technical university you need to solve real or imaginary problem and describe its solution in your master thesis. As my interests originate from computer graphics, I really wanted to program something special. The key was that I did not know what this something could be.
Finally, I was proposed to build a ray tracing system accelerated by an FPGA unit (how I came across this proposition is totally another story for separate post). Although I knew totally nothing about FPGAs, I was thrilled to create ray tracer since it simulates light transport in 3D scene to create realistic images.
There were however at least 3 major pitfalls that I had not considered before accepting this proposition:
- An FPGA unit and how it works.
- The technology which was meant to allow me to program an FPGA unit efficiently in the way resembling classical C/C++.
- The design requirements that had been imposed by the supervisor.
The mixture of these very soon brought my high expectations to the ground. I have spent hundreds of hours reading the documentation of the technology which was constraining my CPU-oriented-creativity. It turned out that most programming techniques and constructions are not suitable for FPGAs. Although the language was similar to C/C++ I had to entirely change the way of thinking.
No matter how I was trying and redesigning everything from scratch the results were far from satisfactory. It was like hitting my head against the wall.
It was not a coincidence that I moved to Switzerland. Taking university leave while still maintaining status of being a student allowed me to become a technical student at CERN. My background in solving problems with a computer paid off and I got the position at the CMS detector.
I definitely needed this. Changing the environment (people and natural landscape) and every day tasks cleared my mind. I also bought myself time to think about my master project. Although I was being pushed by my family, I really did not want to score an epic fail and changing the project and/or supervisor was for me not at stake either.
Let it go
I know that when I think too much about something the less solutions I find. I did not know back then whether it is sensible or not but I totally left aside my ray tracer project – I had to find something that I could invest my time in. This is how I started taking pictures and thinking how to improve my skills and abilities in that field.
Through photography I started to enjoy life more. I began to perceive the environment in totally different way – flowers were not just plants, people turned out to be my models. I totally dived into it and this is the enormous merit of my wife. Others also started to appreciate outcomes of my new hobby which resulted in being awarded.
Precious time was flying away
Actually, every idyll has its end. My one-year-long contract at CERN was about to expire and I had a perspective of coming back home with a whole bunch of great memories captured with my camera but still without any solution to the problem I had come to Switzerland with.
I gave the ray tracer a try. For the very last time (seriously). However, inspired by the case study of totally different type of accelerator also using an FPGA I decided to break one of the major constraints of the project.
I created a very basic prototype of the ray tracing system. Its theoretical performance turned out to be unprecedented, that could have never been achieved using initial approach. This was kind of a light in a tunnel I was looking for.
On the way to Poland
When I was packing away I already had a quite useful ray tracer, the plan to improve it, write the text of master thesis and graduate as soon as possible.
Further development of the FPGA accelerator was not going smoothly for hundreds of reasons but despite adversities I have finally made it work. I could then start writing the text of my thesis. I knew I wanted to do it right, describe everything that is relevant, point out all problems that I had come across during the development and how I had solved them. It could not be a short thesis for these reasons.
After all, my master thesis was written in Polish – just to keep the process of writing it as simple as possible. It took me 2 months to put last sentences into it and it finally consists of 156 A4 pages of text with lots of pictures and diagrams. Quite a lot, especially when looking at theses of others but this one is mine and I am proud of it.
I am now Master of Science in Technical Physics. Finally.
Below you can see a short demo depicting ray tracer in action (captured by filming a monitor screen so the quality is not superior).
A few final words
This project devoured almost all my time since December 2017 but I do not regret it. I have learnt so many new things that I could possibly use as an advantage in my future work. Such experiences shape you, something good can turn out of them – like my passion to photography. However, when I was there at the ground zero I was miserable, stressed out and very likely to give up. If I had not the chance to make such a huge change in my life by moving out for a while I have no idea how things would have gone.
In so-called meanwhile I have updated the design of this website. How do you like it? I have added GDPR rules of conduct required by European law and your connection with the server is more secure by using encrypted transmission protocol. Mailing system is now more flexible. Moreover you can now write me an email directly from the page.
However, what is the most important I have reviewed my portfolio and updated it with a better quality content. You can now see it either at the bottom of the website or on Porfolio page.
Even more importantly – I have now more time which I can spend on creating content for this website. I have a couple of articles on my mind but you are also welcome to suggest topics. Probably you have some questions about my Master Thesis and you would like to know what it is about (especially if you do not understand polish). I am waiting for your comments.
See you soon!