About the demo
A pigeon-shaped learning lab
A playful real-time map with a serious purpose: learning the Erlang and Elixir ecosystem by building something alive enough to be interesting.
GSD Tracker is a live map of simulated “Government Surveillance Drone” pigeons moving around Berlin. The joke is an homage to Birds Aren’t Real, but the app is a place to learn the Erlang/Elixir ecosystem by building a recognizable, stateful, real-time application from end to end.
It is an experiment in getting comfortable with the tools rather than a claim to model real birds. A deliberately silly subject keeps the work approachable while the system is substantial enough to expose real engineering questions: what happens when a map, a database, background processes, and many browsers all change together?
What it explores
- Erlang/OTP: supervised processes, message passing, fault isolation, and long-running simulation work.
- Phoenix and LiveView: server-rendered, real-time UI updates without turning every interaction into a bespoke browser-to-server event handler.
- Ash, Ecto, and Postgres/PostGIS: resource modelling, persistence, and geographic data.
- PubSub and phx_maplibre: map commands and interactions travel as messages, so any BEAM process can drive the interface.
- Performance: a flock of thousands of units helps reveal where scheduling, data volume, rendering, database work, and browser updates begin to matter.
Why the pigeons vary
The simulation intentionally fluctuates rather than following a fixed quota: most pigeons are active during the day, some take short charging or maintenance breaks, and a small probabilistic fraction remains active at night. Couples are linked on the map, so selecting one highlights its partner.