How stpaine/fers works
FERS is a radar-simulation suite: users configure scenarios in the desktop UI or run them through the CLI, then simulate and export receiver data. The README documents the major simulation modes and output formats; sampled source confirms frontend startup, scenario-driven visualization, CLI delegation, and HDF5 handling. The schema package is described in the README but is absent from the supplied tree, so it is not mapped. Engine wiring beyond the documented API boundary is kept deliberately broad.
Main entry points: finalizer_pipeline.cpp Signal processing · index.ts Scenario state · world.cpp Simulation world · fers_api.rs Desktop bridge
Components 19
Desktop application
- UI shell
packages/fers-ui/src/App.tsx - Scenario editor
packages/fers-ui/src/views/ScenarioView.tsx - Scenario state
packages/fers-ui/src/stores/scenarioStore/index.ts - 3D visualization
packages/fers-ui/src/components/WorldView.tsx - VITA streaming view
packages/fers-ui/src/views/Vita49StreamingView.tsx
Runtime entry points
- Desktop bridge
packages/fers-ui/src-tauri/src/fers_api.rs - CLI runner
packages/fers-cli/src/cli_runner.cpp - C API
packages/libfers/src/api.cpp
Simulation engine
- Radar models
packages/libfers/src/radar - Simulation world
packages/libfers/src/core/world.cpp - Signal processing
packages/libfers/src/processing/finalizer_pipeline.cpp
Inputs and outputs
- Waveform handling
packages/libfers/src/serial/waveform_factory.cpp - HDF5 I/O
packages/libfers/src/serial/hdf5_handler.cpp - VITA 49.2 output
packages/libfers/src/serial/vita49/vita49_output_sink.cpp - KML generation
packages/libfers/src/serial/kml_generator.cpp
Other components
- Scenario user
- Receiver results
- UDP consumers
- Geographic tools
Connections 19
- Scenario user → UI shell: uses
- UI shell → Scenario editor: presents
- Scenario editor → Scenario state: updates
- Scenario state → 3D visualization: drives
- Scenario state → Desktop bridge: invokes commands
- VITA streaming view → Desktop bridge: invokes commands
- Desktop bridge → C API: calls
- Scenario user → CLI runner: runs
- CLI runner → C API: calls
- C API → Simulation world: runs simulation
- Simulation world → Radar models: models scenario
- Simulation world → Signal processing: produces receiver signals
- Waveform handling → HDF5 I/O: loads sampled data
- Signal processing → HDF5 I/O: writes receiver data
- Signal processing → VITA 49.2 output: streams signal data
- Signal processing → KML generation: exports scenario
- HDF5 I/O → Receiver results: writes
- VITA 49.2 output → UDP consumers: sends UDP packets
- KML generation → Geographic tools: writes KML for