惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
F
Full Disclosure
I
InfoQ
Jina AI
Jina AI
GbyAI
GbyAI
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
腾讯CDC
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
B
Blog
A
About on SuperTechFans
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
C
Check Point Blog
J
Java Code Geeks
L
LangChain Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
爱范儿
爱范儿
Recorded Future
Recorded Future
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
IT之家
IT之家
博客园 - 聂微东
量子位
G
Google Developers Blog
Vercel News
Vercel News
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
罗磊的独立博客
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Show HN

CSP Radar GitHub - awebai/aweb-team-coord-worktrees: An aweb team template for a minimum team with a permanent coordinator and worktrees with local developers. GitHub - fujibee/agmsg GitHub - lucastononro/notify: 100% local, free, offline attention skill for Claude Code: plays a sound and speaks a short status update when a long task finishes, blocks, or needs a decision. GitHub - sebastianwessel/skills: AI Skills tivatdoar / workout-to-work · GitLab GitHub - enumura1/py-sql-cleaner: Find, format, and safely extract embedded SQL from Python files. GitHub - intent-bench/intent-bench: Intent fulfillment benchmark for agentic AI engineering GitHub - steveking-gh/firmion: Firmion is DSL and engine for firmware image generation. GitHub - villagesql/villagesql-skills: Agent skills for VillageSQL - gemini-cli-extension; claude-code-plugin GitHub - 0gsd/enough: a personal language system for planning, writing, and translation. GitHub - Kaelio/ktx: ktx is an executable context layer for data and analytics agents 🐙 Allow Claude Code, Codex, and any AI agent to query data accurately through MCP with skills, memory and a semantic layer GitHub - ThatXliner/xtras: Xliner's Claude Code Skills GitHub - flightdeckhq/flightdeck: Observability and control plane for AI agents. GitHub - search-router/simple-search: Open-source reference app on top of the Search Router API: FastAPI + Jinja metasearch service with pluggable backends, deterministic mocks (no API key needed), RTL UI, Redis cache, and a demo ads cabinet. CSP Radar GitHub - Light-Heart-Labs/DreamServer: Turn your PC, Mac, or Linux box into an AI server. LLM inference, chat UI, voice, agents, workflows, RAG, and image generation. GitHub - Diplomat-ai/diplomat-agent-ts: What can your TypeScript AI agent do to the real world? Scan your code. See which tool calls have zero checks Code Block Selector - Visual Studio Marketplace Prometheus dependency graph — interactive showcase | Riftmap Show HN: I made a vi-like modal keyboard plugin for Figma GitHub - run-llama/liteparse: A fast, helpful, and open-source document parser GitHub - dalemyers/Roar: A macOS CLI tool for notifications GitHub - district-solutions/open-agent-tools-coder: Enables small-to-large self-hosted ai models to use local source code when running tool-calling agentic workloads. We actively data mine 20,900+ (2+ TB) popular github repos using large and small ai models to create reuseable: json, markdown and parquet files for local-first tool-calling models. GitHub - progapandist/stripeek: A local TUI proxy for real-time Stripe API debugging, built for navigating complex payloads fast. GitHub - sir1st/hermes-desktop: All-in-one cross-platform desktop app for Hermes Agent — bundles Python + hermes-agent + hermes-web-ui GitHub - astefanutti/shaderbang: Shebang for Shaders Show HN: Generate Claude Code Workflows using Spec Driven Development approach GitHub - nixys/nxs-universal-chart: The Helm chart you can use to install any of your applications into Kubernetes/OpenShift Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code. GitHub - tamerh/enju: Coordinating Humans, AI Agents, and Compute as Peers on a Shared Workflow Graph Show HN: Continuity-auth – Respect-weighted rate limits for the open web GitHub - luml-ai/luml: AI lifecycle platform where engineers and agents track experiments, train models, and ship to production. GitHub - mrdanielcasper/CoreTex: A UNIX-inspired, biomimetic, flat-file AI harness and knowledge engine. GitHub - clemg/pierre-github: Pierre's diffs.com and trees.software for Github GitHub - lyriks-io/unspaghettit: Behavior-driven AI development without prompt spaghetti. GitHub - sofumel/claude-handoff-revive: Resume Claude Code work after rate/usage/context limits without replaying the prior transcript. Auto-saves at 90%/95% usage. Plugin-installable, 10 languages. GitHub - dotexorg/saferpc: Typed, end-to-end encrypted RPC over any bidirectional channel. GitHub - BeeZeeAgent/beezee: Agent harness orchestration Legato Next.js Boilerplate for Internal Tools · CoreUI GitHub - clark-labs-inc/clark-hash: Clark Hash, 32x smaller searchable sketches for embeddings GitHub - ZeroPointRepo/youtube-mcp: The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free. Typing Mastery — climb toward 100+ WPM, deliberately GitHub - Andebugulin/Awareen GitHub - fayzan123/claude-workflow-composer: Visual desktop app for composing multi-agent coding workflows. Drag agents, attach skills and MCPs, wire handoffs, export to .claude/ GitHub - StackOneHQ/stack-nudge We hardened an LLM agent. Each defense we added made it more exploitable. GitHub - alkait/WhatsKept: Agent-queryable WhatsApp history from an iOS backup — a single Go binary. GitHub - octelium/cordium: Open-source, general-purpose sandbox platform for devs and AI agents that provides identity-based secure access to infrastructure without credentials. GitHub - scosman/videowright: Build animated explainer videos with your coding agent GitHub - dipankar/dscode: The code editor you can take apart. GitHub - zoharbabin/web-researcher-mcp: MCP server (Go) for AI assistants: web search, content extraction, academic/patent/news research. Multi-provider routing, 4-tier scraping, search lenses. Works with Claude, Cursor, and any MCP client. GitHub - scanaislop/aislop: Catch the slop AI coding agents leave in your code: narrative comments, swallowed exceptions, as-any casts, dead code, oversized functions. 50+ rules across 7 languages (TypeScript, JavaScript, Python, Go, Rust, Ruby, PHP). Sub-second, deterministic, no LLM at runtime. MIT-licensed. GitHub - kouhxp/cheap-im: CPU-only voice agent approximating Thinking Machines' Interaction Models demo GitHub - unprovable/OrchidMantis: Orchid Mantis — standalone framework for Zero-Knowledge Proofs of eXploit (ZKPoX). GitHub - TangibleResearch/Halgorithem: A Algo designed to detect AI Hallucitions GitHub - CarpseDeam/Aura-IDE: An AI coding harness that shaped itself - Planner/Worker agents, repo awareness, surgical edits, validation, recovery, and safe diff approvals. GitHub - chojs23/concord: A feature-rich TUI client for Discord GitHub - aerf-spec/aerf: Agent Evidence Receipt Format (AERF) — an open specification for tamper-evident, independently verifiable records of AI agent actions. GitHub - Jwrede/tokentoll: Catch LLM cost changes in code review. Infracost for LLM spend. GitHub - samchon/ttsc: A `typescript-go` toolchain for compiler-powered plugins and type-safe execution + 500x faster lint integrated into compiler GitHub - Higangssh/homebutler: 🏠 Manage your homelab from chat. Single binary, zero dependencies. GitHub - olalie/tapmap: See where your computer connects and what stands out on a live world map. GitHub - Diplomat-ai/diplomat-agent: What can your AI agent do to the real world? Scan your code. See which tool calls have zero checks GitHub - Bajusz15/beacon: Open-source agent for secure remote access, monitoring, and deploys across home-lab and self-hosted machines like Raspberry Pi, N100, or any Linux server. Open web based TTY or tunnel Home Assistant and other local services securely without opening ports. BigTech AI News - Chrome 应用商店 GitHub - vinhnx/VTCode: VT Code is an open-source coding agent with LLM-native code understanding and robust shell safety. Supports multiple LLM providers with automatic failover and efficient context management. GitHub - Lumen-Labs/brainapi2: BrainAPI is a knowledge graph–powered AI memory layer that transforms unstructured data into structured knowledge, enabling intelligent search, recommendations, and contextual memory for AI agents and applications. GitHub - familiar-software/familiar: Let AI watch you work. Familiar lets your AI update its memory, skills, and knowledge by watching your screen. make sidebar/address bar rounded corner toggleable
GitHub - filippofinke/swissreach: 🚆 Open-source isochrone maps for Swiss public transport
filippofinke · 2026-06-23 · via Show HN

Deploy License: MIT GitHub Pages

SwissReach is an open-source reachability map for Swiss public transport, with a UI styled after the SBB Mobile app. It answers a simple question: how far can you get by public transport from a station in a given amount of time? All routing happens entirely in your browser — there is no backend. The transit timetable for a day is loaded into memory and queried in real time with the RAPTOR algorithm via minotor.

I built this while relocating — I wanted to pick a new place to live based not just on the location itself, but on where I could actually get to by public transport from it. Searching one connection at a time on SBB Mobile didn't scale, so this map shows every reachable station at once for a given commute budget.

The interface follows the look & feel of SBB Mobile (red top bar, white rounded cards, segmented pill toggles, SBB-style product badges) and uses the official SBB Lyne design tokens. This is an independent homage and is not affiliated with or endorsed by SBB.

Features

  • Origin search — station-name autocomplete (accent-aware).
  • Auto-locate — on first load (no origin in the URL) the app asks for the browser location and centers the isochrone on the nearest station if you're in Switzerland.
  • Journey details — click any reachable station to see the full itinerary (which trains/buses to board, where to change, at what times). The same panel offers a "use as origin" shortcut.
  • Click empty map — re-center the isochrone on the nearest station.
  • Departure time and date selectors — bounded to the available timetable window.
  • Transport-mode filter — train, bus, tram, subway, ferry, cable car, funicular, trolleybus, monorail, aerial lift.
  • Sliders — max travel time (15–300 min) and max number of changes (0–8).
  • Colour by travel time or number of changes.
  • H3 hexagon surface — adjustable resolution (5–9).
  • i18n — UI available in DE / EN / FR / IT / RM (Romansh), auto-detected from the browser.
  • Shareable URLs — every control is encoded in the query string, with a one-click "copy link" button.
  • Fast — a full-network isochrone computes in a few milliseconds in a Web Worker.

How it works

GTFS feed ──(Node, build time)──▶ minotor protobuf binaries ──▶ browser
  stops.txt / stop_times.txt        timetable.bin (timetable)      │
  trips.txt / routes.txt            stops.bin     (stops index)    ▼
  calendar.txt                                              Web Worker
                                                          ┌───────────────┐
                                                          │  minotor      │
   UI controls ──▶ IsochroneParams ──────────────────────▶│  Range-RAPTOR │
                                                          │  full network │
   H3 hexagons ◀── reachable stations ◀───────────────────┴───────────────┘
                 │
                 ▼
            MapLibre GL
  • minotor (MIT, by Aubry Cholleton) — client-side RAPTOR router. Parses GTFS into a compact protobuf format and computes the earliest arrival to every reachable stop in one pass.
  • MapLibre GL JS (via react-map-gl) — renders the map and the isochrone surface.
  • h3-js — bins reachable stations into hexagons.
  • React 19 + Vite — UI shell and build tooling.
  • @sbb-esta/lyne-react — official SBB Lyne web components.

Routing runs in a Web Worker (src/worker/router.worker.ts) so the UI stays responsive. Changing a visual option (colour metric, hexagon resolution) re-renders instantly from the cached result; changing a routing option (origin, time, modes, limits) triggers a fresh RAPTOR query.

Prerequisites

  • Node >=24.11 (minotor's GTFS parser requires it).
  • npm (bundled with Node).

Getting Started

1. Clone the repository

git clone https://github.com/filippofinke/swissreach.git
cd swissreach

2. Install dependencies

3. Generate transit data

The app needs public/data/stops.bin, one or more content-hashed timetable_<hash>.bin files (one per unique service day), and a meta.json index. They are committed so the app runs out of the box, but can be regenerated at any time:

npm run data      # build the sample network (offline, ~347 stations)

4. Run the dev server

npm run dev       # http://localhost:5173

5. Build a static site

npm run build     # outputs to dist/
npm run preview

Transit data

Sample network (default, offline)

scripts/swiss-network.ts defines a synthetic-but-realistic, multimodal model of the Swiss network: ~347 stations across every region, connected by ~169 lines covering 8 transport modes — IC/IR/S-Bahn trains, city trams (Zürich, Bern, Basel, Genève) and the Lausanne metro, trolleybuses, PostBus/regional buses into the villages, lake ferries (Lucerne, Geneva, Zürich, Thun/Brienz, Constance) and mountain cable cars / funiculars (Rigi, Pilatus, Gornergrat, Schilthorn, Titlis, …). Travel times are derived from the great-circle distance between consecutive stops and a per-mode speed.

npm run data:sample   # build tmp-gtfs/sample-gtfs.zip from the network model
npm run data:build    # parse it into public/data/*.bin + meta.json
npm run data          # both of the above

Real Swiss GTFS feed (every stop in the country)

To load the real national timetable from opentransportdata.swiss — ~100,000 stops, including every bus stop, tram stop and ferry pier:

npm run data:real                  # download + build today only
DAYS=14 npm run data:real          # ...a 14-day rolling window
npm run data:real -- 2026-07-01    # ...starting from a specific day
npm run data:real:parallel         # build the window with a worker pool
npm run dev                        # now search any stop in Switzerland

Options (env vars): DAYS=<n> sets the planning window length (default 1; the GitHub Actions deploy sets 14), WORKERS=<n> sizes the parallel worker pool, FRESH=1 forces a re-download, GTFS_URL=<url> overrides the source, DEFAULT_ORIGIN=<sourceId> / FEED_NAME=<name> customise meta.json.

Planning ahead (multi-day window)

The build produces one timetable per day for a rolling window (configurable via DAYS), so trips on any day in the window route against that day's holiday-aware schedule. Identical days are deduplicated by content hash, and the browser lazy-loads only the day you pick (initial load is ~5 MB on the real feed). meta.json lists the available dates and maps each to its timetable_<hash>.bin file.

URL parameters

Param Example Meaning
origin Parent8507000 Origin station source id (Bern)
date 2026-06-14 Service date
dep 08:00 Departure time
max 120 Max travel time (minutes)
transfers 5 Max number of changes
modes RAIL,BUS,TRAM Allowed transport modes (omitted = all)
metric time/transfers Colour scale
res 7 H3 hexagon resolution (5–9)

Project layout

scripts/
  swiss-network.ts          # the sample network model (stations + lines)
  make-sample-gtfs.ts       # network model  -> GTFS zip
  build-data.ts             # GTFS zip       -> minotor *.bin + meta.json
  build-data-parallel.ts    # ...same, with a worker pool over service days
  build-day-worker.ts       # per-day build worker (used by the parallel builds)
  build-real.ts             # one-shot: download real feed + build it
  build-real-parallel.ts    # ...same, with a worker pool over service days
  fetch-swiss-gtfs.ts       # download the real Swiss GTFS feed
src/
  App.tsx                   # top-level composition, cross-cutting state
  main.tsx                  # React entry point
  worker/router.worker.ts   # loads timetable, runs Range-RAPTOR isochrones
  router-client.ts          # promise-based main-thread worker client
  components/               # React components (Sidebar, MapView, JourneyPanel,
                            #   Surface, Stations, Legend, AboutDialog, ...)
  hooks/                    # useAppState, useRouterClient, useIsochrone,
                            #   useJourney, useGeolocation
  map/
    hexagons.ts             # H3 binning -> GeoJSON
    colors.ts               # colour scales + legend
    backgrounds.ts          # MapLibre basemap style
  state/
    state.ts                # URL <-> AppState
    types.ts                # AppState, IsochronePoint, Meta, RouteType, ...
  i18n/                     # I18nProvider + DE / EN / FR / IT / RM dictionaries
  styles.css                # global styles
public/data/                # generated timetable_<hash>.bin / stops.bin / meta.json

Deployment

A GitHub Actions workflow (.github/workflows/deploy.yml) builds the site and publishes it to GitHub Pages on every push to main and on manual dispatch.

A full year of timetables is committed under public/data/, so the deploy serves up-to-date data without a recurring rebuild. The workflow still attempts to (re)build the real Swiss GTFS feed at deploy time and falls back to the bundled sample data if the feed is unavailable, so a deploy never breaks. If the feed ever needs a custom URL or token, set a GTFS_URL repository secret.

Enable Pages → "GitHub Actions" in the repository settings.

Credits

  • minotor by Aubry Cholleton — the client-side RAPTOR routing engine this app is built on.
  • Timetable data: the Swiss GTFS feed on opentransportdata.swiss.
  • Basemap: © OpenStreetMap contributors, © CARTO (Carto Light tiles).

License

This project is licensed under the MIT License. See LICENSE for details.

Author

👤 Filippo Finke

Show your support

Give a ⭐️ if this project helped you!

Buy Me A McFlurry