Professional-Grade Offline Tactical Navigation & Planning
GridDown is a feature-rich Progressive Web App (PWA) designed for operational planning in challenging environments where connectivity cannot be assumed. Built for preppers, survivalists, emergency responders, SAR teams, and tactical users who need reliable offline-first functionality.
- Real map tiles from OpenStreetMap, USGS Topo, USFS, Satellite imagery, and more
- 15+ map sources with easy layer switching
- Pan, zoom, and rotation with touch gesture support
- Real-time coordinate display (DD, DMS, DDM, UTM, MGRS formats)
- Grid overlay and distance scale
- 7 structured waypoint types: Water, Fuel, Camp, Resupply, Hazard, Bail-out, Custom
- Type-specific fields (flow rate for water, hours for resupply, etc.)
- Photo attachments, notes, and verification timestamps
- Filter and search waypoints
- Bulk import/export
- Click-to-create route builder with drag reordering
- Terrain-aware segment classification (highway/road/trail/technical)
- Auto-calculated distance, duration, and elevation
- Visual elevation profiles with grade analysis
- Turn-by-turn navigation with voice guidance
- Off-route alerts and breadcrumb tracking
- Download entire regions by drawing polygons on the map
- Multiple zoom level selection
- Storage management dashboard
- Background tile caching
- Works completely offline after download
- 4 vehicle profiles: 4x4 Truck, Jeep/SUV, ATV/UTV, Motorcycle
- 4 personnel profiles: Fit Adult, Average Adult, Child, Elderly
- Terrain-aware fuel consumption calculations
- Water and calorie requirements with hot weather adjustment
- Critical resupply point identification
- What-if scenario analysis ("What if this cache is empty?")
- Bail-out point analysis with distance calculations
- Checkpoint generation along routes
- Alternative route comparison
- Risk assessment and mitigation planning
- Radio frequency database: FRS, GMRS, MURS, Marine, Amateur bands
- Communication plan generator
- Channel/frequency quick reference
- APRS integration for position reporting
- Meshtastic mesh networking support
- Emergency contact management
- Quick-access emergency information
- Signal mirror sun angle calculator
- Distress signal reference
- Weather integration with forecasts and alerts
- Sun/Moon calculator: Rise/set times, moon phase, golden hour
- Magnetic declination with auto-calculation by location
- Terrain analysis: Slope, aspect, viewshed, flood risk, solar exposure
- GPX import/export for compatibility with other apps
- KML/KMZ support for Google Earth
- Print-optimized documents: Route cards, waypoint lists, comm plans
- Encrypted plan sharing (.gdplan format)
- Night mode with red-light and blackout options
- Measurement tool for distance and area
- Location search with geocoding
- Undo/Redo support for all operations
- Onboarding tour for new users
- Keyboard shortcuts for power users
git clone https://github.com/Ret-tree/GridDown.git
cd GridDown/griddown
# Serve with any static server
npx serve .
# or
python -m http.server 8000Open http://localhost:8000 in your browser.
- Visit the hosted app URL
- Click "Install" when prompted (or browser menu β "Install App")
- App will be available offline from your home screen
Upload the contents to any static hosting:
- GitHub Pages
- Netlify
- Vercel
- Firebase Hosting
- Any web server
griddown/
βββ index.html # App entry point
βββ manifest.json # PWA manifest
βββ sw.js # Service worker (offline caching)
βββ favicon.ico
βββ css/
β βββ app.css # All styles
βββ icons/
β βββ icon.svg
β βββ icon-192.png
β βββ icon-512.png
βββ js/
β βββ app.js # Application bootstrap
β βββ core/
β β βββ constants.js # Configuration & type definitions
β β βββ state.js # Centralized state management
β β βββ events.js # Pub/sub event system
β β βββ history.js # Undo/redo support
β βββ utils/
β β βββ helpers.js # Utility functions
β β βββ storage.js # IndexedDB persistence
β β βββ icons.js # SVG icon library
β β βββ coordinates.js # Coordinate parsing/formatting
β β βββ events-manager.js
β βββ modules/
β βββ map.js # Map rendering & interaction
β βββ panels.js # UI panel content
β βββ modals.js # Modal dialogs & toasts
β βββ sidebar.js # Navigation sidebar
β βββ routebuilder.js # Route creation
β βββ logistics.js # Resource calculations
β βββ contingency.js # Bail-out planning
β βββ offline.js # Tile downloading
β βββ gpx.js # GPX import/export
β βββ kml.js # KML/KMZ support
β βββ gps.js # GPS tracking
β βββ navigation.js # Turn-by-turn guidance
β βββ elevation.js # Elevation profiles
β βββ terrain.js # Terrain analysis
β βββ weather.js # Weather integration
β βββ sunmoon.js # Astronomical calculations
β βββ declination.js # Magnetic declination
β βββ radio.js # Frequency database
β βββ commplan.js # Communication planning
β βββ aprs.js # APRS integration
β βββ meshtastic.js # Mesh networking
β βββ sos.js # Emergency features
β βββ measure.js # Distance/area tool
β βββ search.js # Location search
β βββ print.js # Print/PDF export
β βββ plansharing.js # Encrypted sharing
β βββ nightmode.js # Night vision modes
β βββ onboarding.js # First-run tour
β βββ undo.js # Undo/redo
βββ docs/
βββ ARCHITECTURE.md
βββ AUDIT_REPORT.md
- Chrome/Edge 80+
- Firefox 75+
- Safari 13.1+
- Mobile Safari (iOS 13+)
- Chrome for Android
| Key | Action |
|---|---|
Ctrl+Z |
Undo |
Ctrl+Shift+Z |
Redo |
Escape |
Close modal/panel |
+ / - |
Zoom in/out |
N |
Reset map to north |
{
id: "abc123xyz",
name: "Basecamp Alpha",
type: "camp", // water|fuel|camp|resupply|hazard|bailout|custom
lat: 37.4215,
lon: -119.1892,
elevation: 2450,
notes: "Good cover, near creek",
verified: true,
lastVerified: "2025-01-15T10:30:00Z"
}{
id: "route123",
name: "Sierra Traverse",
points: [
{ lat: 37.42, lon: -119.19, terrain: "road" },
{ lat: 37.45, lon: -119.15, terrain: "trail" }
],
distance: "45.2",
duration: "6h 30m",
elevation: "3200"
}- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit changes:
git commit -am 'Add my feature' - Push to branch:
git push origin feature/my-feature - Submit a Pull Request
MIT License - See LICENSE for details.
- Built with vanilla JavaScript for maximum portability
- Map tiles from OpenStreetMap, USGS, USFS, and Esri
- Weather data from Open-Meteo
- Elevation data from Open-Meteo
- Icons inspired by Lucide/Feather icon sets
Version 6.2.2 | Changelog
