Privacy first · Trusted by employees

Make finding a velo spot easy.

Live counts for every bike parking area on the Endress+Hauser Reinach campus — before you even leave your desk.

Learn how →
Three ways to use it

From a quick browser check to a bike you track

Everything works without an account. Signing in only adds the things an account enables.

Just the info

Open the page, see every stand’s live occupancy. No account, no install, nothing to configure.

Remembers your bike

Install the app on iOS or Android. A small iBeacon on every stand pings your phone, and when you leave campus the app pins down exactly which rack your bike is on — all on-device, no account, nothing uploaded.

Rank up

Sign in and the app starts counting. Days by bike. Kilometres on your bike and e-bike. Earn badges for every three days in a row, every ride under −10°C — more to come.

The thing on the stand

LiDAR or on-device YOLO, on an ESP32

A small node on each bike stand. Each one counts on the board and sends a single number.

  • 01M5Stack AtomS3 (ESP32-S3) counts the bikes on the device
  • 02LiDAR — an RPLidar C1 sweeps the row by depth, day or night
  • 03Camera — an AtomS3R-CAM runs YOLO11n locally; the frame stays in RAM
  • 04Reports the count over LoRaWAN — no site Wi-Fi needed, reaches a gateway hundreds of metres away
  • 05Runs on a battery charged by a small solar panel — no mains, no cabling, mount it anywhere
Under the hood

Sensors on bike stands → the cloud → every open client

A classic edge-to-cloud fan-out. Nothing exotic, nothing proprietary.

01 · EDGEESP32 nodeson bike standsLORAWAN02 · INGRESSLoRaWAN gateway868 MHz · AES-128HTTPS03 · COMPUTEAzure FunctionsNode 22 · /v1/readings04 · STATE & FANOUTCosmos DB+ Web PubSub · 10 sWebSocket05 · CLIENTSWeb · iOS · Androidevery open viewer

Devices send their count over LoRaWAN — battery- or solar-powered, no site Wi-Fi, no cabling. A gateway relays the uplinks over HTTPS to the backend. Cosmos DB keeps the stand catalog, the latest count per device and 30 days of readings. Web PubSub pushes every stand’s status to open clients every 10 seconds. See architecture.md for details.

Privacy by design

No faces, no plates, no tracking — not even yours

On the device Counting on the board

LiDAR measures depth, not light. The cameras run YOLO on the board and keep the frame in RAM. Only one integer — how many bikes the device sees — is sent as a reading.

In the cloud Counts only

The readings API accepts counts and rejects unknown fields. Cosmos DB holds the stand catalog, counts and timestamps — no images, no people, no bike identities. A camera’s last frame can go to the team’s debug viewer, held in memory only and never stored.

The challenge is explicit: no identifying individuals. We go further.
Roadmap

What ships today — and what’s next

The hackathon build already covers the whole live-counts path end to end. The next version turns the single “Rank up” card into a proper home for every rider.

Shipping now · v1

Working today

  • Live stand counts. Every area on the campus, updated every few seconds over LoRaWAN + the backend WebSocket.
  • 3D campus map. One coloured pin per area, free count in a badge, glides between stands when you tap one.
  • No account, no install. The web app at app.slotinvaders.ch works for anyone with a browser.
  • Native Android and native iOS. Same Capacitor build wrapped for both platforms.
  • Remembers your bike. One tiny iBeacon per stand, all-local matching, nothing uploaded.
  • Privacy by design. Only the integer count leaves the sensor — no images, no identities, no tracking.
Next version

Coming next

  • Personalisation. Save your home stand, hide the ones you never use, pin your favourites to the top of the list.
  • Pick your preferred spot. Mark a specific bay you aim for, and the map tells you whether it’s free before you set off.
  • Gamification. Deeper streaks, team challenges, friendly leaderboards for the Reinach campus, seasonal badges.
  • Analytics. Your weekly km, days-by-bike history, best times of day to find a slot — and a team view for departments that want it.
  • More sensors, more stands. The architecture is already multi-site; adding a new stand is one YAML entry and a sync.
Hands on

Try it out yourself

The app is up and running. Open it in your browser, or sideload the APK on your Android phone — the live counts on this page come from the same backend.

App Store and Play Store coming soon — we did submit the builds, but they haven’t been approved in time 🙃

The team

The Booligans

Seven people, 48 hours, one working stack.

Dobrawa Kiefer
Nila Mönig
Artur Semenenko
Luca Rullo
Samuel Rink
Valentino Rusconi
David Übelacker