# 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*