The Maplat family's first monthly release (October 2026) is out
On October 5, we released the October 2026 release of the Maplat family.
This is our first update since we announced that the Maplat family had finally reached 1.0.0 in August.
Starting with 1.0.0, we decided to ship new versions on a fixed day every month. Release day is the first Monday of each month. We stop accepting changes on the Monday one week before, publish release candidates, and spend that week checking that everything works. For this October release, changes closed on September 28, and the release went out on October 5.
The next release, for November, is planned for November 2. Changes for it close on October 26.
Libraries now available on npm
- Maplat (@maplat/ui) 1.1.0
- MaplatCore (@maplat/core) 1.1.0
- MaplatTransform (@maplat/transform) 1.1.0
- MaplatTin (@maplat/tin) 1.1.0
- Chuci (@c4h/chuci) 1.0.1
- Quyuan (@c4h/quyuan) 1.1.0
- Weiwudi (@c4h/weiwudi) 1.1.0
- Harumi (harumi) 1.0.1
- Nagarjuna (nagarjuna) 1.1.0
Packages with new features, or with changes that affect transformation results, went to 1.1.0. Packages with bug fixes only went to 1.0.1.
From this release on, we publish to npm from GitHub Actions, and each package carries provenance information that shows which commit it was built from.
Old maps are now aligned with a plain transformation inside each triangle
The biggest change in this release is in the part that converts coordinates between old maps and modern maps.
Maplat connects matching points on an old map and a modern map into a network of triangles, and transforms positions triangle by triangle. Until now, it used a weighted interpolation (weight_buffer) inside each triangle. When we looked into it, we found that this interpolation was actually making the transformation worse.
So we dropped the interpolation. Inside each triangle, positions are now converted with a simple affine transformation. The change spans four libraries: MaplatTransform, MaplatTin, MaplatCore, and Maplat.
Because of this change, positions shown on old maps shift slightly from where they used to be. We treat it as a bug fix, but since the results users see are different, we released it as 1.1.0.
The format version of the transformation data that MaplatTin writes is now 2.00704. Data in the older formats can still be read as is.
Fixes in Maplat and MaplatCore
In Maplat, we fixed a bug where the map switcher swiper stopped looping when there were only two to four maps. Clicking a card now slides that card one step to the center. We also fixed a case where the swiper's position did not match the map after reopening a state saved in the URL.
In the POI list, names and icons are now sanitized, and links are limited to http and https. This is a security fix.
In MaplatCore, the GPS location and POIs are now drawn on a map that actually contains that point. They are no longer drawn on a map whose paper does not cover the spot, and the GPS marker is hidden when you are outside the map. For this, we added a function to MaplatTransform (merc2XyVisibleLayers) that tells which maps cover a given point.
We also fixed several other issues, including broken display after adding and removing POIs repeatedly, tile loading getting stuck partway, and a broken view when a map was initialized in a hidden area.
Updates to the related libraries
Weiwudi now has a per-map cache size limit (cacheMaxBytes). When the limit is exceeded, the least recently used tiles are removed first. Tile fetching through the Service Worker now also works on the first visit to a page, without a reload.
Quyuan now has an entry point that does not depend on Chuci (@c4h/quyuan/template). Chuci has become an optional dependency that you install only when you need it.
Chuci has bug fixes only. We fixed the slide arrows showing up twice with swiper 12, and an error that appeared every time a thumbnail was clicked in the thumbnail view.
Harumi fixes a bug that kept its demo from working offline.
Nagarjuna's public API is the same as in 1.0.0. In this release, we added a preview of a new IME (character input) interface to the demo, as naga.html. It is still a prototype. We plan to release it properly once we have worked out things like how it feels on smartphones.
Chokei, our icon set for stone cultural properties, is not published on npm. We released 2.0.2 on GitHub. The README now comes in English and Japanese, and the tool that generates the icon images has been replaced.
MaplatEditor 1.1.0
MaplatEditor 1.1.0 is available from GitHub Releases.
If you are using 1.0.0, please reinstall with the 1.1.0 installer.
On Windows, MaplatEditor sometimes could not start on PCs with Smart App Control turned on. We had signed only the installer, and the app itself and the files bundled with it were not signed. In 1.1.0, every executable and DLL we ship is signed. We have confirmed that installing, launching, and uninstalling all work on a PC with Smart App Control turned on.
We also made the following fixes.
Exporting a large app now writes the ZIP a little at a time, instead of holding the whole thing in memory. ZIP files larger than 4 GB (ZIP64) are also supported.
We fixed a problem where, in some environments, tiles of maps saved on the PC were not displayed. Unsaved drafts created with 1.0.0 are also displayed as they are.
The app window no longer navigates to external pages or opens unexpected new windows. This is a security fix.
The viewer bundled with exported apps has been updated to Maplat 1.1.0 from this release.
We have installers for Windows x64 and arm64, macOS on Intel and Apple Silicon, and Linux x86_64 and arm64.
From November on, we will keep shipping updates on the first Monday of every month. Please send bug reports and requests to the GitHub Issues of each repository.

