Files
rfcp/docs/devlog/gpu_supp/RFCP-Roadmap-Updated-2026-02-04.md

221 lines
7.2 KiB
Markdown

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