Releases: d3mocide/MeshRF
Release list
v1.2.0 - OpenTopoData Migration & ViewShed Layer
Release Notes
v1.2 - OpenTopoData Migration & ViewShed Layer
This release replaces the Mapbox elevation API with OpenTopoData, adds a beta ViewShed visualization tool, and includes comprehensive code cleanup and security improvements.
🌐 Elevation Data Overhaul
- OpenTopoData Integration: Switched from Mapbox to OpenTopoData API for elevation tile fetching.
- 98.8% API Reduction: Batch requests reduce API calls from 256 to 3 per tile.
- No Authentication Required: Works out-of-the-box with public API (1000 requests/day).
- Configurable Sources: Support for custom/self-hosted OpenTopoData instances via environment variables.
- Rate Limit Handling: Built-in 300ms delays between batches to respect free tier limits.
- Environment Variables:
ELEVATION_API_URL=https://api.opentopodata.org # Custom instance URL ELEVATION_DATASET=srtm30m # srtm30m, srtm90m, aster30m, ned10m
🔭 ViewShed Layer (Beta) ⚠️ In Development
- WebGL-Powered Visualization: Real-time terrain visibility overlay using custom shaders.
- Terrain-RGB Decoding: Decodes elevation tiles directly on GPU for performance.
- Interactive Placement: Click to place observer and instantly see viewshed calculation.
- Visual Feedback: Red/green overlay indicates obstructed vs. visible terrain areas.
- Seamless Integration: Fetches elevation tiles from the same OpenTopoData backend.
Note: This feature is in active development. Advanced features like Fresnel zone analysis are planned for future releases.
📡 Link Analysis Optimizations
- Smarter API Updates: Link analysis now only triggers when both TX and RX points are placed, preventing unnecessary API calls.
- Improved UX: Moving a single marker no longer clears the previous analysis result until the second point is placed.
- Reduced Backend Load: Eliminated redundant API requests during marker placement workflow.
- Cleaner State Management: Better handling of partial link configurations.
🧹 Code Quality & Security
-
Code Cleanup: Removed 80+ lines of unnecessary comments and verbose documentation.
- Cleaned up
tile_manager.py(meshgrid interpolation comments) - Updated all Mapbox-specific references to generic "Terrain-RGB" terminology
- Removed redundant comments in
server.pyandViewshedLayer.js
- Cleaned up
-
Security Audit: Comprehensive security scan with zero critical findings.
- ✅ No exposed API keys or credentials
- ✅ Proper environment variable usage throughout codebase
- ✅
.gitignorecorrectly prevents sensitive file commits ⚠️ Identified CORS and Redis auth as production hardening items
📋 Feature Status Clarification
Features marked as "In Development" in documentation and UI:
- Find Ideal Spot - Optimal node placement search
- Heatmap - Coverage analysis visualization
- ViewShed - Terrain visibility analysis (Beta)
These features are functional but may have incomplete behavior or missing advanced features.
🔧 Breaking Changes
- Removed: Mapbox API dependency and
MAPBOX_TOKENenvironment variable - Migration: Users upgrading should remove
MAPBOX_TOKENfrom their.envfiles
📚 Documentation Updates
- Updated README.md with OpenTopoData configuration guide
- Added ViewShed section to feature list
- Marked in-development features with warning indicators
- Removed duplicate docker-compose configuration sections
v1.0 - Geodetic Earth Update
Release Notes
v1.0 - Geodetic Earth Update
This major release transforms meshRF into a professional-grade RF planning tool, introducing geodetic physics, batch processing, and a completely modernized UI.
🌐 Physics Engine Upgrade
- Geodetic Earth Model: Implemented curved-earth calculations with configurable K-Factor.
- Accurate Fresnel Analysis: Now strictly enforces the 60% Clearance Rule (WISP Standard) for link quality ratings (Excellent/Good/Marginal/Obstructed).
- Clutter Awareness: Added support for Clutter Height (trees/urban) in obstruction analysis.
⚡ Batch Processing
- CSV Import: Analyze hundreds of nodes at once by importing a simple CSV (
Name, Lat, Lon). - Matrix Analysis: Automatically computes link feasibility for every pair of nodes (N*(N-1)/2 links).
- Bulk Export: Download detailed link budget reports (RSSI, Margin, Clearance) as CSV.
🎨 UI Modernization
- Responsive Sidebar: Collapsible, glassmorphism sidebar that works perfectly on mobile devices.
- Floating Controls: Smart "Tab" toggle that floats independently of the sidebar.
- Visual Polish: Custom dark-mode scrollbars, refined typography, and new "meshRF" branding with custom iconography.
- Link Analysis Panel: Now fully resizable with a draggable handle for better chart visibility.
🛠️ Configuration & Deployment
- Environment Variables:
VITE_ELEVATION_API_URL: Configure your own elevation provider (e.g., self-hosted Open-Meteo).VITE_MAP_LAT/VITE_MAP_LNG: Set custom default starting coordinates.
- Refined Docker: Optimized Docker Compose setup for easy deployment.
v0.2-rc
Release Notes - v0.2-rc
Mesh RF Analyzer - The Branding Update
This release brings a polished identity to the project and important configuration fixes for deployment.
🎨 Branding & Identity
New Name: Officially renamed to Mesh RF Analyzer.
New Icon: Added a sleek, cyber-aesthetic SVG icon (Gradient Hexagon).
UI Updates: Updated title in Browser Tab and Sidebar.
⚙️ configuration & Troubleshooting
Custom Domains: Added ALLOWED_HOSTS support for deploying behind reverse proxies or on custom domains (fixes "Blocked host" errors).
Docker Publishing: Workflow now explicitly builds and pushes the latest tag to GHCR.
Documentation: Updated README.md with correct clone URLs and Docker run commands.
v0.1-rc
v0.1-rc - Initial Release
Features
- Real-time Link Analysis: Calculate link budgets for LoRa Mesh networks (915MHz).
- Interactive Map: Visualize nodes and links on a map with terrain data.
- Elevation Profiling: View elevation profiles between two points using DEM data.
- Fresnel Zone Visualization: Assess line-of-sight obstructions with Fresnel zone rendering.
- Preset Configurations: Includes presets for common hardware/antennas.
Installation / Usage
Docker (Recommended)
- Run
docker run -d -p 5173:5173 ghcr.io/d3mocide/mesh-analyzer:latest - Access the app at
http://localhost:5173.
Manual
This is a web-based tool.
- Clone the repository.
- Run
npm install. - Run
npm run devto start the local server.
Disclaimer
Warning
This tool is provided as-is for educational and planning purposes only. This tool was created with Gemini 3.5 so results are not guaranteed to be accurate. Digital Elevation Models may not reflect obstructions like buildings or dense vegetation.