Bygga
제품명을 박스에 입력하면 Bygga가 3D로 모든 조립 단계와 부품·스크류·도구를 보여주고 음성으로 안내합니다
암스테르담 지하철 실시간 운행과 지연·출발 시간을 3D 지도에서 확인
Check live waar elke metro in Amsterdam nu rijdt. Live 3D-metrokaart van GVB-lijnen M50, M51, M52, M53 en M54 met vertragingen en vertrektijden per station.
라이프스타일TypeScript · PythonGitHub @raimonvibe온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A 3D, orbitable map of Amsterdam's GVB metro with real trains on real track geometry, in real time.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Live site: amsterdammetro.nl — a 3D, orbitable map of Amsterdam's GVB metro with real trains on real track geometry, in real time.
Built in the spirit of londonunderground.live 🇬🇧 — but for Amsterdam 🇳🇱, with five map styles 🌗 and a full travel-info page 🧭 next to the live map.
A second page at amsterdammetro.nl/reisinfo, loaded only when you open it, so the map stays lean:
scripts/seed-accessibility.sh adds OpenStreetMap's tag as a hint for checking. The data is checked regularly: see docs/step-free-stations.md/reisinfo?station=Noord&van=Noord&naar=Gein), kept only in your browser/, F, P, ?, Esc). Letter keys can be switched off for speech-input users (WCAG 2.1.4)Amsterdam's metro fleet — like London's — publishes no GPS positions. So instead of tracking trains directly, this app derives their position the same way londonunderground.live does for the Underground:
tripUpdates.pb (polled every ~30s) gives live per-station arrival/departure predictions for every active trip
vehiclePositions.pb (every 20s) has no GPS for the metro, but names the stop each train was last reported at or heading toalerts.pb (every 2 min) carries GVB's KV15 service messagesWhy a train sits where it does, and what that does and doesn't claim: docs/position-model.md.
| Layer | Tech |
|---|---|
| Backend | 🐍 FastAPI (Python) — GTFS ingest, realtime poller, position solver |
| Frontend | ⚛️ React + TypeScript + Vite |
| Map & 3D | 🗺️ MapLibre + deck.gl (MapboxOverlay, PathLayer, TripsLayer) |
| Data | 🚏 OVapi / openOV (free, fair use) |
| Tiles | 🌍 OpenFreeMap (Liberty, Bright, Positron, Dark, Fiord) |
| Tests | 🧪 pytest (synthetic GTFS, no network) · Vitest + Testing Library · GitHub Actions |
# Backend (Python 3.12+); on Windows use .venv/Scripts/ instead of .venv/bin/
cd backend
python -m venv .venv && .venv/bin/pip install -r requirements.txt
.venv/bin/python -m uvicorn app.main:app --port 8020
# Frontend
cd frontend
npm install
npm run dev # → http://localhost:5183 (proxies /api to :8020)
Tests (also run on every pull request by GitHub Actions):
cd backend && .venv/bin/pip install -r requirements-dev.txt && .venv/bin/python -m pytest
cd frontend && npm test
Production preview locally (optional):
cd frontend
cp .env.production.example .env.production.local
# edit VITE_API_URL if your backend runs elsewhere
npm run build && npm run preview
Production domain: https://amsterdammetro.nl (API: https://api.amsterdammetro.nl).
| Doc | Contents |
|---|---|
| docs/domain.md | DNS, registrar, env vars |
| docs/render-deploy-plan.md | Render deploy steps |
| docs/translate-proxy.md | Plan: the site through Google Translate's website proxy (all languages) |
| docs/costs-and-specs.md | RAM, bandwidth, pricing |
| docs/legal-compliance.md | Legal / attribution checklist |
| docs/position-model.md | How train positions are derived |
| docs/step-free-stations.md | Step-free station data: the rule, sources, regular checks and log |
| docs/privacy-policy.md | Privacy policy (also at /privacy) |
First backend start downloads the national GTFS zip (~240MB, cached) and extracts the GVB metro subset — a few MB, refreshed daily.
No API keys, no paid services required:
| Item | Cost |
|---|---|
| Transit data (OVapi / NDOV) | Free |
| Map tiles (OpenFreeMap) | Free |
| Small VPS to host backend + frontend | ~€5–10/month |
Full breakdown (RAM, bandwidth, Render tiers): docs/costs-and-specs.md.
Full attribution: docs/attribution.md (also shown in the app sidebar).
MIT — see LICENSE.