Michael Kirk
dcabbc9718
fix crash in tutorial on web ( #376 )
...
This file is used in step 6 of the tutorial.
As a desktop app, we had a bunch of files we just read from disk when
needed. Translating this to web requires some thinkging (things are
slower, they can fail, etc.).
As a first step we simply agglomerated all the files into the wasm
binary, but since some of the files are rather large, we tried to only
include the essential and small files.
This one was missed. Though some of the prebaked results files are very
large, this one is a mere 5k.
2020-11-02 11:10:21 -08:00
Dustin Carlino
8920c2c0b8
Store gzipped files in S3 and decompress upon loading. A few basic tests
...
showed this is faster than downloading the uncompressed files, but of
course it probably depends on network speed vs CPU. #326
Also cut over the updater to use gzipped files using flate, instead of
single-file .zip's. [rebuild]
2020-10-31 18:09:48 -07:00
Dustin Carlino
f05d041c02
Handle duplicate files on web when they're both bundled in and uploaded to S3. In particular, don't crash on the all city picker on web.
2020-10-29 15:26:36 -07:00
Dustin Carlino
3b26d25fe4
Build a wasm binary that jumps straight into the OSM viewer
2020-10-27 15:34:58 -07:00
Dustin Carlino
fda4c4da7b
Refactor a few utilities, and use convex hull of the city boundaries to simplify them considerably. #326
2020-10-26 14:15:25 -07:00
Dustin Carlino
34b41a909e
Optionally keep building OSM tags. Display in info panels and the new viewer, when present.
...
Don't keep the tags by default. File size increase from the empty map is
negligible.
2020-10-24 14:19:22 -07:00
Dustin Carlino
357ac4e549
Fix a crash with the new FixedMap. Don't assume the keys exist!
2020-10-22 11:12:24 -07:00
Dustin Carlino
3d1ca3af9e
Handle live map edits that rip away parking while a car is actively parking in it. #312
2020-10-21 13:00:49 -07:00
Dustin Carlino
45e6a79e7d
Use a HashMap to store driving queues. Modest speedup on the downtown
...
benchmark from ~101s to ~96s. #368
2020-10-20 16:23:18 -07:00
Dustin Carlino
06f088afcc
More clearly handle the different strategies for filesystem access. On
...
native, only look at local files -- so now importing new maps locally
works again. On web, look at statically bundled files AND remote files
declared through the manifest.
In the future for native, we will also want to sometimes show remote
files available and integrate part of the updater, but only in a
specific view, not in general for all files.
2020-10-16 13:44:05 -05:00
Dustin Carlino
491f4bbffe
Speed up the simulation by replacing BTreeMaps with a simple Vec lookup. #368
...
No behavioral changes. Dramatic performance boost:
- 8 hours of downtown: 170s down to 135s
- prebaking: 3m33s down to 3m4s
2020-10-16 12:10:05 -05:00
Dustin Carlino
422882c03b
Ditch cpuprofiler in favor of cargo flamegraph. Add a tool that just
...
runs a scenario headlessly, since that's easier than sending a few curl
commands to the API. #368
2020-10-15 17:12:38 -05:00
Dustin Carlino
84a65c293b
Make it easier to test scenario modifiers by specifying them on the CLI
2020-10-14 12:16:38 -05:00
Dustin Carlino
212ad761fd
Switch to Box<dyn Error> in abstutil. This makes it easier to have
...
higher-level APIs return some kind of string error. Pretty much nowhere
do we care about error types.
2020-10-11 08:36:02 -07:00
Dustin Carlino
34e95dd861
WIP load scenarios
2020-10-09 22:31:31 -07:00
Dustin Carlino
2cd59ead37
Remove the special handling for synthetic maps, which were JSON RawMaps
...
that could directly be loaded. The few examples have been long broken
and unused. They complicate map loading, because they have a weird path.
2020-10-09 16:08:11 -07:00
Dustin Carlino
f1ec2fa4c4
Convert more doc comments for abstutil, convert_osm, geom, sim
2020-10-08 21:13:08 -07:00
Dustin Carlino
62b3af324b
Bundle data/MANIFEST.json in wasm. Now loading all maps from HTTP works! #21
2020-10-08 14:41:02 -07:00
Dustin Carlino
4d66e4e91d
Make the city picker list maps from the manifest, not local files. #21
2020-10-08 14:26:35 -07:00
Dustin Carlino
d09ead3672
Use serde for data/MANIFEST
2020-10-08 13:14:40 -07:00
Dustin Carlino
989d5243b1
Move the data/manifest utils to abstutil, so the game crate can know
...
about all files that exist, even if they're not downloaded locally
(native) or to load other maps (web)
2020-10-08 12:50:18 -07:00
Dustin Carlino
d1d1d1532c
Silence warnings when compiling wasm
2020-10-08 12:26:54 -07:00
Dustin Carlino
fa4981787d
Bake less huge data files into the .wasm. #21
...
This has the effect of breaking the city loader, because it lists
bundled files to discover other cities. Going to rethink that next.
2020-10-08 11:33:10 -07:00
Dustin Carlino
64bc4ee318
On the web, load different maps by making asynchronous HTTP calls. #21 ( #364 )
...
* On the web, load different maps by making asynchronous HTTP calls. #21
This is a very strange, specializd approach; it's unclear how it'll
generalize to reading scenarios and prebaked results. Ideally we could
call abstutil::read_binary as we currently do and somehow hide this async
trickery underneath, but I'm not sure how yet. In the meantime, this
moves us forward with the hack well-contained.
Next steps for web: stop bundling in all of data/system in the .wasm,
now that we can load from HTTP.
2020-10-08 10:51:13 -07:00
Dustin Carlino
f258c50595
Organize import blocks using https://github.com/dabreegster/organize_rust_imports
2020-10-05 20:29:22 -07:00
Dustin Carlino
27d94945c6
Manually move mod block after the use block, to match what CLion does.
2020-10-05 20:29:22 -07:00
Dustin Carlino
bb6dbb0731
Switch from stdweb to websys for #21 .
...
When I added web support in February, it was easier to get started with
stdweb, since it has the nice cargo web tool. However, stdweb is
unmaintained, winit is deprecating support for it, and the next steps
for web (downloading maps dynamically) have better support for web-sys.
With Alvin's guidance, I got
https://github.com/dabreegster/minimal_websys_winit_glow_demo working
first. This PR cuts A/B Street over too.
I tested abst and the widgetry demo in both native and web. The only
major regression from stdweb is the canvas placement and size. I
attempted some fixes, but at this point, I'll leave it as a smaller
followup instead.
2020-10-05 19:50:52 -07:00
Dustin Carlino
5706226790
Also lift list_all_objects. Now the native/web IO stuff has a smaller surface area, making it easier to add more web support for #21 .
2020-10-05 15:03:49 -07:00
Dustin Carlino
e5365254e9
Make load_all_objects IO-backend (native/web) agnostic
2020-10-05 14:48:34 -07:00
Dustin Carlino
e973d1e5a1
Organize abstutil io into a native and web crate
2020-10-05 14:16:29 -07:00
Dustin Carlino
dd252d45e2
Remove the long unusued abstutil Profiler (originally for measuring cumulatively how long part of an inner loop takes)
2020-10-05 12:23:26 -07:00
Dustin Carlino
67268f5461
Organize abstutil a little better. Split out modules for generating the data/ paths and for working with serde.
2020-10-05 12:20:52 -07:00
Dustin Carlino
178404bd0e
Remove unused RNG stuff from abstutil, and start to think about how to tease it apart a bit
2020-10-05 11:48:29 -07:00
Dustin Carlino
5354d1ba2b
Show counts in throughput layer tooltips
2020-10-03 16:04:58 -07:00
Dustin Carlino
ac5aa927db
Test turn generation via goldenfiles instead. Revert the "import from a
...
raw string" stuff from the previous commit.
Add tests of a few interesting intersections. The results right now
aren't ideal, but this sets things up for fast iteraton.
2020-10-01 15:34:43 -07:00
Dustin Carlino
597ef473f2
Upgrade most dependencies
2020-09-24 09:36:26 -07:00
Dustin Carlino
0a3479a3d0
Implement the new file management part of Yuwen's edit mode sidebar UI.
...
Some bugs introduced when working with the default untitled proposal.
About to change the behavior of that in the next commit.
2020-09-14 13:58:12 -07:00
Michael Kirk
f685af47a5
proletariat robot considers resident/worker capacity ( #320 )
...
proles: account for work capacity
previously all residents went to work on the map, but if the
neighborhood is mostly residential that meant they were "competing"
heavily for the scarce jobs available on the map.
with this commit, we do a better job of spreading worker/residential
demand to account for what is available, and fill in the gap with
off-map trip origins/desitinations.
e.g. if a neighborhood is mostly residential, we have folks commute off
of map. If a neighborhood is mostly commercial, we have folks commute
into the map.
2020-09-10 14:04:20 -07:00
Dustin Carlino
c5bf1fcb74
Fix saving scenarios, broken in 65e07d9cc7
2020-09-08 08:24:23 -07:00
Dustin Carlino
65e07d9cc7
Read/write scenarios in JSON, so people can manipulate them in any language. #313
2020-09-04 10:57:52 -07:00
Dustin Carlino
787b6046b6
Remove the RAM measurement utility. Only work on Linux, I'm not convinced it's correct, and the information isn't useful to see
2020-09-03 17:19:40 -07:00
Dustin Carlino
2935d2379b
Mechanical rename of ezgui -> widgetry, a much better name to enchant the Rust community. #253 [rebuild]
2020-08-27 10:37:04 -07:00
Dustin Carlino
2c5bbd3e7e
Use alternate language building names and amenities, when available. Fixes #271 .
...
Tested in Shinjuku. No substantial file size increase for any maps.
2020-08-20 10:39:28 -07:00
Dustin Carlino
5c337e2e8e
Add some methods to the headless API for manipulating traffic signals, and start a Python client example. Everything still WIP.
2020-08-18 11:31:20 -07:00
Dustin Carlino
43a6edbc28
regenerate everything, prep for release. [rebuild]
...
lakeslice still gridlocks and lots of bus routes cut out. not the
happiest release.
2020-08-08 21:33:11 -07:00
Dustin Carlino
ad3a0398bb
stop missing panics even after long Timer notes
2020-08-08 19:38:32 -07:00
Dustin Carlino
74426aaf94
get ezgui demo running in wasm
2020-08-07 19:49:43 -07:00
Dustin Carlino
e35c69f6f3
ezgui Wizard (and its pet Cloneable)
...
Here lies a weird coroutine experiment
09/20/2018 - 08/07/2020
2020-08-07 14:04:41 -07:00
Dustin Carlino
1b993544ab
print logs from fast_paths
2020-08-01 08:27:09 -07:00
Dustin Carlino
328cbcd1f1
stop melting my laptop when generating scenarios
2020-07-23 09:15:25 -07:00
Dustin Carlino
f1ef02b907
store Tags in map_model objects, to reap its benefits anywhere in the codebase. serialization format doesnt change!
2020-07-23 07:43:50 -07:00
Dustin Carlino
35b761ec21
get sydney to import
2020-07-20 20:54:08 -07:00
Dustin Carlino
b6a8bdd7e1
merge adjacent residential blocks into larger groups. slow
...
implementation, but the result looks nice
2020-07-18 13:09:10 -07:00
Dustin Carlino
a5cf34ff59
refactor the osm tags helper
2020-07-14 09:03:37 -07:00
Dustin Carlino
07ed1fec95
more polyline work... get rid of Warn<>. extremely spammy and hasn't
...
been helpful in ages.
2020-07-11 15:17:16 -07:00
Dustin Carlino
4340ad585b
convert the rest of usize IDs to u32. savings:
...
maps: 645mb -> 625mb
scenarios: 431mb -> 390mb (before all the u32 optimizations, this as
500mb!!!)
prebaked: 80mb -> 73mb
and while I'm at it, grab fresh OSM, with lots of manual lane fixes,
especially near divided highways
2020-07-09 11:43:34 -07:00
Dustin Carlino
e50cd77675
fix #160 properly -- expand to /home/dabreegster at runtime
2020-07-07 17:16:26 -07:00
Dustin Carlino
9a27f6d3dd
cleanup the old abstutil Error
2020-07-07 17:09:51 -07:00
Dustin Carlino
d1fdcbbd59
fix more relative dir bugs. allow different directory for player data too. fixes #160
2020-07-07 16:49:46 -07:00
Dustin Carlino
4aaa41dd13
zip screenshots in dropbox, because managing individual files keeps crashing the daemon
2020-07-07 16:31:52 -07:00
Dustin Carlino
3eb8db3f75
interpret OSM center lines as the physical center of the road (excluding
...
sidewalks), not as the divider between the two directions. this
dramatically changes geometry everywhere for the better.
thanks to
https://wiki.openstreetmap.org/wiki/Proposed_features/placement for
clear explanations. will be looking next at interpreting this tag.
also temporarily removing screenshots, because uploading individual
files and waiting for dropbox to sync isn't sustainable
2020-07-07 15:52:51 -07:00
Dustin Carlino
9f72b3dd51
cleanup after the relative dir fix, and add support for hardcoding the
...
data dir, for #137
2020-07-07 12:14:02 -07:00
Dustin Carlino
6919c24bf8
detect the data/ dir more intelligently. fixes #73 . still need to
...
- consider collapsing the directory structure in the releases
- fix wasm
[rebuild]
2020-07-07 11:09:35 -07:00
Dustin Carlino
c191ffde9a
filter out broken edits (which happen due to schema changes)
2020-06-30 19:48:25 -07:00
Dustin Carlino
eedf80bfef
tiny tweaks from final testing:
...
- cutscene wording
- elide traffic tab on parking lanes
- dont crash when traffic signal data needs fixing, just warn more
loudly. this lets lanes near some signals actually be modified
2020-06-21 11:38:34 -07:00
Dustin Carlino
a96b77ba3f
more granular profiling
2020-06-09 18:56:33 -07:00
Dustin Carlino
49dee41b3c
bin Counter values based on value, handling dupes. particularly
...
noticeable for bike lane layer
2020-06-01 09:35:29 -07:00
Dustin Carlino
8c77cdd889
validation for naming edits. fixes #35 . also improve how wizards manage
...
textboxes when parsing fails
2020-05-24 11:52:32 -07:00
Dustin Carlino
2aebf31669
remove shortcuts feature. UX has issues -- need proper way to edit, delete, reorder shortcuts. never seen clear use case for this. fixes #37 , #38 , #39
2020-05-24 11:35:52 -07:00
Dustin Carlino
ddf6de5f59
stop dependending directly on serde_derive
2020-05-19 15:06:32 -07:00
Dustin Carlino
a362c73689
plumb trips per parcel tooand add more queries, make a kml chooser
2020-05-16 13:24:58 -07:00
Dustin Carlino
26d12e5d75
include breakdown by type of amenity
2020-05-12 13:15:25 -07:00
Dustin Carlino
3145326207
start a tool to understand popular destinations. remove dot map,
...
superceded by live population map
2020-05-12 12:54:35 -07:00
Dustin Carlino
182f5139a5
rip out old mapfixes code. pure OSM is more maintainable. keep map_editor for drawing synthetic maps and debugging raw maps
2020-05-10 10:39:08 -07:00
Dustin Carlino
e97795044d
edit existing polygons
2020-05-08 12:01:08 -07:00
Dustin Carlino
ed4cf78b23
better diversion viz, using percent change
2020-05-05 13:18:19 -07:00
Dustin Carlino
02c5b6617b
dismantle importing for neighborhoods. long unused. just retain a simple
...
osmosis polygon editor.
2020-05-01 14:11:41 -07:00
Dustin Carlino
18779c10ad
organizing data/input by city. (I tried organizing everything in data/,
...
but it's too big a change. small steps.)
2020-04-28 12:28:37 -07:00
Dustin Carlino
35c193eebc
associated parked cars with people, not buildings
...
pt1: scenario layer
2020-04-15 15:01:49 -07:00
Dustin Carlino
ff68a77979
have to fork rng again to prevent ped speeds from changing. wow.
2020-04-09 13:02:10 -07:00
Dustin Carlino
70875d104d
Scenario should just have specific trips. split a different structure for generating Scenarios. has the happy side effect of removing lots of weird old spawning code, duplicated checks
2020-04-01 13:50:36 -07:00
Dustin Carlino
b28507c247
don't crash when prebaked analytics gets out of sync
2020-04-01 09:17:52 -07:00
Dustin Carlino
0fb22b5f50
sloppy (and incorrect!) implementation of gradients. temporarily breaks
...
non-glium backends, about to cleanup.
2020-03-30 15:48:23 -07:00
Dustin Carlino
0bcbac1fee
upgrade a few misc packages
2020-03-17 10:35:37 -07:00
Dustin Carlino
1cce49648b
some fixes to get Perth to import, part of #27
...
- filter out indoor corridors
- plumb through a flag for driving on the right/left. don't use it yet.
2020-03-16 15:20:35 -07:00
Dustin Carlino
f97918ff04
fixing the bug with grouping PSRC trips by unique person -- thanks to
...
folks at PSRC for helping track this down
2020-03-05 11:19:32 -08:00
Dustin Carlino
7407e5778f
some investigation into psrc tour segments again
2020-03-02 15:50:32 -08:00
Dustin Carlino
fbb4140181
tiny wasm cleanup. havent figured out serde problem yet. [rebuild]
2020-02-25 10:35:58 -08:00
Dustin Carlino
bd51208684
name intersections in info panels better, and avoid horizontal scrolling
...
in most?? cases
2020-02-17 17:07:25 -08:00
Dustin Carlino
d292e29ad0
get the game crate running in wasm. bundle in lots of data files, fake out a few more IO things, glue timer println's to console log
2020-02-15 16:44:06 -08:00
Dustin Carlino
b2c92ab8f9
upstreaming some changes for wasm here
...
- use instant crate
- bring in the wasm ezgui backend and necessary setup tweaks
- upgrade stdweb
but no map editor build magic yet
2020-02-14 14:28:25 -08:00
Dustin Carlino
872cd0cba6
'save as' feature for map edits. autosave otherwise.
2020-02-06 12:31:06 -08:00
Dustin Carlino
8228f53d02
make it easier to debug objects by warping to them, draw turn cycler
...
arrows a little more successfully
2020-01-31 14:06:37 -08:00
Dustin Carlino
79de16a840
get the sim crate to build to wasm. a small step towards #21
2020-01-30 17:28:52 -08:00
Dustin Carlino
09e87687db
more of the minimap tut
2020-01-21 15:45:43 -08:00
Dustin Carlino
95a84fd26a
tweaking rustfmt options; the long literal string vecs in tutorial look awful
2020-01-21 15:20:02 -08:00
Dustin Carlino
53f33a31e4
hide IDs unless in dev mode
2020-01-09 11:50:56 -06:00
Dustin Carlino
74de79e0dd
make an iterator to determine when we're on the last item. use to refactor a few places that have to do this. there are more though.
2019-12-29 11:20:05 -06:00
Dustin Carlino
3755d9b858
proper clone for Sim
2019-12-24 14:47:07 -08:00
Dustin Carlino
04bcf77e2b
work on new traffic signal scrolling panel. generalized scrollable
...
Composite works!
2019-12-20 09:35:27 -08:00