|
FERS 1.0.0
The Flexible Extensible Radar Simulator
|
FERS is a comprehensive suite of tools for signal-level radar simulation. It consists of a high-performance C++ simulation engine and a modern, intuitive graphical user interface for building and visualizing complex scenarios.
This repository is structured as a monorepo, containing the core simulator, the UI, and the shared data schema as semi-independent packages.
This monorepo contains the following packages:
packages/libfers: The core C++ radar simulation library. It contains all the core logic, physics, and file processing capabilities, exposed through a C-style API.packages/fers-cli: A lightweight command-line interface that acts as a wrapper around libfers, providing backward compatibility with the original FERS executable.packages/fers-ui: A modern desktop application built with Tauri and React. It provides a graphical interface for creating, editing, and visualizing FERS scenarios by linking against libfers.packages/schema: The XML Schema Definition (XSD) and Document Type Definition (DTD) that define the structure of FERS scenario files. This schema is the contract between the UI and the core simulator.Follow these steps to set up a development environment for building the C++ core and running the UI.
Ensure you have the following tools installed on your system:
Clone the repository and its submodules from the root of the monorepo.
On Ubuntu/Debian:
On macOS (using Homebrew):
From the root of the repository, install all JavaScript dependencies. This also sets up pre-commit hooks using Husky.
Create a build directory and compile the C++ libraries using CMake.
On Linux:
On macOS: You must point CMake to the Homebrew LLVM toolchain.
Navigate back to the root of the repository and start the development server.
We welcome contributions to the FERS project! Please read our CONTRIBUTING.md guide to get started.
Note that this repository uses Husky to enforce code quality with pre-commit hooks. When you commit, your staged files will be automatically formatted and linted. Ensure you have clang-format, prettier, and the Rust toolchain installed.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Please note that this license only covers the source code, program binaries, and build system of FERS. Any input files you create (such as simulation scenarios) and any results generated by the simulator are not covered by this license and remain the copyright of their original author.
FERS incorporates code from the following third-party libraries, which are provided under their own licenses. The full text for these licenses can be found in the THIRD_PARTY_LICENSES directory.
The following notice was part of the original FERS distribution:
Should you wish to acquire a copy of FERS not covered by these terms, please contact the Department of Electrical Engineering at the University of Cape Town.