A browser-based sun-path calculator for architecture and outdoor planning. Choose a location, date, time, and timezone to inspect solar geometry in 2D or 3D, compare a full year, and export the result.
☀️ Solar geometry — altitude, azimuth, sunrise, sunset, solar noon, day length, and twilight bands use readable NOAA-style simplified formulas.
🌍 Map input — select coordinates on a world map or enter latitude and longitude directly with an explicit timezone offset.
📊 Day and year views — inspect one day's track or compare representative monthly tracks across the year.
🧭 2D and 3D diagrams — use a polar chart or rotate and zoom a Three.js sky sphere.
🖼️ Deterministic export — save the current diagram as SVG or high-resolution PNG.
🌐 Bilingual interface — English is the default and Simplified Chinese is complete.
🎨 Adaptive themes — follow the system by default, with a compact light/dark toggle.
git clone https://github.com/lailai0916/sun-path-atlas.git
cd sun-path-atlas
npm install
npm run devBefore publishing a change:
npm run lint
npm run buildsun-path-atlas/
├── docs/ # documentation and formulas
│ └── about.md # formulas, definitions, and limits
├── public/ # static assets
├── src/ # application source code
│ ├── components/ # controls, charts, map, and statistics
│ ├── modules/ # solar math, export, and i18n
│ ├── App.tsx # application composition
│ ├── index.css # themes and responsive layout
│ └── main.tsx # React entry point
├── index.html # Application entry page
├── package-lock.json # Dependency lock file
├── package.json # Dependency configuration
├── tsconfig.json # TypeScript configuration
└── vite.config.ts # Vite configurationThe model calculates equation of time, solar declination, hour angle, altitude, and
azimuth. Sunrise and sunset use a Sun-center altitude of
Results are approximate and may differ from high-precision ephemerides by tens of seconds. Refraction is included only in the sunrise and sunset definition, terrain and local horizon obstructions are not modelled, and polar-circle boundaries are more sensitive. See About Sun Calculations for formulas and limitations.
This project's code is licensed under MIT License.