Projects
Michal Ciesla
Apps | Websites | Tiny services | Wastes of time
The topic of my bachelors' thesis at MFF UK was identification of meteor showers. This is done using measures in the space of orbital parameters called $D$-criteria.
The MeteorShowerIdentificationConsole
program takes a set of meteor orbits and optionally a set of meteor shower orbits and assigns the meteors to meteor showers using the $D$-criteria. Since the mathematical form of the $D$-criteria makes them impossible to optimize algorithmically, the program was designed to be as memory stable as possible, because, besides parallelization, there is not much one can do with a $\mathcal{0}(n^2)$ time complexity.
While picking a student grant at MFF UK, I got interested in updating the holography setup for student labs. Not only did holograms seem immensely cool to me, it was also an opportunity to get some hands-on experience with physics without a tight schedule. While discussing with the supervisor, it became clear that a lot of the setup could be improved with electronic controls.
After a few weeks of toying with mirrors, I got to work designing the electronic circuit for powering the lasers and a light source along with a PCB for it, followed by some C code for the Raspberry Pi Pico used to control the circuit. To make using it as comfortable as possible, I used the (then) new .NET MAUI platform to create a visual app for communicating with the microcontroller and setting exposition times without the need to communicate with the microcontroller in binary over a serial terminal. All of the electronics are housed inside a 3D-printed box I also designed.
The setup encountered a few practical issues, the main one being the finite durability of wires, some of which unfotunately did not survive bending inside the housing, therefore the lab work had to be performed in a limited mode the first time. A year later, I came back to the project to deliver several improvements, which I hope will make the setup work for years on end.
The goal of this third version of the website is to give it a new visual design and to singificantly upgrade the architecture of the underlying code.
This new design should be more modern-looking, simpler and easier to work with - the original design was hard to work with when for example making foam cutouts for decoration or promotional material.
From the code side of things, the new architecture separates front-end and back-end; front-end being created using Gatsby and communicating with an API through GraphQL , the back-end being written in PHP using the Slim framework. This separation forces me to abide by the correct ways to structure an API while at the same time giving me access to the strengths of React and its NPM package ecosystem.
This version also introduces encryption of personal data, robust and easily expandable architecture and caching of frequent requests, which together improve security and performance of the application.
During the development, a prospect of sharing this beast of an application with other clubs arose, therefore some tweaks for customizing the app were added and the whole thing got a name, MoveS.
noisee is the result of my thesis at Unicorn University, which explores procerdurally generated gradient noise (such as Perlin Noise). It is an interactive visual interface which allows users to experience different uses of gradient noise and experiment with different settings of the noise generator.