Static demonstrators for optimization models developed by the INOCS team at INRIA in the context of EU SUM project for shared mobility integrated with public transport.
This repository contains a static web application built with Astro and React, static JSON and GeoJSON datasets used by the demo pages, and a reference OpenTripPlanner setup that was used during data generation.
Live demo: https://inria.github.io/inocs-sum-pt-nsm-optimization-demo
web/: the main static website, built with Astro and React, and deployed to GitHub Pagesweb/public/data/: static JSON and GeoJSON files consumed by the demo pagesdemos/: legacy static demonstrators kept for referenceotp/: reference OpenTripPlanner setup and local runtime data directory
At this stage, the repository is focused on publishing the demonstrators and their static inputs. In future iterations, the Python packages used to generate these datasets for each optimization study will also be published here with their own documentation.
The current demonstrators cover three complementary research directions.
The city map demo visualizes transit and shared mobility data for the Geneva living lab. It is used to explore spatial structures such as stops, bike stations, itineraries, grids, and ridership layers derived from GTFS and related geographic processing.
The legacy bike-sharing demonstrator illustrates optimization outputs related to station placement and bike-sharing system design. This demo will be enhanced with latest model updates with results for Geneva living lab.
The dynamic pricing demonstrator exposes optimization outputs related to pricing policies and user behavior simulation for integrated public transport and new shared mobility systems.
.
├── README.md
├── demos/ # Legacy static demonstrators kept for reference
├── otp/ # OpenTripPlanner reference setup and local data
│ └── docker-compose.yml
└── web/ # Main Astro + React static demo website
├── public/
│ └── data/ # Static JSON and GeoJSON assets used by the site
└── src/
More detailed documentation is available in:
demos/README.mdweb/README.md
The website consumes versioned static datasets stored under web/public/data/.
sum_gtfs_geojson/: GeoJSON layers derived from GTFS and geographic preprocessing for several spatial configurations in Genevansm_pt_dynamic_pricing/: optimization outputs and derived metrics used by the dynamic pricing demonstrator
These files are committed so the GitHub Pages deployment remains fully static and reproducible.
From the repository root:
cd web
npm install
npm run devThen open:
http://localhost:4321/inocs-sum-pt-nsm-optimization-demo
To build the production version locally:
cd web
npm run build
npm run previewEarlier static demonstrators are preserved in demos/ for reference and comparison with the new Astro-based site.
See demos/README.md for details and local usage.
The repository includes an OpenTripPlanner reference setup in otp/docker-compose.yml.
This setup is provided as documentation and reproducibility support: it was used during the preparation of demo inputs, but it is not required to run the published static website.
The Compose services mount otp/data/ into OTP at /var/opentripplanner.
Before building the graph, place the following files in otp/data/:
geneva-gtfs.zip: GTFS archive containing the.txtfilesgeneva-osm.pbf: OSM extract for the target area
Useful sources for Switzerland include:
- https://download.geofabrik.de/europe/switzerland.html
- https://data.opentransportdata.swiss/de/dataset/timetable-2025-gtfs2020
GBFS feeds can be obtained from mobility providers supported by OpenTripPlanner. The MobilityData systems list is available at https://github.com/MobilityData/gbfs/blob/master/systems.csv
Run from the otp/ directory:
cd otp
docker compose --profile build upThis runs OTP with --build --save and writes the graph into otp/data/.
Run from the otp/ directory:
cd otp
docker compose --profile serve upOTP is then available at http://localhost:8080.
cd otp
docker compose --profile build down
docker compose --profile serve downThe runtime data under otp/data/ should remain local and is not intended for publication.
The website is deployed to GitHub Pages from the web/ Astro build output. The GitHub Actions workflow also copies the legacy demos/ folder into the published static site.
This repository is maintained in the context of the INOCS team at INRIA.
Publications: https://team.inria.fr/inocs/publications/
Planned future additions include:
- Python packages used to generate the demo datasets
- Package-specific documentation for each optimization workflow
- Clearer linkage between demo datasets, code, and related publications