tvcastillod's Blog

Weekly Check-in #8

tvcastillod
Published: 07/25/2023

What did I do this week?

I mainly worked on the ellipsoid actor tutorial, as PR #791 is finally merged, so I was able to complete the tutorial by adding my implementation. In addition, during the weekly meeting I received a good overview of the next issue I will be working on, that is using raymarching SDFs to display spherical harmonics (SH) for visualizing ODF glyphs for DTI. I got several ideas and resources where I can start experimenting with, such as shadertoy and some base implementations from other FURY contributors. The main drawback when creating these objects is the amount of data required to create them, because depending on the SH order, the number of parameters that the function receives may vary, also unlike the tensors, which are represented only with a 3x3 matrix, here we could have more than 9 values associated with a single glyph, so passing the information from python to the shaders is not so trivial, besides requiring more resources as there is more information that needs to be processed. Some ideas I received were using matrixes instead of vectors, using templating, or even using texture to pass the data. I started to explore these options further, as well as to review in more detail the existing implementations of SH with raymarching, in order to understand them better.

What is coming up next?

I currently have two PRs under review, so I will adress the comments I receive and update them accordingly. I also will continue to explore and start working on the implementation of these objects so that I can start making adjustments and further discuss possible improvements to the implementation I will make.

Did I get stuck anywhere?

Not this week.

View Blog Post

Weekly Check-in #7

tvcastillod
Published: 07/17/2023

What did I do this week?

I was told to refactor some parts of the uncertainty PR, since I was relying too much on dipy functions which is not good because it makes maintenance more difficult as dipy requires FURY for some functionalities. So I did some adjustments on the uncertainty function parameters and the corresponding tests, hopefully I managed to get with the most appropiate definition but I need to receive a first feedback to see how much I have to adjust the implementation. As I had to delete some relevant code lines inside the uncertainty calculation which consisted of preprocessing the data in order to define the necessary variables for the uncertainty formula, I was also suggested to make a tutorial of this new feature, so I can explain in detail how to obtain and adjust the necessary information, before passing it to the actor, and in general how and what is the purpose of this new function.

I also continued working on the ellipsoid tutorial, which I hope to finish this week so that I can ask for a first revision.

What is coming up next?

I will finish defining some details of the tutorial so that it is ready for review, and now I will start working on the tutorial related to the uncertainty, while I receive feedback on the other PRs. Also, as preparation for the next step I will start exploring on how to adress visualization of spherical harmonics for ODF glyphs visualization, I found that a previous GSoC participant at FURY started working on that and also did several work with raymarching and SDF (here is a summary of their work), so I will take a deeper look on that to see if I can get something useful I can start with.

Did I get stuck anywhere?

Not this week, but I foresee some problems with the uncertainty PR, we will see how it goes.

View Blog Post

Weekly Check-in #6

tvcastillod
Published: 07/10/2023

What did I do this week?

#PR 818: Tutorial on using ellipsoid actor to visualize tensor ellipsoids for DTI

I created the PR for the tutorial that will show the use that can be made of the ellipsoid actor in the visualization of diffusion tensor ellipsoids. It is still in its most basic stage, but the structure that I have thought of for now consists of: displaying a slice using tensor_slicer with spheres of 100, 200, and 724 vertices, and using ellipsoid actor, and show a comparison of the visual quality of the tensor ellipsoids. Then, display a ROI using both actors and a whole brain using the ellipsoid actor, to show that this new actor gives the possibility to display more data.

I also submitted the uncertainty PR for review, in order to start making the necessary corrections.

What is coming up next?

I need #PR 791 to be merged first, but meanwhile, I will start working on the explanation of the tutorial, since I already have the code structure and the idea of what I want to illustrate. I will discuss further work with my mentors at the upcoming meeting, so I can organize myself better and plan how I'm going to address the pending parts of my project.

Did I get stuck anywhere?

I found no major difficulties this week.

View Blog Post

Weekly Check-in #5

tvcastillod
Published: 07/03/2023

What did I do this week?

During the weekly meeting with my mentors, there was a small discussion over the naming of the actor and its usage. On the one hand, although the purpose of the actor is to visualize diffusion tensor ellipsoids, the idea is that it can also be used for any other type of visualization that requires the use of ellipsoids, so in the end, we decided to keep the name ellipsoid as it is more generic. On the other hand, as there is already an actor made for the purpose of tensor visualization, namely tensor_slicer, it might not be obvious how and why one would use this new ellipsoid actor for this purpose, thus it was proposed to make a tutorial that can clarify this. The main difference between both actors relies on the quality and the amount of data that can be displayed, so the idea is to show the difference between both alternatives so the user can choose which one to use depending on their needs. To prepare the tutorial the first step was to add the data I will use on fury-data so I can then fetch and load the datasets I need to work on the tutorial.

What is coming up next?

I need #PR 791 to be reviewed by my GSoC fellows at FURY, so I will address their comments, and additionally make adjustments on #PR 810 based on the feedback I receive. I will also start working on the tutorial, the idea is to show the use that can be made of the ellipsoid actor in the visualization of diffusion tensor ellipsoids, compared to the tensor_slicer actor. I plan to create a WIP PR to start getting feedback on the general structure of the tutorial and the way everything will be explained.

Did I get stuck anywhere?

I did not encounter any obstacles this week.

View Blog Post

Weekly Check-in #4

tvcastillod
Published: 06/27/2023

What did I do this week?

#PR 810: DTI uncertainty visualization

I made a second PR with the implementation of DTI uncertainty calculation and visualization. I had to use some dipy functions, especifically: estimate_sigma for the noise variance calculation, design_matrix to get the b-matrix, and tensor_prediction for the signal estimation. The details of this calculations can be found here.

What is coming up next?

I will continue working on the uncertainty PR which is still in its early stage, I'm going to make a couple of adjustments to the description of the parameters and the actor, and keep working on based on the feedback I receive. There are also minor details to be discussed with my mentors about the first PR, which I hope to finish refining.

Did I get stuck anywhere?

It took me a while to make the PR because I had some problems with the uncertainty function definition. I tried to use the least amount of parameters for the function, since with data, bvals and bvecs it is possible to obtain the rest of the parameters needed to generate the cones, which led me to readjust some calculations from the base implementation I had, to keep everything working correctly.

View Blog Post