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

Architecture the implementation of graphical library #7

Open
1 of 7 tasks
AndreaIdini opened this issue Jan 23, 2018 · 5 comments
Open
1 of 7 tasks

Architecture the implementation of graphical library #7

AndreaIdini opened this issue Jan 23, 2018 · 5 comments

Comments

@AndreaIdini
Copy link
Member

AndreaIdini commented Jan 23, 2018

Thread to evaluate possible pro-cons of Graphical Libraries that can be used in the project. Feel free to edit this message and comment.
Cf. wikipedia List

  • GTK
    - Pro: Native C++
    - Cons: Not top notch (?)
  • [QT]
    - Pro: native C++, standard
    - Cons: Heavy, difficult, compatibility
  • OpenGL, maybe JUCE (C++)
    - Pro: native C++, very standard
    - Cons: ExtraHard (maybe not?).
  • PyGame (Python)
    - Pro: Easy to use (?)
    - Cons: not really fashionable 2D Engine
  • Kiwy (Python)
    • Pro: looks beautiful
  • Unity (C#)
    • Pro: is pro
    • Cons: is pro (hard?)
  • d3j (Javascript)
    • Pro: is beautiful and gold standard for data viz, can be interactive
    • Cons: 2D only. Is it bindable to C++?
@Pandry
Copy link
Contributor

Pandry commented Feb 10, 2019

Soooooo...
Let's face it...

  • d3js - is written in javascript, and it's not node.js (it's supposed to be a graphic frontend after all) => we should need electron (a.k.a. Chromium (a.k.a. 100+ MB of executable + inefficency))
  • Unity - It's a full-fledge graphic engine, a bit overkill, if not inadequate (talking about resources)
  • OpenGL - it's just verbose (if not difficult), I wouldn't use it for this project, but it's interesting
  • Qt - Is just too heavy, it's like using a handsaw to cut a piece of paper
  • GoDot - Game engine - too heavy
  • Pygame - Well... pygame, isn't it too heavy? could contain unwanted code (?) - Kinda maybe
  • Kiwi - Seems ok, the interface is pretty and it's Python (that I don't love, but it's ok)
  • GTK - Seems ok, the license is good too...
  • imgui - A bit minimal, but it's written in C++ and cross platform
  • libui - Uses native components on each OS, should be lightweight, could be a good choice

In my opinion, Kiwi and GTK are great options...
I didn't look to Pygame yet, but it could be fine too
Both libui and imgui could be a good choice too

@GabrielePisciotta
Copy link
Member

For the moment, I've created a python script to plot the wavefunction and the potential data, using matplotlib. It's inside the build directory, so after running the executable you can run python3 plot.py and visualize the resulting graph.

@AndreaIdini
Copy link
Member Author

@GabrielePisciotta we need a pretty picture for the Facebook Group. Do you have the 2D harmonic oscillator wave function?

@GabrielePisciotta
Copy link
Member

@AndreaIdini only 1D actually. I'm changing the solver in a way that it's able to manage 2D (with separable pot.)

@Pandry
Copy link
Contributor

Pandry commented Feb 14, 2019

It looks like everyone in the group agreed on using GTK and Gtkmm-PLplot
Example of the code

Just writing this for tracking purposes

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

No branches or pull requests

4 participants