Skip to content

[FEATURE] Simple GUI for non-developer users #78

@yunlishao

Description

@yunlishao

Is your feature request related to a problem?
Currently, Real-Sim FIXS requires users to manually edit config.yaml files and run batch scripts from the command line. This creates a steep learning curve for non-developer users who want to set up and run simulations but are not comfortable with configuration files and terminal commands.

Describe the solution you'd like
Develop a simple graphical user interface (GUI) that allows users to:

  • Configure simulation parameters (traffic simulator selection, IP/ports, sync modes, etc.)
  • Select and manage test scenarios
  • Start/stop simulations with visual feedback
  • View basic simulation status and logs
  • Save/load configuration files without manual YAML editing

The GUI should abstract away technical complexity while still providing access to key configuration options from config.yaml (SimulationSetup, ApplicationSetup, XilSetup, VirtualEnvironmentSetup sections).

Describe alternatives you've considered

  • Web-based dashboard: Would require additional server component
  • Configuration wizard scripts: Still command-line based, doesn't solve usability issue
  • Documentation improvements: Helps but doesn't eliminate technical barrier

Environment (if feature is environment-specific)

  • Python version: >= 3.8 (consistent with existing realsimdev conda environment)
  • Platform: Windows (primary platform for Real-Sim FIXS)

Additional context
The GUI could be built using Python frameworks like:

  • tkinter (built-in, lightweight)
  • PyQt/PySide (more feature-rich)
  • Dear PyGui (modern, GPU-accelerated)

Key integration points:

  • Read/write config.yaml files using existing yaml-cpp or Python's PyYAML
  • Launch executables (TrafficLayer.exe, controller apps) as subprocesses
  • Monitor log files (TrafficLayer.err, DriverModelError.txt, etc.)
  • Provide templates for common scenarios based on existing tests/ directory examples

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions