Skip to content

GridDown is built for preppers, survivalists, emergency responders, SAR teams, and tactical users who need reliable offline-first functionality.

License

Notifications You must be signed in to change notification settings

Ret-tree/GridDown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GridDown

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.

GridDown Screenshot

Key Features

πŸ—ΊοΈ Interactive Mapping

  • 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

πŸ“ Waypoint System

  • 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

πŸ›£οΈ Route Planning

  • 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

πŸ“₯ Offline Maps

  • Download entire regions by drawing polygons on the map
  • Multiple zoom level selection
  • Storage management dashboard
  • Background tile caching
  • Works completely offline after download

β›½ Logistics Calculator

  • 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?")

🚨 Contingency Planning

  • Bail-out point analysis with distance calculations
  • Checkpoint generation along routes
  • Alternative route comparison
  • Risk assessment and mitigation planning

πŸ“» Communication Tools

  • 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

πŸ†˜ SOS & Emergency

  • Emergency contact management
  • Quick-access emergency information
  • Signal mirror sun angle calculator
  • Distress signal reference

🌀️ Environmental Data

  • 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

πŸ“„ Print & Export

  • 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)

βš™οΈ Additional Features

  • 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

Installation

Option 1: Run Locally

git clone https://github.com/Ret-tree/GridDown.git
cd GridDown/griddown

# Serve with any static server
npx serve .
# or
python -m http.server 8000

Open http://localhost:8000 in your browser.

Option 2: Install as PWA

  1. Visit the hosted app URL
  2. Click "Install" when prompted (or browser menu β†’ "Install App")
  3. App will be available offline from your home screen

Option 3: Deploy to Hosting

Upload the contents to any static hosting:

  • GitHub Pages
  • Netlify
  • Vercel
  • Firebase Hosting
  • Any web server

Project Structure

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

Browser Support

  • Chrome/Edge 80+
  • Firefox 75+
  • Safari 13.1+
  • Mobile Safari (iOS 13+)
  • Chrome for Android

Keyboard Shortcuts

Key Action
Ctrl+Z Undo
Ctrl+Shift+Z Redo
Escape Close modal/panel
+ / - Zoom in/out
N Reset map to north

Data Formats

Waypoint

{
    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"
}

Route

{
    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"
}

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit changes: git commit -am 'Add my feature'
  4. Push to branch: git push origin feature/my-feature
  5. Submit a Pull Request

License

MIT License - See LICENSE for details.

Acknowledgments

  • 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

Releases

No releases published

Packages

No packages published