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

[Discussion] What should I choose, OpenGL or GR3 #153

Open
Roy-Kid opened this issue May 26, 2022 · 6 comments
Open

[Discussion] What should I choose, OpenGL or GR3 #153

Roy-Kid opened this issue May 26, 2022 · 6 comments

Comments

@Roy-Kid
Copy link

Roy-Kid commented May 26, 2022

Hi, I have focused on this project for a long time and wrote several python codes with it. Now I want to build a molecular visualization program like ovito, which can use python to interact and manipulate. I wonder what I should choose, OpenGL from scratch or GR3. Here are my needs:

  • Cross-platform;
  • Easy to program (full docs);
  • Using QT as its GUI;
  • Interactive with python;
  • Long term maintenance;
    I have read all the documents of GR's C language and found that the instructions and API instructions are very brief. Is the development focus of GR not on the C language? Should I choose Gr? If possible, I will contribute relevant code.
@jheinen
Copy link
Collaborator

jheinen commented May 27, 2022

If you start from scratch, you probably should consider to use Vulkan. The future of OpenGL is uncertain on macOS, as Apple has deprecated the OpenGL SDK (although it's stille alive). Sooner or later we will also deal with Vulkan (or MoltenVK), but we didn't have the time.

@cfelder
Copy link
Contributor

cfelder commented May 27, 2022

@jheinen In this context may it’s worth to have a look at pygfx based on WGPU

@Roy-Kid
Copy link
Author

Roy-Kid commented May 28, 2022

Thanks for your kindly help! I will have a look vulkan and wgpu. Can I understand GR3 as a high-level encapsulation of graphics interfaces such as OpenGL? Instead of starting from scratch, can I add the functions I want on the basis of using GR3?

@cfelder
Copy link
Contributor

cfelder commented May 30, 2022

GR3 is a software library for visualisation of 3D scenes. At the moment it supports several OpenGL implementations and implements also a software renderer. If you are fine w/ OpenGL or software rendering at the moment and don't want to start from scratch, imho you should go ahead w/ GR3. As @jheinen already mentioned GR3 has to adapt evolving 3D backends in the future, b/c OpenGL SDK on macOS has been deprecated. If you stick to the gr3 functions provided by the gr-framework and not rely on low-level OpenGL functions in your own code, your code should continue to work in the future w/ little to no changes.

@IngoMeyer441
Copy link
Member

You can also have a look at spinvis which visualizes electron spins using GR3 and PyQt5. Source code refactoring is currently in progress, but the repository contains a first stable version.

@Roy-Kid
Copy link
Author

Roy-Kid commented May 30, 2022

@cfelder Thanks for your explanation of GR3. It definitely saves me a lot of time choosing what I should use. I like the style and the idea of the GR3, and I still want to use it.
@IngoMeyer441 spinvis and pyMolDyn are two good examples I need to learn before starting. What a coincidence is that the package I want to develop is named molvis to visualize the molecular dynamics model. I aim to build a "command line" ovito, which means we can use the python script(molpy) to select, manipulate or calculate physical parameters on the fly.
Does your institution have any position to recruit a Ph.D. to develop GR3 and affiliated sciapp? I want to dedicate myself to the field and develop agile software for researchers.

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