Skip to content

About

Modular RF signal chain simulator with real-time spectrum display. Design cascades of amplifiers, filters, mixers, ADCs, and more - probe any node to see the spectrum. Built with Dear ImGui + ImPlot.

Topics

Resources

Contributing

Stars

40 stars

Watchers

3 watching

Forks

Latest commit

 

History

1,163 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tiny RF Simulator

Modular RF signal chain simulator with real-time spectrum display
Design a cascade of RF components and probe any node to see the spectrum.

RF Simulator Banner

Release Build & Test License C++20


🎬 Demo

Building a signal chain, probing nodes, and reading the spectrum in real time.

demo.mp4

✨ Features

  • 🔧 13 component types — Amplifiers, attenuators, equalizers, mixers, filters, splitters, combiners, RF switches (1:2 and 2:1), coax cable, RF ADC, signal generator, and PFB channelizer
  • 📊 Real-time spectrum display — probe any node in the signal chain with ImPlot
  • 📐 S-parameter support — Touchstone file import for accurate component modeling
  • 🧮 DSP pipeline — Polyphase filter bank channelizer, noise PSD analysis
  • 🏗️ Dirty-flag caching — Efficient recomputation only when parameters change
  • 🔀 Subcircuits — collapse part of the schematic into a block for reuse
  • 🧩 Extensible architecture — Clean engine+widget pattern for adding new components
  • 🖥️ Network Analyzer — measures gain and noise figure of the chain between two probe points
  • ⚡ Power Meter — total power readout at any node in the chain
  • 🔌 Extensions — manifest-based plugins for data packs and external Tools-menu actions
  • 📘 Guided tutorial — first-run walkthrough with panel highlighting
  • 🧪 Test Flow — author repeatable parameter sweeps on a live circuit, capture built-in measurements, preview results, and export them as JSON (View > Test Flow)
  • 🧮 PFB Filter Calculator — plot the Kaiser prototype response, compare filter metrics with a rejection target, and apply designs to PFB channelizers (View > Filter Calculator)
  • 📐 Receiver Requirements — band, gain, and noise-figure limits, with a pass, fail, or incomplete status for each check (View > Receiver Requirements)
  • ⚡ Receiver output power and IIP3 checks — output-power limits at a reference tone and two-tone IIP3 sweeps, reported alongside gain and noise figure

🚀 Quick Start

Download

Download the newest release from the Releases page. Use rf-simulator-linux-x86_64.tar.gz on Linux or rf-simulator-windows-x86_64.zip on Windows. The user manual covers installing, the first run, and the guided tutorial.

Build from source (developers)

# Clone and build
cmake -B build -G Ninja -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc
cmake --build build

# Run
build/bin/tiny-rf-simulator.exe

💡 First build takes 60-90s (FetchContent downloads all dependencies). For detailed setup, prerequisites, and per-platform instructions see the Quickstart Guide.

🤖 Connect an Agent

An MCP client launches the local rf-sim-mcp bridge over standard input/output. Keep the RF Simulator GUI running, then open View > Agent and enable Agent Server; the client can connect only while the server is enabled.

Add this generic MCP server configuration to your client:

{
  "mcpServers": {
    "rf-sim": {
      "command": "<install dir>/rf-sim-mcp"
    }
  }
}

For Claude Code, run:

claude mcp add rf-sim -- "<install dir>/rf-sim-mcp"

Replace <install dir> with the directory containing the simulator executables. On Windows, use rf-sim-mcp.exe in the JSON command and Claude Code command.

Agents can save and load .rfsim projects with project_save and project_load, which take absolute paths. They can also create validated reusable component-library JSON entries with library_create, then find and place them through library_search and circuit_edit. Project entries persist under ./rf-sim-libraries relative to the simulator process's current working directory; global entries persist under $HOME/.rf-sim/libraries or %USERPROFILE%/.rf-sim/libraries. Library creation does not change the circuit and accepts no arbitrary paths or asset files. Agents cannot open file dialogs.

The local bridge protects the GUI endpoint against access from other local accounts and web pages. It does not protect against software running as the same user or administrators.


📖 Documentation

Topic Link
User manual Install, tutorial, and reference
🚀 Quickstart & Build Quickstart Guide
🏛️ Architecture Architecture Overview
📡 RF Components Components Reference
📐 S-Parameter System S-Parameter System
🧪 Testing Testing Guide · Test Flow (ATP)
⚙️ Operations Build & Operations
📈 DSP Pipeline DSP Pipeline & Workflows
📚 Engineering Refs Amplifier model · PFB channelizer · RF ADC · Touchstone parser
🗺️ Roadmap ROADMAP.md

🤝 Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Additional resources:


📄 License

This project is licensed under the Apache-2.0 License.

About

Modular RF signal chain simulator with real-time spectrum display. Design cascades of amplifiers, filters, mixers, ADCs, and more - probe any node to see the spectrum. Built with Dear ImGui + ImPlot.

Topics

Resources

Contributing

Stars

40 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages