Interactive R Shiny app for generating 3D terrain visualizations using rayshader.
- Preset locations across Pennsylvania, California, and Washington
- Custom area drawing with validation (max 50 km²)
- Customizable rendering (vertical exaggeration, color palette, lighting)
- Smart water detection (auto-disabled for flat terrain)
- Water feature overlays
- Minimap showing selected region
- Interactive 3D controls (rotate, zoom, pan)
- Loading overlay
- R 4.1.0+
- XQuartz (macOS): xquartz.org - restart after install
# Install packages
install.packages(c("shiny", "leaflet", "leaflet.extras", "sf",
"elevatr", "terra", "rayshader", "rgl",
"osmdata", "ggplot2", "plotly", "ggspatial", "remotes"))
shiny::runApp()- Select a location from the dropdown
- Adjust parameters (vertical exaggeration, color palette, sun angle, detail level)
- Click Generate 3D View
- Rotate and zoom the interactive 3D model
- Pennsylvania: Wissahickon Valley, Manayunk, Fairmount Park, and more
- California: Yosemite Valley, Point Reyes, Big Sur, Lake Tahoe
- Washington: Mount Rainier, Olympic Peninsula, Columbia River Gorge
- Custom: Draw any rectangle on the map (continental US)
docker build -t shiny-scape .
docker run -p 3838:3838 -e PORT=3838 shiny-scape
# Visit http://localhost:3838Edit R/map_utils.R and add to get_preset_locations():
your_location = list(
name = "Location Name",
lng1 = -75.180, lng2 = -75.150,
lat1 = 39.940, lat2 = 39.960,
description = "Brief description"
)MIT