Fujimod
브라우저에서 카메라 펌웨어를 시험하고 Fujimod SD 부팅 파일을 만든다
AI 기반 실시간 오로라 가시성 예보와 탄소 최적화 경로 제안
Real-time aurora visibility forecasts with AI-powered, carbon-optimized Green Path recommendations. Chase the Northern Lights sustainably. Built for Earth Day 2026.
라이프스타일TypeScript · CSSGitHub @klee1611온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기🌌 Carbon-optimized aurora sighting dashboard — Earth Day 2026 Hackathon
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Sustainable Aurora Viewing — Earth Day Hackathon 2026
A real-time, carbon-optimized dashboard for aurora borealis sightings. Built for the dev.to Earth Day Weekend Challenge.
AuroraPath connects people with Earth's most spectacular natural phenomenon — the aurora borealis — while promoting sustainable travel. Instead of jumping in a car and driving to a dark-sky spot, AuroraPath shows you the best eco-friendly routes: public transit, carpooling, and low-carbon options, each with real CO₂ savings so you can chase the lights and tread lightly on the planet.
AuroraPath combines live NOAA space weather data with Google Gemini AI to help you:
Can't see the video? Download it here.
The headline number is NOAA SWPC's own aurora forecast: the probability of visible aurora from the OVATION Prime 30-minute forecast, read straight off its global 1° grid. AuroraPath does not model the aurora itself.
| Situation | Number shown |
|---|---|
| Location known | OVATION probability at your grid cell |
| No location yet | Highest OVATION probability anywhere in the Northern Hemisphere |
| Green Path gate | Highest OVATION probability within 300 km of you (the radius Green Path searches), so you are not blocked when the aurora is within travelling distance but not overhead |
| OVATION feed down | No number (null). Green Path returns 503 instead of guessing |
The forecast is valid ~30–90 minutes ahead of observation and refreshes every minute.
Implemented in lib/vscore.ts; the API field is still named avs for
compatibility.
Note that OVATION is the probability of aurora overhead at a point. NOAA notes that with a clear view of the poleward horizon you can sometimes see aurora up to ~1000 km away, so a low number at your exact location does not rule out a horizon display.
| Chance | Level | Meaning |
|---|---|---|
| 80–100% | 🌌 Excellent | Very likely overhead |
| 60–79% | ✨ High | Likely overhead |
| 35–59% | 🌠 Moderate | Reasonable chance |
| 10–34% | 🌃 Low | Faint or occasional; SWPC's map starts shading at 10% |
| 0–9% | 🌙 None | Unlikely |
An earlier version blended hemispheric power, the Newell solar wind coupling function and Kp into a custom 0–100 score with a dipole-based oval estimate. It was a reasonable approximation, but OVATION Prime is the operational model NOAA builds from those same inputs, so using its output directly is more reliable and easier to explain. The Kp and hemispheric power feeds that only fed the old score are no longer fetched.
All from NOAA SWPC, no API key required:
| Feed | Endpoint |
|---|---|
| OVATION aurora probability (headline number) | json/ovation_aurora_latest.json |
| Solar wind + IMF (propagated to the bow shock) | products/geospace/propagated-solar-wind-1-hour.json |
| G/R/S scales + forecasts | products/noaa-scales.json |
The system uses a two-layer identity model:
Key data flows:
GET /api/aurora — public endpoint, NOAA ingestion + OVATION probability lookup, 30 req/min IP rate limit.
Optional ?lat=&lng= reads the probability at that location; coordinates are rounded to 0.1° by the
client before being sentGET /api/geocode — server-side Nominatim proxy (hides user GPS coordinates from third parties)POST /api/green-path — requires Auth0 session cookie; verifies identity, checks/increments Upstash Redis quota, calls Gemini with M2M token| Framework | Next.js 14 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS |
| Map | react-leaflet + Stadia Maps |
| Charts | Recharts |
| AI | Google Gemini 3.1 Flash |
| Auth | Auth0 (SPA + M2M) |
| Cache / Quota | Upstash Redis |
| Data | NOAA Space Weather Prediction Center |
| Deploy | Vercel |
git clone https://github.com/klee1611/AuroraPath.git
cd AuroraPath
npm install
cp .env.example .env.local
Fill in .env.local:
| Variable | Where to get it |
|---|---|
AUTH0_SECRET | Run: openssl rand -hex 32 |
AUTH0_BASE_URL | Your app URL (e.g. http://localhost:3000) |
AUTH0_ISSUER_BASE_URL | Your Auth0 domain (e.g. https://dev-xxx.auth0.com) |
AUTH0_CLIENT_ID | Auth0 → Applications → Regular Web App |
AUTH0_CLIENT_SECRET | Auth0 → Applications → Regular Web App |
AUTH0_M2M_CLIENT_ID | Auth0 → Applications → Machine to Machine |
AUTH0_M2M_CLIENT_SECRET | Auth0 → Applications → Machine to Machine |
AUTH0_M2M_AUDIENCE | https://YOUR_DOMAIN.auth0.com/api/v2/ |
GEMINI_API_KEY | Google AI Studio |
UPSTASH_REDIS_REST_URL | Upstash console → Redis → REST API |
UPSTASH_REDIS_REST_TOKEN | Upstash console → Redis → REST API |
DAILY_GEMINI_LIMIT | Max AI calls per user per day (default: 5) |
Upstash is optional in development. If not set, an in-memory fallback is used automatically.
http://localhost:3000/api/auth/callbackhttp://localhost:3000npm run dev
npx vercel --prod
Add all .env.local variables in Vercel → Project Settings → Environment Variables.
Update Auth0 callback/logout URLs to your Vercel domain.
Built with 💚 for Earth Day 2026