Files
rfcp/RFCP-Roadmap-Updated-2026-02-04.md
2026-02-04 00:50:52 +02:00

7.2 KiB

RFCP Project Roadmap — Updated February 4, 2026

Project: RFCP (RF Coverage Planning) for UMTC
Developer: Олег + Claude
Started: January 30, 2025
Current Version: 3.8.0 (GPU Acceleration Complete)


Completed Milestones

Phase 1: Frontend (January 2025)

  • React + TypeScript + Vite + Leaflet
  • Multi-site RF coverage planning
  • Multi-sector sites (Alpha/Beta/Gamma)
  • Geographic-scale canvas heatmap
  • Keyboard shortcuts + delete confirmation
  • NumberInput components with sliders
  • TypeScript strict mode, ESLint clean
  • Production build: 536KB / 163KB gzipped

Phase 2: Backend Architecture (February 1, 2025)

  • Python FastAPI + NumPy + ProcessPoolExecutor
  • 8 propagation models (FreeSpace, Okumura-Hata, COST-231, ITU-R P.1546, etc.)
  • Modular geometry engine (haversine, intersection, reflection, diffraction, LOS)
  • SharedMemoryManager for terrain data (zero-copy, 25 MB)
  • Building filtering (351k → 27k bbox → 15k cap)
  • Overpass API with retry + mirror failover
  • WebSocket progress streaming

Phase 3: Performance (February 2-3, 2025)

  • LOD (Level of Detail) optimization
  • Spatial indexing for buildings (R-tree)
  • Dominant path simplification for distant points
  • OOM fix + memory management
  • CloudRF-style color gradient
  • Results popup + session history
  • Terrain profile viewer

Phase 4: GPU Acceleration (February 3-4, 2025)

  • CuPy + CUDA backend (RTX 4060)
  • CUDA Toolkit 13.1 + cupy-cuda13x setup
  • Phase 2.5: Vectorized distances + path_loss (0.006s)
  • Phase 2.6: Vectorized terrain LOS + diffraction (0.04s)
  • Phase 2.7: Vectorized antenna pattern loss
  • Vegetation bbox pre-filter (100x+ speedup)
  • Worker process isolation (no CUDA in workers)
  • PyInstaller ONEDIR GPU build (1.2 GB installer)
  • Full preset: 195s → 11.2s (17.4x speedup)

Supporting Work

  • RF Radio Theory wiki article (comprehensive)
  • Propagation model research (CloudRF, SPLAT!, Signal Server)
  • RFCP Method collaboration framework documented

📊 Current Performance

Preset Points Resolution Time (cached) Time (cold)
Standard 1,975 200m 2.3s ~12s
Full 6,640 50m 11.2s ~20s
50km radius 4,966 adaptive ~410s ~420s

Hardware: Windows 11, RTX 4060 Laptop GPU, 6-core CPU


🔜 Next: Phase 5 — Data & Accuracy

5.1 SRTM Terrain Integration

Priority: HIGH
Status: Not started

Current terrain: Single HGT tile download per calculation
Target: Pre-cached SRTM/ASTER DEM tiles with proper interpolation

  • SRTM tile manager (auto-download, cache)
  • Bilinear interpolation for elevation sampling
  • Multi-tile coverage for large radius
  • Terrain profile accuracy validation
  • Compare with current terrain data quality

5.2 Project Persistence

Priority: MEDIUM

  • Save/load projects (JSON or SQLite)
  • Site configurations persistence
  • Coverage results caching
  • Session history persistence across restarts
  • Export coverage report (PDF/PNG)

5.3 Accuracy Validation

Priority: MEDIUM

  • Compare with known coverage maps
  • Field measurements with real equipment
  • Calibrate propagation models per environment
  • Antenna pattern library (real equipment specs)

🔮 Future Phases

Phase 6: Multi-Station & Dashboard

  • Multi-station view (aggregate coverage)
  • Station discovery via WireGuard mesh
  • Coverage gap analysis
  • Interference modeling between stations
  • Handover zone visualization

Phase 7: Hardware Integration

  • LimeSDR Mini 2.0 testing
  • Real RF attach validation
  • sysmoISIM-SJA2 SIM integration
  • ZTE B8200 base station testing
  • INFOZAHYST Plastun SDR (if accessible)

Phase 8: Advanced Features

  • 3D visualization mode
  • Link budget analysis view
  • Frequency planning tool
  • Indoor coverage modeling
  • Time-series analysis (seasonal vegetation)
  • Offline mode (embedded terrain DB)

Phase 9: Distribution

  • Auto-updater (electron-updater)
  • Live USB distribution for field deployment
  • Standalone offline package
  • User documentation / help system

🏛️ Architecture Overview

RFCP Application (Electron)
├── Frontend (React + TypeScript + Vite)
│   ├── Leaflet map with custom canvas heatmap
│   ├── Zustand state management
│   └── WebSocket for progress streaming
│
├── Backend (Python FastAPI)
│   ├── Coverage Engine
│   │   ├── Grid generator (adaptive zones)
│   │   ├── GPU pipeline (CuPy/CUDA) — main process
│   │   │   ├── Phase 2.5: distances + path_loss
│   │   │   ├── Phase 2.6: terrain LOS + diffraction
│   │   │   └── Phase 2.7: antenna pattern
│   │   └── CPU workers (ProcessPool) — 3-6 workers
│   │       ├── Building obstruction (spatial index)
│   │       ├── Reflections (ray-building intersection)
│   │       └── Vegetation loss (bbox pre-filter)
│   │
│   ├── Propagation Models (8 models)
│   │   ├── Free-Space Path Loss
│   │   ├── Okumura-Hata (150-1500 MHz)
│   │   ├── COST-231-Hata (1500-2000 MHz)
│   │   ├── ITU-R P.1546
│   │   └── ... 4 more
│   │
│   ├── OSM Services
│   │   ├── Buildings (Overpass API + cache)
│   │   ├── Vegetation (bbox pre-filter)
│   │   ├── Water bodies
│   │   └── Streets
│   │
│   └── Terrain Service
│       ├── HGT tile download + cache
│       ├── Elevation sampling
│       └── Line-of-sight checking
│
└── Desktop (Electron)
    ├── Backend process management
    └── NSIS installer (1.2 GB with CUDA)

📈 Development Timeline

Jan 30, 2025   Phase 1: Frontend complete (10 iterations)
Feb 01, 2025   Phase 2: Backend architecture (48 files, 82 tests)  
Feb 02, 2025   Phase 3: LOD + performance optimization
Feb 03, 2025   Phase 3.5-3.6: GPU setup + CUDA build
Feb 04, 2025   Phase 3.7-3.8: GPU vectorization complete ⭐
               ─────────────────────────────────────────
               Full preset: 195s → 11.2s (17.4x speedup)
               Standard: 38s → 2.3s (16.5x speedup)

Total development time: ~5 days intensive
Total iterations: 3.8.0 (20+ sub-iterations)
Architecture: Battle-tested, production-ready


🧰 Tech Stack

Component Technology Version
Frontend React + TypeScript 18
Build Vite 5.x
Map Leaflet 1.9
State Zustand 4.x
Backend Python FastAPI 3.12
GPU CuPy + CUDA 13.x
Parallel ProcessPoolExecutor stdlib
Terrain NumPy (HGT tiles) 1.26
Desktop Electron 28.x
Installer NSIS (via electron-builder) -
Build (BE) PyInstaller 6.x

"11.2 seconds. Full preset. 6,640 points. GPU acceleration complete." — February 4, 2026