SimWrapper

SimWrapper

  • Documentation
  • Examples
  • News
  • GitHub

›Recent Posts

Recent Posts

  • What's new in SimWrapper 4.3
  • SimWrapper version 4.0
  • simwrapper.app - the new home for SimWrapper
  • SimWrapper version 3.6
  • SimWrapper version 3.3

What's new in SimWrapper 4.3

October 23, 2025

Billy Charlton

Billy Charlton

Announcing the release of SimWrapper 4.3, available now on pip, at https://simwrapper.app, and on GitHub.

In addition to tons of bugfixes, there are lots of new things to share:

Python "simwrapper run" tool learned some new tricks

To run SimWrapper locally on your machine or network, the easiest way since version 4.0 has been to install the Python "uv" tool and then run uv tool install simwrapper. This installs a fully self-contained copy of the SimWrapper website on your machine, and you can then run the simwrapper command from any folder to view and share the files from there:

simwrapper run

You can also provide a configuration file which defines multiple share locations instead of sharing the current working directory. This is especially useful if you have network drives! And you can specify your usual TAZ/zonal boundary files too, so that OMX matrix files can be opened in the map view automatically.

simwrapper run config.yaml

Example simwrapper config.yaml

storage:
    C-Drive:
        path: "C:/data/model-runs"
        description: "C: Drive model runs"
    X-Drive:
        path: "X:/shared/modeling/outputs"
        description: "X: shared modeling outputs folder"
zones:
    TAZmap:
        path: "C:/GIS/shapefiles/taz-map.geojson" #note this must be geojson format
        lookup: "zonenumber"
        sizes: 1475,2475   # matrix sizes that correspond to the geojson boundaries

Note that on Windows, directory paths use the weird Python C:/forward/slash/format instead of the usual \\ backslashes.

Zonal files must be in .geojson format (or gzipped to .geojson.gz) with long/lat coordinates. You can convert any shapefile to GeoJSON using QGIS and other tools.

Once installed, you can also keep up with SimWrapper updates by running uv tool upgrade simwrapper. uv really makes managing (Python) software a million times easier than the old pip and conda tools. The simwrapper tool is on Pypi here: https://pypi.org/project/simwrapper/

Background shape layers underneath all maps

Background layers are very useful for depicting service and study areas, neighborhood borders, etc. The shapefile viewer always allowed background maps underneath it, but now every map visualization in SimWrapper can have background layers underneath your primary data:

Background maps

In the YAML configuration for your view or dashboard, add the following:

Example adding Berlin neighborhoods to a YAML:

backgroundLayers:
  berlin:
    shapes: "berlin-bezirke.gpkg" # or .shp
    fill: "Viridis" # or 'salmon', or '#08f"
    borderWidth: 2
    borderColor: 'darkblue'
    opacity: 0.8
    onTop: false

Geopackage .gpkg and shapefile .shp formats are supported; you can convert to Geopackage easily from QGIS and other tools. The other settings should be self-explanatory.

Better memory management - fewer tab crashes ☠️

We upgraded some longstanding technical debt and are now using the latest versions of Vite, Deck.gl, and MapLibre. What this means for you is that tab memory management is massively improved: large datasets shouldn't crash your browser tabs nearly as often 😅

SimWrapper still uses a fully in-browser app approach, meaning there is no back-end database filtering large datasets. It's a design feature, not a bug, enabling you to fully control your data: stuff never get uploaded to the cloud. But this also means that large datasets can still crash your tabs sometimes. It's a limitation of web browser technology that we can't really get around... but with this new version, even larger datasets should be manageable.

🎮 GamePad controller support 🕹️

Now you can control all map views using a USB or Bluetooth gamepad controller! Note that not all controllers are fully supported in all browsers, so try different ones if your first controller is not recognized.

Left stick moves the map, right stick rotates and changes zoom. Hold down the left Z/trigger button and move the sticks to control pitch. there is also an invert axes option in the main SimWrapper settings (the gear in the upper right) for you gamers.

Great for interactive demos!

More to come!

Please start a chat or follow along on the SimWrapper discussion board if you have suggestions, comments, cheers & jeers!

We are working on lots of other new features and continue to sharpen SimWrapper based on your feedback! Thanks for your support 🙏

SimWrapper version 4.0

June 16, 2025

Billy Charlton

Billy Charlton

Announcing the release of SimWrapper 4.0, available now on GitHub and at https://simwrapper.app

There are lots of new things to share:

New front page and file browser

simwrapper front page

The front page and file browser are much cleaner and more refined with a less garish color scheme. In addition to looking nicer, it now should be easier to find your projects, favorites, and documentation.

Experimental MATSim event file viewer

Example event viewer with vehicle animation

A first stab at a viewer for MATSim event files is now enabled. Currently this just shows vehicle trajectories found in the file, but a more feature-rich version is in the works.

Inside simwrapper.app you can browse to any folder containing an output_events.xml.gz file, and click on the "EVENTS-output.xml.gz" in the list of maps. The file should start streaming almost immediately.

Matrix viewer for OMX/HDF5 files

Matrix viewer

The OMX/HDF5 matrix viewer allows you to explore your matrix data in tabular form -- or in combination with a zonal shapefile, you can visually inspect it one row or column at a time. (If you have ideas on how to visual the entire matrix on a map instead of just one slice, let me know!)

The matrix viewer has been out for a while. This version sports a much-improved user interface and massively improved performance for non-local files. Other additions include a built-in compare/diff mode, table and zone filter/search capability, and editable legend breakpoints.

Updated python package for local installations

The old pip install simwrapper python app was back-burnered for a while, but it is back!

The new version is ideal for those of you who want to run SimWrapper inside your firewall instead of using the simwrapper.app website.

The new version learned a new command, simwrapper flask which starts a Python "flask" app and serves up files in the current folder from a local HTTP server. This is super useful if you have cloud-storage files mounted to a folder on a server, for example!

Contact me or ask on the discussion board for more details on how to use the new Python app.

...and more!

There are many, many bugfixes and small feature improvements in this release. All of us who have been working on this code or supporting the effort thank you for your interest in SimWrapper! Speaking of which...

simwrapper usage graph

There is a lot of interest in SimWrapper this year and the line keeps going up!

Let's see where 4.x takes us!

simwrapper.app - the new home for SimWrapper

March 3, 2025

Billy Charlton

Billy Charlton

SimWrapper has a new home: https://simwrapper.app

The project has outgrown the old github.io URLs and needed a place of its own. Nothing else has changed about the project or website: it is still a 100% open source, static website developed in the open on GitHub. All of the source code remains on GitHub too. Only the URLs for actually using the tool and its documentation have changed.

Main site: simwrapper.app

Documentation (you are here): docs.simwrapper.app

Let us know if you find broken links or any strangeness related to the move!

SimWrapper version 3.6

February 10, 2025

Billy Charlton

Billy Charlton

SimWrapper release 3.6 is online now. This entry also includes new features from 3.5 which didn't get its own post.

Some bugfixes and a few new features:

Maps:

  • Layered maps: Area/network maps can now have shapefile layers above or below the main dataset.
  • New transparency slider for Shapefile/Map FillColor definition. This helps with area maps where the solid colors make it hard to "see" the streets and geography beneath.
  • Geopackage file format now supported in map views and layer maps

Dashboards

Dashboard subtabs can now import other dashboards files. Be careful with relative paths, but if you specify things correctly you can now have dashboards that reference other dashboards!

Example dashboard here where the various seeds are referencing dashboards in other folders. Example YAML file is here

MATSim Logistics Viewer

Introducing a new MATSim logistics viewer, similar to carrier viewer but allowing multi-depot logistics! See logistics docs here

Transit viewer

You can now specify custom route colors based on GTFS/route parameters, with "colors" attribute. See transit docs here

Tables

Table alignment now allows left/center/right array to be passed in yaml

Lots of new stuff to bite into! See the Change Log for the full list of updates.

SimWrapper version 3.3

July 11, 2024

Billy Charlton

Billy Charlton

SimWrapper minor release 3.3 is out now.

Some bugfixes and a few new features:

Background layers in Shapefile/GeoJSON viewer. The main Shapefile/Network/GeoJSON map view learned how to draw background polygon layers behind your main dataset. This is useful for delineating geographies such as district boundaries and service areas that are relevant to your dataset.

Background Layers behind a network plot

You can find this feature in the configurator button in the top-right of the map view; open the Layers section and add your GeoJSON data directly. Note that, due to browser security rules, the file might not immediately load if it is not stored in the same folder as your model run. You can edit the path to include a relative path such as ../../boundaries/my_service_area.geojson and then it will load.

The YAML for the boundary layers is backward-compatible with your existing map YAML configs. There is a new backgroundLayers section, which looks like below:

title: "My Map with Layers"
description: "Example"
zoom: 11.3
center: -122.4, 37.72
shapes:
    file: freeflow.geojson
    join: AB
datasets: {}
display: {}
# HERE IS THE NEW STUFF --
backgroundLayers:
    Supervisor Districts:
        shapes: ../../shapefiles/SupervisorDistricts.shp
        fill: "Rainbow" # each shape will have a different color
        opacity: 0.3
        borderColor: "#fff"  # CSS color hex codes
        borderWidth: 3
        label: NAME # optional data column with a label for the polygon
        visible: true  # default to showing this layer
    Layer2:
        shapes: ../sf-taz.geojson
        fill: "#fff" #white
        opacity: 0.5
        borderColor: "#fff"
        borderWidth: 1
        visible: false # default to hide this layer; user can click to add it

See the Change Log for the full list of updates.

SimWrapper version 3.1

May 16, 2024

Billy Charlton

Billy Charlton

SimWrapper 3 has been out since spring 2024 and includes some new goodies:

Dashboard reorganization. Dashboard sections are now displayed along the right instead of as tabs across the top of the view. In addition, each dashboard section can have multiple tabs! This two-level structure allows more detail on individual sections while helping you to organize things.

Improved file system navigation. Breadcrumbs and navigation work better now; pin favorite folders to the left bar; and the new "Split" side-panel allows you to split the window view into multiple areas by dragging a file folder from the folder view into the main window.

HDF5 Matrix Viewer allows browsing of HDF5-format matrix data as tables, as a heat map, or mapped onto a zonal boundary file. This is very handy for zonal data display and review.

Grid Map visualization for X/Y point data that's on a grid =)

Project pages now can have a consistent top-navigation bar defined in simwrapper-config.yaml

Avro data file support. The Apache Avro file format is a widely-used data format that now has experimental support in SimWrapper for MATSim networks and XY data. Depending on user feedback, this may get wider support in MATSim itself and in SimWrapper.

See the Change Log for the full list of updates.

SimWrapper version 2.5

August 22, 2023

Billy Charlton

Billy Charlton

Version 2.5 is now live on simwrapper.github.io and also on vsp.berlin/simwrapper!

X/Y/Time supports custom breakpoints now. See X-Y-T Plots

XML Viewer: Review your MATSim XML configuration files with the new hierarchical, searchable XML Viewer.

See the Change Log for the full list of updates.

SimWrapper version 2.3

May 26, 2023

Billy Charlton

Billy Charlton

Version 2.3 is now live on simwrapper.github.io and also on vsp.berlin/simwrapper!

Plotly charts: The original bar/area/line charts are simplified versions of the well-known Plotly charting library. They are deliberately simplified so that you can create simple plots quickly. They are still available. But if you want more power, SimWrapper now exposes all Plotly chart types, even non-cartesian plots, 3-D, and more: explore the new Plotly plugin.

Tiles plugin: Do you need to highlight just one value in a top-level dashboard? Check out the new type: tile dashboard plugin here: Tiles

Lots of bugfixes: Version 2.3 includes many, many bugfixes in the shapefile viewer and MATSim roadway and transit network readers. Thanks for the bug reports!

See the Change Log for the full list of updates.

SimWrapper version 2.2

April 21, 2023

Billy Charlton

Billy Charlton

Version 2.2 is now live on simwrapper.github.io and also on vsp.berlin/simwrapper!

CSV table plugin: New type: csv card type displays CSV data in nicely-formatted tables with filtering and sorting. See the CSV table viewer

See the Change Log for the full list of updates.

SimWrapper version 2.1

January 4, 2023

Billy Charlton

Billy Charlton

Version 2.1 is on vsp.berlin/simwrapper and also on simwrapper.github.io!

This is mostly a bugfix update, with some new features in the Flowmap and some other visualizations.

Simpler dashboard configuration: Dashboard configuration files have been "flattened" a bit, meaning that there isn't so much indentation required anymore because the old props section has been merged with the standard layout fields for all cards. You can see some examples on the Dashboard docs page

Review the Change Log for the full list of updates.

Next →
SimWrapper
Docs
Getting StartedDeveloper GuideLatest Updates
More
VSP HomeMATSim.org⭐ us on GitHub!
Copyright © 2025 VSP, TU Berlin