A professional WiFi site survey and heatmap generation tool for IT professionals. Upload floor plans, click to measure WiFi signal strength at various locations, and generate color-coded heatmap visualizations.
- Floor Plan Support: Load PNG, JPG, BMP, or GIF images of floor plans
- Click-to-Measure: Click anywhere on the floor plan to take a WiFi measurement
- Real-time Heatmap: Automatic heatmap generation using IDW interpolation
- Signal Metrics: RSSI (dBm), link quality, channel, frequency, and band
- Project Files: Save and load survey projects (.wifisurvey)
- Export Options: CSV data export, heatmap image export, HTML reports
- Windows 10/11 (64-bit)
- .NET 8 Runtime
- WiFi adapter with support for Native WiFi API
# Navigate to WifiSurvey directory
cd tools/WifiSurvey
# Restore packages
dotnet restore
# Build
dotnet build --configuration Release
# Run
dotnet run- Load Floor Plan: File > Load Floor Plan, or click "Load Image" in toolbar
- Take Measurements: Click on locations in the floor plan to measure WiFi
- View Heatmap: After 3+ measurements, a heatmap automatically appears
- Export Results: Export to CSV, heatmap image, or HTML report
| Action | Control |
|---|---|
| Take Measurement | Left-click on floor plan |
| Select Point | Left-click on measurement marker |
| Pan View | Right-click + drag |
| Zoom | Mouse wheel |
| Reset View | View > Reset View |
| Color | Signal Strength | Quality |
|---|---|---|
| Green | -30 to -50 dBm | Excellent |
| Yellow-Green | -50 to -60 dBm | Good |
| Yellow | -60 to -70 dBm | Fair |
| Orange | -70 to -80 dBm | Weak |
| Red | Below -80 dBm | Poor |
WifiSurvey/
├── WifiSurvey.sln # Solution file
├── WifiSurvey.csproj # .NET 8 WinForms project
├── Program.cs # Entry point
├── MainForm.cs # Main application form
├── Models/
│ ├── MeasurementPoint.cs # WiFi measurement data
│ ├── FloorPlan.cs # Floor plan image and scale
│ └── SurveyProject.cs # Project container
├── Services/
│ ├── WifiScanner.cs # Native WiFi API wrapper
│ └── HeatmapGenerator.cs # IDW interpolation heatmap
├── Controls/
│ └── FloorPlanCanvas.cs # Custom floor plan control
└── README.md # This file
Uses the Windows Native WiFi API (wlanapi.dll) through P/Invoke to retrieve:
- RSSI (Received Signal Strength Indicator) in dBm
- Link quality percentage
- Channel and frequency
- BSSID (access point MAC address)
- Maximum data rate
- Algorithm: Inverse Distance Weighting (IDW) interpolation
- Smoothing: Gaussian blur for visual clarity
- Color Gradient: Red (weak) → Yellow → Green (strong)
- Performance: Preview mode with scaling for real-time updates
Projects are saved as JSON files with embedded floor plan images:
{
"version": "1.0",
"name": "Office Survey",
"floorPlan": { ... },
"measurementPoints": [ ... ],
"embeddedFloorPlanImage": "base64..."
}- Grid Pattern: Take measurements in a regular grid for uniform coverage
- Focus Areas: Add extra measurements near problem areas
- Consistent Height: Hold device at consistent height (desk level)
- Multiple Passes: Survey at different times to account for interference
- Document Notes: Use the note field to mark special conditions
Includes all measurement data with columns:
- Timestamp, X, Y, SSID, BSSID, SignalStrength, LinkQuality, Channel, Band, Frequency, MaxRate, Note
- PNG or JPG with floor plan and heatmap overlay
- Full resolution of original floor plan
- Summary statistics
- Coverage distribution table
- All measurement points
- Ready for printing or sharing
- Ensure WiFi adapter is enabled
- Check that Windows WLAN AutoConfig service is running
- Run as Administrator if issues persist
- Minimum 3 measurement points required
- Check View > Show Heatmap is enabled
- No WiFi connection detected
- Move closer to an access point
- Check WiFi adapter is functioning
Part of CosmicBytez IT Tools Library. See repository LICENSE for details.
- WinPing - Network ping utility
- Tools Library README - Overview of all IT tools