Project Description
The issue that our project is centered around is modelling binary asteroid systems based on lightcurve data. Our project is a continuation of the work of Team Paired Planet Technologies and Team Andromeda; their work includes a modelling engine with ray tracing for spheres.
Our goal is to expand on their progress and implement shapes that are more mathematically complicated than spheres and can more accurately represent asteroids so that astronomers can learn more about what the asteroids actually look like. The initial concept for this project was provided by our clients from Lowell, in the form of a Capstone project proposal.
High Level Requirements
Our current mission is to build on the existing code developed by the past two capstone teams. Currently, the program, LICHT, supports raytracing for spheres and a partial implementation of triaxial ellipsoids. However, there is an issue with rendering triaxial ellipsoids where the shadows do not render correctly. Our goal is to either fix the current implementation of triaxial ellipsoids or build a new implementation entirely.
Envisioned Solution
We are currently assessing our options for implementing a solution to our problem. As mentioned above, we are either going to fix the current implementation of triaxial ellipsoids or build a brand new one so that the LICHT modelling engine can render such shapes.
We are also currently assessing the feasibility of a number of goals to pursue if we are able to implement the modelling triaxial ellipsoids successfully:
- CUDA Implementation: Currently, all rendering takes place on the CPU. However, if we could implement the rendering calculations on the GPU instead, the overall rendering process would be much faster. Although this implementation would involve learning CUDA and re-implementing all existing C++ code to CUDA, it would be advantageous to assess the feasibility of this solution because it would save time for our clients that they could spend studying even more asteroid systems.
- GUI Framework: In order to adjust the parameters needed to produce an accurate simulation of binary asteroid systems, users need to go into a file called the NLM wrapper, change the numbers, and then run the NLM program. The previous team attempted to implement a GUI but was not able to do so in the time given. So, as another stretch goal, we are looking implementing a GUI so that our clients can use our product with more ease. This way, they can focus more on the parameters they want to adjust and less on actually finding where they have to change them.
- Fluid Equilibrium Bodies: Our clients mentioned that if we are able to solve the triaxial ellipsoid issue and we have more time in our project, we could look into implementing ellipsoids as fluid bodies. We are currently looking into the feasibility of this implementation for the future.
Technologies
Our solution currently makes use of the technologies used by the past teams on this project. So far, the technologies that we have utilized are:
- C++ as our primary language: The code that we are working on top of from the past two teams are C++ based.
- Git for version control: We will be hosting our code on GitHub so that we all have access to it and be able to test the code on our own branches.
Schedule
Codebase
Our codebase is not currently public.