tqsd / QuNetSim

A quantum network simulation framework.
https://tqsd.github.io/QuNetSim/
MIT License
118 stars 52 forks source link

Develop a user interface for building the network topology #82

Closed stephendiadamo closed 3 years ago

stephendiadamo commented 3 years ago

To make it easier to build the network topology for a simulation set up, it would be nice to have some sort of user interface that one can use to build the topology.

The interface could include features like:

stephendiadamo commented 3 years ago

No one has started this one as far as I know.

andre-a-alves commented 3 years ago

Caveat: I'm not planning to start this as a part of Unitary Hack.

What is your idea about how you foresee this being solved? Do you want a Python-based GUI, a browser-based GUI, or is there no preference? Are you looking for more of a GUI-style alternative to the templater, or a GUI in which you actually run the network simulations and in which you see what is transpiring and the output?

I know a new UX/UI designer who is looking for projects to add to her portfolio who I am pretty sure would see handling the design aspect as an opportunity. You and I also started a conversation in another thread about whether to add a network factory class. Perhaps all of that could be combined - either build a network factory class or continue to expand Network to include additional topology options and parameters, keep adjusting the templater to interact with the chosen class and incorporate other options, and also build a GUI that also interacts with that class.

Like I mentioned at the outset, this is a separate conversation from the Unitary Hack bounty issue and more a conversation about the medium-to-long-term vision. If you're interested, we can of course use whatever is created as part of the hackathon and just build upon it. I just raise it as a conversation worth having.

stephendiadamo commented 3 years ago

What is your idea about how you foresee this being solved?

This issue I think it more of a complete project, actually I've already created a Project in the QuNetSim projects for it. My idea for this is to have something like Quirk or Quantum Inspire where one can drag and drop network nodes, create connections between them, and add protocol logic for the nodes. Then there can be some sort of animation or log so that there is a visual aspect as well, during execution.

I prefer the idea of having a browser-based GUI since it might be easier to develop and maintain. I'm not so familiar with Python based GUI development, I've only used TkInter a couple of times and doubt it can meet up to the tools for Web. As a first step maybe a Python GUI could be easier though.

In a big picture the UI is essentially a templater with a visual aspect, like you are saying. Maybe as a first step a GUI that interacts with your templating script could be beneficial.

Maybe what's best is holding another group meeting on Discord. Last meeting we had was to give an overview of ongoing projects, brainstorming ideas, etc. This could be a good project to kick-off also that it doesn't require so much quantum background.

What do you think?

andre-a-alves commented 3 years ago

It sounds to me like what you have in mind is pretty similar to what I had in mind. I chatted with the UX/UI designer, and she's definitely interested in getting involved. She designed the digital swag for Unitary Hack and Mitiq's new logo, so she's becoming familiar with the quantum community and knows Unitary Fund.

I agree a browser-based GUI is best, if for no other reason than it gives the flexibility for running simulations locally or on a server. While I am not very experienced with front-end development, I am also slated to work on the university project starting around September that will be a browser-based GUI for a (non-quantum) circuit parser, and I see a lot of overlap between this and that.

Only having learned about QuNetSim after the last meeting had already taken place, I am definitely a fan of another meeting. It might be better to collect all my ideas between now and then instead of bombarding you with frequent comments in the repo ☺

stephendiadamo commented 3 years ago

This is moved to a new project: https://github.com/tqsd/QuNetSim_WebInterface