We are preparing a routing algorithm for public transit with the following key characterstics (as they are commonly defined in the respective research field):
- Dynamic: the cost function ( = travel time) varies over time, which is the case for scheduled public transit
- Stochastic: the cost function ( = travel time) is not a deterministic prediction of the actual travel time, but a probability distribution
- Online: The algorithm does not return a final output upfront, instead it iterates en route, while the user is actually traveling, incorporating updated real time information to yield the best routing that is currently archievable
Demo instances of the extended departure display and some more information (in German language) can be found on our website at dystonse.org.
The old prototype of the Dystonse website is still online at dystonse.org/legacy, but not working without connection to the backend - if the server was available, you could test the search algorithm and read about the background of this project's early days there.
In March 2020, we started our development blog at blog.dystonse.org.
This repository does not contain code, but we track our development and share some notes in the project-status folder.
We have started to collect real time data. Current colletion status:
Provider | Status |
---|---|
Verkehrsverbund Bremen/Niedersachsen | |
Verkehrsverbund Rhein-Neckar |
This repository serves only as an overview for other repositories, where the actual development takes place:
- dystonse-gtfs-data A collection of tools to work with the gtfs schedule data and gtfs-realtime data that we're collecting from the public transport providers listed above. Used for importing data into a database, and creating statistical analyses. This is where most of our work was happeninmg in early summer of 2020. (partly working, more features being developed)
- dystonse-curves A rust crate for storage and manipulation of probability curves. (development in very early stage)
- dystonse-docker A docker-compose setup for our whole stack (so far: data collection, automated import into database, config and admin tools for the database, analyses of the collected data, 'monitor' website using the results in a trip planning tool), containing the public parts of the config we actually use for our ongoing data collection, and slightly redacted examples of the non-public parts to show how the whole setup would be used by anyone. (working, currently maintained to fit whenever we make any changes to our deployment)
- dystonse-landingpage A website with an overview of our projects from summer 2020
- dystonse-website The first prototype of the Dystonse website from 2019, which features both a GUI to perform searches and a lot of background information about the project (currently not maintained while we're working on the new backend)
- dystonse-search-node The first implementation of the Dystonse search algorithm. It actually works and serves as backend for the website. Development will be discontinued in favor of a clean implementation in Rust. (not maintained any more)
- dystonse-search-rust This will be the home of the reimplementation of the Dystonse search algorithm. (no content yet)
- dystonse-tools Various tools that are somehow useful for our project, but not the main focus of our development.
- Agencies tool A tool for gathering and organizing information about German transit agencies. (working)
- Some Java-based tools from 2017. Development paused / discontinued.
You can follow @dystonse on Twitter to stay up to date or get in touch.