HermesPy#

Welcome to the official documentation of HermesPy, the Heterogeneous Radio Mobile Simulator.

HermesPy is a semi-static link-level simulator based on time-driven mechanisms. It aims to enable the simulation and evaluation of transmission protocols deployed by multi-RAT wireless electromagnetic devices for both communication and sensing. It specifically targets researchers, engineers and students interested in wireless communication and sensing.

Users of HermesPy may formulate their own wireless research questions and investigate

  • Spatially distributed heterogeneous communication in up-, down- and side-link

  • Spatially distributed heterogeneous sensing

  • Interference between multi-antenna heterogeneous devices

  • Communication performance indicators such as bit, block and frame error rates and throughput

  • Sensing performance indicators such as detection probabilities, false alarm rates and estimation errors

in both Monte-Carlo style simulations deployable on high-performance computing clusters and in software-defined radio hardware testbeds. The framework can be operated by means of a compact YAML configuration files or via the native Python API and its experimental Matlab Interface, enabling the evaluation of complex scenarios and integration with thrid-party applications with minimal effort.

To get started, visit the Getting Started section to become accustomed with the basic concepts of HermesPy. For an in-depth view of how to make complex API calls and implement your own algorithms within the signal processing pipelines, visit the Tutorials section. As a starting point for your own configuration files, visit the Examples section.

The project is completely open-source and published under the GNU AGPL License on GitHub. Please cite Adler et al.[1] for any results obtained with the help of HermesPy. Contributions are highly welcome and can be made by means of GitHub pull requests. For issue reports and feature requests please open a new GitHub issue or directly contact the current maintainer.