WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Self-hosted ADS-B flight tracker PWA: RTL-SDR + readsb, dead-reckoned planes, to-scale silhouettes, faux-3D SEA/BFI/RNT airports
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A self-hosted ADS-B flight tracker for the skies above Renton, WA, built as an installable phone app. A $30 software-defined radio on a windowsill hears the aircraft overhead, and a small web app turns that into a live map with real aircraft silhouettes, airline logos, routes and a faux-3D view of SEA, Boeing Field and Renton airports.
Live: sky.spenc.ee (Add to Home Screen on a phone for the app). The public site is served through a Cloudflare tunnel from a filtered copy of the data that leaves out anything locating the receiver; see nginx.conf. This repo is the whole project.
1090 MHz +--------------------------- docker compose ---------------------------+
antenna --> RTL-SDR | ultrafeeder (readsb + tar1090) sky-api (stdlib Python, SQLite) |
| /data/aircraft.json /api/ac/<hex> lookups + log |
| traces, receiver.json /api/fill community gaps |
| \ / |
| +-----> sky-web (nginx) <--+ |
+----------------------------|---------------------------------------- +
v
web/ PWA (vanilla JS + Leaflet), service worker
sky-api looks aircraft up on adsbdb.com only when someone taps a plane, and tops up what the antenna cannot hear (parked and taxiing aircraft at SEA/BFI behind terrain, traffic beyond range) from adsb.fi, adsb.lol and airplanes.live. Those feeds are read-only; nothing from the receiver is sent to them.
Dead reckoning. The receiver reports a position about once a second per aircraft. Between fixes the app advances each marker along its track at its ground speed on every animation frame, then blends any disagreement with the next real fix in over a short window, so planes glide instead of jumping.
Route trust. Callsign-to-route databases are wrong often, because one flight number flies several legs per day. sky-api computes the cross-track distance from the aircraft to the origin-destination great circle and marks the route "trusted" only within ROUTE_SLACK_NM (120 nm). Untrusted routes are not shown.
Silhouettes. tools/build_shapes.py crops and normalizes the outlines in shapes-src/ (one common scale, about 1 unit per meter) into web/shapes/, with an index of sizes, type aliases and ADS-B emitter-category fallbacks. The app scales each icon by real aircraft size, and at airport zoom draws it at true size.
Faux-3D buildings. tools/build_airports.py pulls aerodrome features from Overpass and writes a compact web/airports.json (coordinates rounded to about 1 m). The app draws buildings as extruded footprints with a shifted roof layer and shadow, with the walls shaded by facing. Detail arrives with zoom: runways always, taxiways, then buildings.
Service worker. web/sw.js precaches the app shell (versioned, so a release replaces the old cache) and keeps a size-capped cache of map tiles. Live data (/data/, /api/) always goes to the network.
.env next to docker-compose.yml (see .env.example):
LAT=47.48
LON=-122.21
Use your real receiver location here; it stays on your machine (.env is git-ignored). The app also reads it at runtime from receiver.json.docker compose up -d, then open http://<host>:8504/. The stock tar1090 UI is at /classic/.~/adsb on a server: SKY_HOST=user@host ./deploy.sh.python3 tools/build_airports.py (stdlib only) and python3 tools/build_shapes.py (needs cairosvg and Pillow).Sightings are stored in state/sky.db (SQLite).
web/airports.jsonweb/vendor/leaflet/GPL-3.0, see LICENSE. The aircraft silhouettes are derived from GPL-3.0 work, which sets the license for the whole repo.