abstreet icon indicating copy to clipboard operation
abstreet copied to clipboard

Feature request: 'Save scenario' button

Open Robinlovelace opened this issue 5 years ago • 5 comments

A/B Street enables users to modify travel behaviour and infrastructure. Currently there are ways of saving scenarios of infrastructure change and scenarios of travel, but no way to save the 'package' of changes that you have made into a single file, including:

  • [ ] The scenario file currently loaded
  • [ ] The set of change made to the transport network
  • [ ] Location of the camera, e.g. to show someone a particularly interesting feature of the transport system at a junction
  • [ ] The timestamp

Each of these things have been implemented separately and work well. A great example of the effectiveness of being able to share insight into the impact of change is this demo of using A/B Street to simulate the addition of a new cycleway in Poundbury, UK.

Currently people can reproduce that situation by opening up A/B Street, getting the Poundbury map up, putting a scenario file e.g. scenario_go_active.json, in the relevant place and editing the map in the same way as shown on the video.

Even better, thanks to great work on the ActDev project, users can simply click on this link and then the just need to edit the road: https://actdev.cyipt.bike/abstreet/?--actdev=poundbury&--cam=16.9/50.71206/-2.45266&--actdev_scenario=go_active as shown below:

image

That opens the map at the correct location and at a specific time. Making the change auto saves it. But it's not immediately clear how to share the edits with others, let alone share the map state at that specific time and location. I imagine tackling this issue with have high benefit:cost ratio as all the components are there but not packaged. For that reason, as discussed, it may be more of a UI question in terms of where the 'Save Scenario' button goes.

Suggestion: have one main 'Save' button which when clicks opens a sub menu with the options, e.g.:

  • [ ] Save current infrastructure
  • [ ] Save infrastructure edits
  • [ ] Save current scenario
  • [ ] Save time
  • [ ] Save camera view

That outputs a single file containing each of those things (and possibly in the future more such as annotations) that can be reloaded by others.

Imagine there are other settings that could be saved. Confident this will be useful in any case and very happy to provide further ideas/feedback and test.

Robinlovelace avatar Apr 19 '21 22:04 Robinlovelace

It's straightforward to start the game running for a particular scenario, e.g. with:

cargo run --bin game data/system/gb/great_kneighton/scenarios/center/go_active.bin

But could not see where the autosaved edits were made after seeing this in the GUI:

image

Robinlovelace avatar Apr 19 '21 22:04 Robinlovelace

But could not see where the autosaved edits were made after seeing this in the GUI

https://a-b-street.github.io/docs/dev/index.html#development-tips It's buried in the docs. You can pass --edits=hillsroad on the command line for that map.

I agree we could make all of this much easier in the UI. Thanks for the ideas!

dabreegster avatar Apr 19 '21 23:04 dabreegster

https://a-b-street.github.io/docs/dev/index.html#development-tips It's buried in the docs.

:+1: that clarifies things, could do with more documentation in that area and something I could help with.

You can pass --edits=hillsroad on the command line for that map.

That works great. How would I take that to the next step and share the edits with a someone else though (I searched for a file called hillsroad to no avail)?

I agree we could make all of this much easier in the UI.

Happy to be a guinea pig / product tester on this!

Robinlovelace avatar Apr 20 '21 06:04 Robinlovelace

That works great. How would I take that to the next step and share the edits with a someone else though (I searched for a file called hillsroad to no avail)?

You'd send them data/player/edits/gb/great_kneighton/center/hillsroad.json and have them put the file in the same place. That's tedious.

I'm prioritizing things like the new road editing UI right now, but when I get a breather, I'll add some stuff here and ask you to test. Thanks!

dabreegster avatar Apr 20 '21 14:04 dabreegster

Makes sense and not too tedious. Just discovered why I couldn't find that file, I had missed out the --no-ignore tag in the command line file finder fd. This found it, and makes sense to ignore those files in git:

fd hill --no-ignore
data/player/edits/gb/great_kneighton/center/hillsroad.json
data/system/study_areas/dunton-hills.geojson
importer/config/gb/dunton_hills

Robinlovelace avatar Apr 20 '21 14:04 Robinlovelace