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

VMAP geometry viewing #7

Open
nico-arnold opened this issue Sep 8, 2023 · 8 comments
Open

VMAP geometry viewing #7

nico-arnold opened this issue Sep 8, 2023 · 8 comments

Comments

@nico-arnold
Copy link

Hey everybody,

I made a fork of your code here because I needed a handy little viewer for VMAP data.
Would those changes be interesting to you? Then I could create a pull request for that. It works, basically, like the image viewer and renders the mesh inside a new tab created in the midscreen viewing area.
VMAPView_Eiffel

best wishes and have a great weekend,
Nico

@marts
Copy link
Collaborator

marts commented Sep 8, 2023

Hiya @nico-arnold glad you've found hdf5view useful. Your mesh visualisation looks really cool. I don't actively develop on hdf5view anymore, so I'm kind of out of the loop a bit with it. @tgwoodcock has been helping me maintain it. This could be a feature he might be interested in incorporating. Anyway great work :)

@nico-arnold
Copy link
Author

@marts The pleasure's mine, you also really helped me with my work with HDF5 data! So I'm happy if I could contribute something back (: if @tgwoodcock approves I will start working on a PR

@tgwoodcock
Copy link
Owner

Hi @nico-arnold, many thanks for your offer to contribute your code. I think this could be a very nice addition, so yes, please prepare a pull request :)

@nico-arnold
Copy link
Author

Awesome! Then I'll do this next week. Sorry for the belatement, there was quite much going on, but I'm back on track now. I managed to streamline my code a bit; so far, for a model of 139989 surface elements consisting of 56420 single points (the Eiffel tower seen above) it takes roughly 1.5 seconds to calculate the model and display it. If that's fine, I can implement everything without other external libs besides vedo (I used PyVMAP before which has to be compiled against the Python version used for your architecture which is a lot of work to deploy), and maybe streamline the actual mesh generation from the fetched points also a bit.

@nico-arnold
Copy link
Author

BTW: This will add a dependency for the library "vedo" that I always use for 3D stuff. Although, VMAP is a format that is not too widely spread yet (but maybe will, who knows). How are/were you planning to implement 3D functions/mesh viewing into your program or what formats should be supported? Maybe we should have a small talk there on how to implement what so it's easily expandable if you plan to support other 3D formats.

@tgwoodcock
Copy link
Owner

Sorry for my very late reply on this @nico-arnold! I think the most important issue is to keep hdf5view as lightweight as possible. I didn't have any firm plans to implement 3D views (I think it was something @marts was thinking about) but it's certainly something that would add to the functionality. I could imagine adding one extra icon (in addition to the image view and plot view icons) which would open a 3D view tab and if it would be possible to have a switch on the 3D view tab to change between point cloud and mesh representations, that would be amazing as it would help to keep the number of icons on the main toolbar small. Concerning different data formats, the ideal situation would be to be able to recognise some common formats automatically. I guess a simple nx3 array should also be plottable as a point cloud. It may be worth implementing a 3DViewModel class in hdf5view/models.py which may be extended to be able to handle various types of data (this is how we currently handle greyscale and rgb, rgba images). Maybe it's best to start with the data format you are used to and then it can be extended later to consider others.

@ipcoder
Copy link

ipcoder commented Jul 15, 2024

I am also considering adding a viewer for a specific data. May be we can think about some kind of plugins interface, considering its python, and deciding on some simple interface can be enough?

@tgwoodcock
Copy link
Owner

Hi @ipcoder, I think this is a really good suggestion, With a plugins mechanism, we can keep the interface clean for the general case and still have extra functionality available for specific cases. I'll look into how we could set up a plugins interface and get back to you. This may take a while due to other projects etc..

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

No branches or pull requests

4 participants