Hi everyone,
I'm currently interested in developing a module that can display NS-3 simulations in real-time on a GUI. The basic idea is that NS-3 is simulating every second, and through writing an additional module, I want to be able to see the simulation happening in real-time on a GUI. For instance, if I want to create a satellite network simulation, it would involve a GUI interface that includes the Earth and constellation, when NS-3 starts running, this satellite network GUI would automatically open. As ns3 runs every second, this GUI interface would display the results I want to see, such as certain satellites beginning communication, which would be indicated by marking those satellite points in red, etc.
Initially, I planned to work on this GUI program after completing more algorithms and custom modules for NS-3. However, I'm currently feeling quite lost with the subsequent tasks, so I've decided to start working on the GUI program earlier to facilitate my further development and research.
In the past, I've used NetAnim, but it requires files after the simulation has ended to be used. I haven't used PyViz yet, but from some of the blogs and manual I've seen before, it seems to no longer be maintained. I'm guessing I could make modifications based on this foundation.
I prefer to have the GUI display the simulation in progress. Does anyone have any examples or suggestions?
I followed the architecture described in the article with DOI: 10.1145/3389400.3389404. However, due to my limited understanding of the underlying mechanisms of C++, I am concerned about potential conflicts with ns-3 simulations. Although the real-time simulation is currently working, I am still uncertain about possible issues.
Especially since ns-3 is a discrete-event simulation system. Could such memory interactions affect ns-3's event simulation?
You mean between ns3-ai and ns-3, or ns-3 and your GUI?
The first ones will slow you down, but unless there is a bug, nothing should happen. For the GUI, it can slow it down if you use blocking sockets.