Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3D viewer cannot load larger detailed models #748

Open
sanjayankur31 opened this issue Jul 13, 2023 · 4 comments
Open

3D viewer cannot load larger detailed models #748

sanjayankur31 opened this issue Jul 13, 2023 · 4 comments
Labels

Comments

@sanjayankur31
Copy link
Contributor

sanjayankur31 commented Jul 13, 2023

It looks the 3D viewer fails with larger models.

I have a model here with 10 detailed human cells. The model will load, and one can use the various controls, but the 3D viewer remains blank.
If I reduce the model to 8 cells, the 3D viewer loads.

So, we need to:

  • optimize the geppetto model conversion to allow the 3d viewer to show larger models: come up with some ways to simplify the morphology if there are too many segments etc.
  • when the model is too large and it cannot be shown in the 3d viewer, we need to inform the user and not silently fail

Data:

@ddelpiano
Copy link
Member

Hi @sanjayankur31 , this topic is part of the new contract, it's a limitation that currently requires further work in order to allow this to be supported. I will report back here once we have an update on this

@ddelpiano ddelpiano added the UI label Oct 30, 2023
@sanjayankur31
Copy link
Contributor Author

Thanks @ddelpiano , sounds good. We recently implemented a viewer for NeuroML that can manage really large models. We used some heuristics to reduce the amount of detail to be visualised as the number of segments to show increased. Something like that could be done for the NetPyNE viewer too---so that if it's fewer than say N segments, they're shown in full detail, but if they're more, the detail drops by a level and so on. Another heuristic was to show some cells in full detail, but show others as single cylinders---that way users still get to see what the cells look like, but they also get a good idea of a full network.

I haven't had a look at the NetPyNE UI implementation, but for us, the "InstancedMesh" bit in vispy was critical in implementing this. Basically, as long as there are a small number of meshes, having thousands of instances for each mesh did not cause a performance drop (based on my very little understanding of OpenGL, this is because mesh instances get handled directly by the GPU and don't need it to re-communicate with the CPU)

References:

@pgleeson
Copy link
Contributor

FYI this is relevant too, as there is uncertainty about how NPUI handles large morphologies... #617

@sanjayankur31
Copy link
Contributor Author

@salvadord ^includes explanation/links to the pyneuroml vispy viewer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants