Transit
Contents
- C
- C++
- GTFS Analysis Tools
- C#
- Go
- Java
- JavaScript
- PostgreSQL
- Python
- R
- Ruby
- Rust
- GTFS Converters
- GTFS Data Collection and Maintenance Tools
- GTFS Merge Tools
- GTFS Timetable Publishing Tools
- GTFS Validators
- GTFS Realtime Libraries & Demo Apps
- GTFS Realtime (and Other Real-time API) Archival Tools
- SIRI
- GTFS Realtime Convertors
- GTFS Realtime Utilities
- Other multimodal data formats
- Pilot or development stage
- Software for Creating APIs
Production
LLaMA model in C/C++
The project that made llama.cpp possible
A Gradio web UI for training, sharing and playing with LLM models
Interact with your documents using the power of LLMs and knowledge graphs, it doesn't use any internet connection.
A chatbot fine-tuned from GPT-2
An open platform for training, serving, and evaluating large language models. Release we run, and RAG
A small, but powerful, open source language and vision model from Microsoft
Mistral AI's open-source models
Open-source chatbot trained by fine-tuning LLaMA on user-shared conversations
The AI-powered Metaverse platform for all
Official repo for Llama 3
Official repo for Gemma
The RedPajama-Data datasets.
Open LLM Leaderboard
Open Assistant is a project aiming to create the best possible open source chat bot
OpenAI GPT-2
The official Python library for the OpenAI API
A benchmark for LLM performance
The official Anthropic SDK for Python
Google API Client Library for Python
Google Generative AI Python SDK
Official repo for Stability AI's generative models
High-Resolution Image Synthesis with Latent Diffusion Models
Diffusers: State-of-the-art diffusion models for various tasks
Latent Diffusion Models
Controlling Diffusion Models in a way that is intuitive to human perception
Official implementation of ControlNet v1.1
Low-Rank Adaptation for efficient large language model fine-tuning
Parameter-Efficient Fine-Tuning library for Transformers
Stanford Alpaca fine-tuned with LoRA
LoRA finetune for various models
The Segment Anything Model (SAM)
Trace Attention: A new method for interpreting transformer models
Robust Speech Recognition via Patterns of Speech
Port of OpenAI's Whisper model to C/C++
Build and run local LLMs using a simple GUI
Build, share, and test your LLM app
Building applications with LLMs through composability
LLM framework for data connection and agent creation
Personal notes on research
Megatron-LM is a library for efficient, large-scale transformer training
State-of-the-art Machine Learning for Transformers
Combining Megatron-LM and DeepSpeed for efficient large-scale training
A large-scale GPT-3 model training project
Ray is an open source framework that provides a simple, universal API for building distributed applications.
A fast and easy-to-use library for LLM inference and serving
Audio Diffusion Models
Kandinsky 2.0 in C/C++
Audio2Face: Generating realistic faces from audio
Nvidia's rasterization library for deep learning
Google Colaboratory tools
Tensors and Dynamic neural networks in Python with strong GPU acceleration
TensorFlow is an open source machine learning framework for everyone
Super-Resolution models and implementations
Enhanced Super-Resolution Generative Adversarial Networks
Dataset for Super-Resolution
Detectron2 is FAIR's research platform for object detection and segmentation
YOLOv5 in PyTorch > Python > Models > Detect
Reformer: The Efficient Transformer
Accelerate simplifies training and sharing of large PyTorch models.
Denoising Diffusion Probabilistic Models in Pytorch
Official PyTorch implementation of StyleGAN3
Official PyTorch implementation of StyleGAN2
PyTorch3D is a library that includes modern multi-view 3D reasoning with software in PyTorch.
Canny edge detection in PyTorch
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
CLIP: Contrastive Language-Image Pre-training
Taming Transformers for High-Resolution Image Synthesis
Fast Stable Diffusion inference
Optimum: Transformers optimized for inference and deployment
NVIDIA TensorRT: Faster deep learning inference
P
A guidance language for controlling large language models.
A framework that enables developers to build LLM applications using multiple agents.
A deep learning optimization library that makes distributed training easy and efficient.
A high-performance inference engine for machine learning models.
A collection of datasets for training and evaluating AI systems.
A set of tools for developing and deploying AI models.
A framework for evaluating and comparing LLM prompts.
A PyTorch library for building and training large-scale neural networks.
A unified framework for pre-training and fine-tuning language models.
An API for accessing and manipulating large datasets for AI training.
A personal AI assistant that can perform various tasks using natural language commands.
A framework for automatically distilling knowledge from large foundation models to smaller, specialized models.
An open-source platform for managing and orchestrating AI workloads on clusters.
A library for accelerating Transformer models.
An open-source SDK for integrating AI large language models into traditional and modern applications.
A pre-configured virtual machine with popular data science and machine learning tools.
A PyTorch-based, lightweight, and extensible pre-training framework for vision transformers.
An open-source framework for building AI assistants that can communicate and collaborate with each other.
Tools and extensions for developing with Microsoft Power Platform.
Develop AI-powered applications with confidence using strongly-typed prompts.
Tools to help you understand, debug, and mitigate issues in your AI models.
Producing Data
Comprehensive guides to GTFS and GTFS Realtime. These books were written by Quentin Zervaas, and have been donated to MobilityData and made open access.
An interactive tutorial created by MBTA for GTFS static. A stand-alone Docker image is available on GitHub as well as a hosted/no-install version of the Jupyter notebook.
C
C library for reading static GTFS feeds. Supports reading unpacked feeds into application memory or into SQLite databases.
RRRR (usually pronounced R4) is a C-language implementation of the RAPTOR public transit routing algorithm.
GTFS Analysis Tools
Tools for working with public transit data in ArcGIS
A Python 3.6+ tool kit for analyzing General Transit Feed Specification (GTFS) data. Supersedes GTFSTK.
A Python library to support transit service analysis.
An R package to read GTFS data into tibbles and simple features dataframes to map transit stops and routes, calculate travel times and transit frequencies, and validate transit feeds.
A set of convenient tools for editing and analysing transit feeds in GTFS format in R.
A Python library for converting transit data into a directed graph for network analysis.
A Java-based routing engine developed by Conveyal for multimodal (transit/bike/walk/car) networks. It currently plans many trips over a time window for scenario planning and analytics purposes. A related R wrapper package (r5r) is developed independently by IPEA. See also the performance comparison from Higgins et al. (2022), linked below.
An R package for constructing and modelling a transit network in real time to obtain vehicle ETAs
A simple project for measuring transit intensity written in Go.
Inference of probabilistic schedules from empirical data about transit vehicles.
Creates stringline charts showing all vehicles on a transit route from GTFS data.
Analyse, monitor and maintain GTFS data (Example instances).
JavaScript
Node.js library modeling the static GTFS using sequelize.js.
Utilities to process GTFS data sets (e.g., "flattening" calendar.txt & calendar_dates.txt, computing arrival/departure times of trips).
Loads transit data from GTFS files, unzips it and stores it to a SQLite database. Provides some methods to query for agencies, routes, stops and times.
PostgreSQL
Python
Python library for converting GTFS files into a relational database.
Python package with useful functions to create geo-spatial visualizations from GTFS feeds.
Python package that represents GTFS data for buses in a concise tabular manner using segments.
An open source library in python for reading GTFS files and computing various stats and indicators about Public Transport networks.
Repository-like tool in Python to manage and update a huge number of GTFS feeds.
Public transport network analysis and travel time computations using Python3. Compatible with Postgres/PostGIS, Oracle, MySQL, and SQLite. Used by gtfspy-webviz.
A Python library to make GTFS feeds from basic route information.
A Python GTFS library that supports reading individual GTFS tables, or constructing a graph to represent each agency in a feed.
A Django application to import and export GTFS.
A fast, forgiving Python GTFS reader built on pandas DataFrames.
TransitGPT is a Generative AI-powered chatbot that enables transit enthusiasts to access and analyze General Transit Feed Specification (GTFS) data through natural language instructions.
R
GTFS Converters
Command-line tool to extract pathways as GeoJSON from a GTFS dataset.
Command-line tool to extract shapes as GeoJSON from a GTFS dataset.
A Java tool for synchronizing data in GTFS format with OpenStreetMap.org.
The GTFS-PARSER library is a library to allow javascript to parse gtfs and create geojson on client or server.
Compute a transit service area from static GTFS. Results are output as single-layer .geojson files. Dockerized version of gtfs-to-geojson.
A Python script to generate a single geoJSON shape for each transit route in a GTFS archive.
Javascript tool that converts transit data in GTFS shapes and stops into geoJSON. This is useful for creating maps of transit routes.
An R package that converts public transportation data in GTFS format to GPS-like records in a data.table, where each row represents the timestamp of each vehicle at a given spatial resolution.
An R package to estimate the emission levels of public transport vehicles based on General Transit Feed Specification (GTFS) data.
general transit (GTFS) simple (geographic) features (sf) in R. can be used to convert from GTFS to Shapefile, GeoJSON, and other formats through GDAL.
A Javascript tool to generate GTFS dumps from HAFAS endpoints.
Hafas2GTFS converter written in Python, optimized for SBB HAFAS feeds.
Javascript tool to convert polylines from a KML file into a GTFS shapes.txt file. Hosted on GitHub here.
Converts NeTEX datasets into GTFS datasets. The input NeTEx datasets are required to follow the Nordic NeTEx Profile.
A simple tool to extract GTFS feed from OpenStreetMap.
Converts French-Transmodel, SIRI, NETeX, HAFAS, HASTUS, VDV452, and more.
A Java tool to create a Barefoot mapfile from a GTFS file.
A Java library for working with transit data in the VDV format, including converting VDV-452 schedule data into GTFS.
Turn OpenStreetMap data and schedule information into GTFS.
A Rust library to convert to/from the following formats: GTFS, NTFS (for Navitia, see Software for Creating APIs), TransXChange (UK specification), KV1 (NL specification), NeTEx (EU specification).
Python application that attempts to assign GTFS stopids to TransLoc IDs using TransLoc's API (TransLoc doesn't provide GTFS stopids in their API).
Imports and syncs (Transmodel) BISON Koppelvlak1, IFF (a format written by HP/EDS, somewhat similiar to ATCO CIF) to import timetables of the railway networks. The internal pseudo-NETeX datastructure allows to export to GTFS and there are proof-of-concepts to export to other formats such as NETeX, GTFS and IFF.
TransXChange to GTFS converter written in Objective-C.
R package that converts UK format TransXchange (bus, metro, tram, ferry) and CIF (rail) timetables to GTFS.
GTFS Data Collection and Maintenance Tools
Python script that generates missing shapes.txt for GTFS using routing from Google Maps Directions API or OSRM.
A Python tool to convert GTFS blocks, defined by setting trip.block_id into a series of trip-to-trip transfers (proposal).
A (self-hosted) web-based GTFS editing framework. (Note: this project has been deprecated in favor of IBI Data Tools).
Quickly set up the GTFS editor (above) using Vagrant
A (self-hosted) browser-based user interface for creating, editing, exporting static GTFS (see related post).
An open source web and mobile application for collecting transit data. Use it to create GTFS feeds, capture passenger counts or generate GIS datasets.
A web application that handles GTFS editing, validating, quality checking, and deploying to OpenTripPlanner. (Combines and builds upon the functionality of the deprecated
Server for IBI's GTFS data management platform.
A tool to quickly setup and run a local instance of the above IBI Data Tools project.
Precise map-matching for GTFS using OpenStreetMap data
Python tool that fits GTFS shape files and stops to a given OSM map file. Uses pymapmatch for the matching.
UI tool to help build the internal structure of stations (including pathways.txt)
A command-line tool that reads GTFS stop names out loud using Text-to-Speech to determine which need Text-to-Speech values for ttsstopname in stops.txt.
Aggregates and enhances carpooling-offers and publishes them as GTFS(-RT)
Back-end for Nplan, a simple timetable editor.
and GTFS Editor.
GTFS Merge Tools
GTFS Timetable Publishing Tools
An open source Python 3.10 module and scripts depending on GTFS Kit, designed to create complex printed/PDF timetables with flexible layouts. Currently only working out of the box for Amtrak's GTFS, but under active development.
A web publishing system developed by TriMet that allows a transit agency to examine, modify, and transform raw scheduling data into easy-to-read timetables for customer information purposes
GTFS Validators
A Java-based GTFS validator based on the OneBusAway GTFS Modules, runs in Java and is faster than the Google provided one.
Conveyal's successor to their own gtfs-validator, a Java-based library for loading and saving GTFS feeds of arbitrary size with disk-backed storage.
A Data Package specification with validation accomplished with Good Tables. Includes a data package, schemas, tests, and uses South East Queensland GTFS data as an example.
A Go-based tool to tidy and validate GTFS feeds.
A tool for checking, sanitizing, and minimizing GTFS feeds. Fork of gtfstidy, with some additional fixes that haven't been merged upstream yet.
This Python package is a thin wrapper around MobilityData/gtfs-validator that handles intermediate files produced and finds gtfs-validator's output file so it can be given a specific name or returned as a string.
An open-source GTFS validator implemented in Java licensed under GPLv3 maintained by Mecatran.
A open-source GTFS validator canonically following the GTFS spec implemented in Java licensed under Apache v2.0 maintained by MobilityData.
A Python tool that validators GTFS-Fares-v2 data based on the draft specification.
An open-source validator implemented in Rust. Used by the French National Access Point.
Validates the presence of accessiblity-related fields and files in a GTFS file. Can be a command line tool or node.js package.
GTFS Realtime Libraries & Demo Apps
GTFS Realtime (and Other Real-time API) Archival Tools
SIRI
A Java-based command-line utility to convert from the SIRI format to GTFS-realtime.
Java classes generated from the v1.0 and v1.3 SIRI schemas.
Automatically generated documentation from the (incredibly well) annotated SIRI 2.0 Schema Definition.
Java-based tool to convert King County Metro's Legacy AVL format to SIRI.
An open-source Android library for interacting with the RESTful SIRI interface for real-time transit data, such as that currently being used by the MTA Bus Time API.
Android-compatible Plain Old Java Objects (POJOSs) used for data binding (deserliazing XML/JSON) responses for SIRI v1.3 APIs. Used by the SIRI REST Client.
Simple validator for SIRI 2.0 written in Python 3.
A golang server for real-time public transport data exchange, using the SIRI protocol.
GTFS Realtime Convertors
GTFS Realtime Utilities
Web app to inspect & analyze any (CORS-enabled) GTFS Realtime feed. Open-source on GitHub
Analyse, monitor and maintain GTFS Realtime data. Example instances
Other multimodal data formats
Functions to interface with GBFS feeds in R, allowing users to save and accumulate tidy .rds datasets for specified cities/bikeshare programs.
Mobility Data Specification: A format to implement realtime data sharing, measurement and regulation for municipalities and mobility as a service providers. It is meant to ensure that governments have the ability to enforce, evaluate and manage providers. Maintained by the Open Mobility Foundation.
Transport Operator Mobility-as-a-service Provider API: API standard for use by transport operators and mobility-as-a-service providers for operator discovery, trip planning, end user interaction, booking, and payment.
Pilot or development stage
A specification for curb regulations.
A GTFS-based travel demand data format focusing on individual passenger demand suitable for dynamic network modeling developed by San Francisco County Transportation Authority, LMZ LLC, and UrbanLabs LLC.
(Under development - see this post) Data for individual passenger trajectories.
A GTFS-based transit network format for vehicle and capacity data suitable for dynamic transit modeling developed by Puget Sound Regional Council, UrbanLabs LLC, LMZ LLC, and San Francisco County Transportation Authority.
An open, fixed-route transit ridership data standard developed through a partnership between the Oregon Department of Transportation and Oregon State University.
An extension to a GTFS transit network with additional files that contain performance data developed by UrbanLabs LLC and San Francisco County Transportation Authority.
General Modeling Network Specification: A format for sharing routable road network files designed to be used in multi-modal static and dynamic transportation planning and operations models. Volpe/FHWA partnership with Zephyr Foundation.
interface for exchanging information between a travel information system and a sharing system (carshare, bikeshare).
Managed and Tolled Lanes Feed Specification: Proposal for a schema that comprise the Managed and Tolled Lanes Tolling Feed Specification (MTLFS) and defines the fields used in all of those files developed by Santa Clara Valley Transportation Authority.
A set of open documents and test suite that defines a MaaS-compatible API.
A structured collection of two-dimensional array objects and associated metadata, for possible use in the transportation modeling industry.
Open Journey Planner.
Open Sales and Distribution Model: Aims to substantially simplify the booking process for customers of rail trips and to lower complexity and distribution costs for distributors and railway carriers. Contains a specification of an offline model and on-line API. Maintained by the International Union of Railways (UIC).
A specification for right-of-way (ROW) for a SharedStreets Reference.
Transit ITS Data Exchange Specification (TIDES) is a proposed effort to create standard data structures, APIs, and data management tools for historical transit ITS data including AVL, APC and AFC Data.
Prism is a tool to extract public transport data from OpenStreetMap.
Open Street Map Public Transport Parser
Software for Creating APIs
Open source routing engine for OpenStreetMap. Use it as Java library or server.
A web server, written in Rust that uses PostGIS as a backend to serve GTFS data via a HTTP endpoint
Expose a HAFAS endpoint as a REST API.
Multi Objective Travel Information System, written in C++ and Java. Can consume schedule timetables in the GTFS or HAFAS format as well as real time information in the GTFS-RT (and RISML, a propriatary format at Deutsche Bahn) as input data. For pedestrian routing (handled by Per Pedes Routing) and car routing (handled by OSRM) OpenStreetMap data is used.
A simple way to get started with a GTFS api in Golang.
Iran Railway-Trains (Raja-Fadak-Safir) all in one package for DotNet (Api-WebService)
Sharing Data
Sample GTFS and GTFS Realtime datasets used for software testing
Test data created for the original Google Python GTFS validator.
are included and a large number of GTFS RT messages are defined programmatically in Java via the gtfs-realtime-bindings library.
An imaginary GTFS data set used for testing.
best practices
are defined for the unit tests (GtfsTest and mmri folder).
Proprietary (non-standard) vendor APIs
Transit agency data archives
National government datasets
Using Data
Web Apps (open source)
A Java-based web application for producing GTFS-realtime Service Alerts.
A Google Web Toolkit-based web interface for OpenTripPlanner
A Javascript-based client for OpenTripPlanner (no longer under development)
React Javascript component library, which can be used to build trip planner webapps. See the Storybook for a demo.
HRT Bus API publishes real time bus data from Hampton Roads Transit through an application programming interface for developers to make apps from it.
Web app that animates vehicles (markers) on a map using the public transport timetables to interpolate their positions along the routes (polylines).
Creates a customizable web map layer of transit routes using Leaflet or D3.
Shows shuttle arrival times for Google I/O conference, based on the open-source transport-tracker project. Note: To implement this yourself, you need a Google Maps APIs Premium Plan license.
A virtual “trip aggregator” that assembles information on a wide variety of available modes: public transit, private, rail, rideshare, carpool, volunteer, paratransit, and walking and biking.
Public transport real-time monitoring with WebSocket updates. Open-source on GitHub.
Realtime tracking transit buses from Belo Horizonte, Brazil. Open-source on GitHub
An adaptive mobile transit app that shows real-time bus arrival information developed and deployed by Carnegie Mellon University. No longer maintained.
Native Apps (open source)
A bus tracker app for Android devices for the MACS Transit system in Fairbanks, Alaska. Uses RouteMatch APIs.
A React-native mobile app for searching train schedules published by the Shore Line East transit agency in Connecticut. Relies on a deployment of the Next Train API.
(source code)
(source code)
(source code)
(source code)
An iOS app for OpenTripPlanner
A Kotlin Multiplatform library for making API requests and parsing responses from an OpenTripPlanner v2 server for trip plans, bike rental info, and server metadata for Android, iOS, and web.
An adaptive mobile transit app that shows real-time bus arrival information developed and deployed by Carnegie Mellon University. Written using Ionic framework. No longer maintained.
An Android app that uses public-transport-enabler in order to connect to many different transport networks worldwide.
A cross-platform Flutter app that uses OpenTripPlanner
Hardware
SDKs
Visualizations
Interactive GTFS route and schedule animation (for U.S. cities) using Mapbox GL JS, Deck.gl and Transitland. Github repository here.
A python Pandas script that combines Ridership/APC, Swiftly speed and dwell data, bus stop inventory, GTFS, and geospatial shapes to create a stop by stop, route by route, time grouping filterable dataset for cross-analyses. The dataset is then visualized in Tableau to help VTA Planners find places to make bus and rail network faster and more reliable through speedups methods like stop consolidation and dedicated lanes.
Web application for animation and visualization of GTFS data using gtfspy.
Open-source NodeJS application for visualizing the routes of GTFS datasets.
Shows areas you can reach with public transport in a given time. Open-source on GitHub, live at https://www.mapnificent.net/.
A Java application that visualizes transit, biking and walking accessibility across the city of Toronto. Uses a modified version of R5 for routing.
A visualization tool to display performance metrics derived from the King County Metro GTFS-RT feed (OneBusAway API). Viewable here. Used for this paper.
Animate GTFS data around the world using Processing and Transitland.
A web app that visualizes GTFS Data on the browser at scale without a backend on the client side using duckdb-wasm .
Transit Network Explorer Tool (TNExT) is a web-based software tool developed for the visualization, analysis, and reporting of regional and statewide transit networks in the state of Oregon.
Serves any GTFS feed as a JSON API. Transit agencies and developers alike can deploy the open source code to their own Heroku server.
Pinpoints the nearest authorized restroom for bus operator and field staff, using GPS and on-screen map.
This application supports the District's training operations for transportation and maintenance employees, primarily in the positions of Bus Operators and Heavy Duty Coach Mechanics (Apprentice and Journey), although the system supports new courses and apprenticeship programs.
Public transit ticketing system for customer issues and feedback with: inter-departmental routing with notifications, department/person assigments, simple workflow, ticket searching, pre-canned reports, daily reminders and more.
An open-source asset management platform for public transportation agencies.
An open-source Computer Aided Scheduling and Dispatch (CASD) software system to meet the needs of small scale demand-responsive transportation agencies.
An R Shiny app to ingest ridership time series, and return seasonal, trend, and residual components according to STL methodology and forecasts including uncertainty based on those components. Sponsored by Metro Transit (Minneapolis-St. Paul).
Transit Map Creation
Transit Map Aggregation
Public transport routes
Use OSM Overpass API to get network data
The PTMap shows public transport routes as they are entered to the OpenStreetMap.
A webmap for viewing transport stop deails in OpenStreetMap.
a user-friendly, interactive map of Canada’s nearly 43,000-kilometre railway network.
Public transport routes
A webmap for viewing transport stop deails in OpenStreetMap.
Backend Frameworks
Complete solution for managing users in FastAPI.
Fast, easy to learn, fast to code, ready for production. Based on standard Python type hints.
A high-level Python web framework that encourages rapid development and clean, pragmatic design.
A microframework for Python based on Werkzeug, Jinja 2 and good intentions.
Stateful API authentication for SPA's.
Discord Bots
Databases
JavaScript/TypeScript
Frontend Frameworks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
A progressive, incrementally-adoptable, and performant JavaScript framework for building UIs.
A platform for building mobile and desktop web applications.
Cybernetically enhanced web apps.
Build better web apps. Remix focuses on modern web fundamentals and performance.
Nuvolari is a Next.js boilerplate with Tailwind CSS and Typescript.
Microsoft's Fluent UI library.
Web components and CSS for implementing Material Design.
A utility-first CSS framework for rapidly building custom user interfaces.
Languages
Text Editors
Utilities
A free, open source note taking and to-do application with synchronization capabilities.
An open-source alternative to Alfred and Spotlight on macOS.
A knowledge base that works on local Markdown files. Your knowledge is yours forever.
A command-line program to download videos from YouTube.com and other video sites.
Windows Package Manager CLI - a software package manager designed for Windows 10 and 11.
The missing package manager for macOS.
Windows system utilities to maximize productivity.
A modern, fast, efficient, and powerful terminal application for Windows.
Streaming JSON parser for Node.js.
A set of utilities for power users to tune and streamline their Windows experience for greater productivity.
The LibreOffice project.
DevOps
Production-Grade Container Scheduling and Management.
Infrastructure as Code tool that enables you to safely define, provision and upgrade your cloud infrastructure.
Docker CE (Community Edition) with straightforward installation, upgrade, and administration.
Ansible is a simple automation engine that enables massive time savings.
The open platform for monitoring and observability.
Prometheus is a free and open-source monitoring system and time series database.