mne-tools / mne-gsoc2018-3d

Sandbox for GSoC 2018 3D Viz
BSD 3-Clause "New" or "Revised" License
9 stars 4 forks source link

GSOC agenda update for the second month #20

Closed OlehKSS closed 6 years ago

OlehKSS commented 6 years ago

@choldgraf , @larsoner I suppose we need to update plans for this month and set new priories for the GSOC project, since previously set goals are almost accomplished. What in your opinion are the priorities for this month? What do you think should be done?

So far, I have started preliminary work on #14.

This is what I have in my project proposal for this month:

I have been asked whether I will be able to add unittesting on JavaScript side in ipyvolume as well. I have added an issue for API changes proposition, see #17, if have any ideas how api should be changed please add them.

larsoner commented 6 years ago

create prototype of a Jupyter Notebook file visualizing an MNE object instead of raw surface data, add it to the project repository (from previous month)

Agreed, basically I would say provide a plot_source_estimate function that mimics the existing API. Eventually we can maybe/hopefully add it as a backend.

add the ability to change surface face color based on activity patterns

This would presumably mean adding a slider as a Jupyter widget for the time dimension, similar to but nicer than time_viewer=True in stc.plot currently.

based on Jupyter Notebook prototypes, create a module/functions for quick creation of interactive 3D plots and integrate it to the MNE-Python project

Ideally I think this would just be stc.plot(..., backend='ipyvolume').

I have been asked whether I will be able to add unittesting on JavaScript side in ipyvolume as well.

+1

I have added an issue for API changes proposition, see #17, if have any ideas how api should be changed please add them.

I think basically what I say above: for now start building a plot_source_estimate function. The API is already defined for you. Eventually we can then incorporate your code hopefully in mne.viz.plot_source_estimate(..., backend='ipyvolume').

OlehKSS commented 6 years ago

@choldgraf @larsoner I have created several issues according to suggestions above and my initial project proposal: #21, #22, #23. In your opinion #14 has lower priority then #21, #22, #23 or higher? In case it is of lower priority I will start to work on #21.

@larsoner could you please clarify your comment here:

I have been asked whether I will be able to add unittesting on JavaScript side in ipyvolume as well.

+1

Do you mean that you have been asked as well or that you think I should take a look at that problem?

larsoner commented 6 years ago

+1 means "I support this" -- so here I mean that I support you working on it

OlehKSS commented 6 years ago

Thank you for the clarification, I have added this issue, see #24. Anything about #14 vs #21?

larsoner commented 6 years ago

21 (plot_source_estimate) is something we need, #14 (surface normals/smooth shading) would be nice to have but not 100% necessary (but if it's quick enough to do and you want to, feel free)

OlehKSS commented 6 years ago

I doubt that #14 is a quick one, it will probably require changes in Python, JavaScript and GLSL in ipyvolume and plus an additional investigation on how to do the vertex shading, since I am not familiar with the algorithms that should be used. So, I will work on the required features first and this one will be for later.

larsoner commented 6 years ago

For future reference, here is an example of a OpenGL-ES2 compatible Phong shading (at least I think it works properly):

https://github.com/vispy/vispy/blob/master/vispy/visuals/mesh.py#L21

choldgraf commented 6 years ago

I agree with what you two have already discussed - I think a good next step is to get this 3D viz functionality with an API as similar to current MNE as possible, to minimize the amount of user-facing changes that'd need to be made in order to visualize with Javascript.