Release notes
Every build for Windows, macOS, and Linux is on the GitHub releases page. The desktop app checks for a newer version on launch and can install it in place.
Current · 2 August 2026
Shape the model's outside edge, inspect the real model while you work, reuse map data as you move, and build dense cities in far less time.
A single-tile model no longer has to be rectangular. Choose a circle or ellipse, or draw a polygon on the map. Puzzle pieces clip cleanly at the boundary and a one-piece display tray follows the same outline. The rectangle stays the default. Shaped outlines do not yet work with super-tiles, split trays, or front-lip tray labels.
The background 3D preview now uses the same Rust mesh builders as export. It can show puzzle cuts, shaped edges, buildings, bridges, mapped layers, labels, mount cuts, and whole or split trays before you generate. It names each stage, shows progress, and lets you cancel stale work without losing the last good view. Fast, Detailed, and High settings trade speed for detail. You can also place markers in the 3D view and choose which member of a super-tile grid to inspect.
OpenStreetMap data now caches in stable tiles, so nearby pans, zoom changes, rotations, and super-tiles reuse what is already on disk. A close view fetches added streets or paths only when it needs them. Roads, ferries, water, buildings, railways, lifts, and airports keep separate tile sets, so one failed detail request no longer throws away layers that loaded.
The mesh builder now looks up only the buildings and lines near each piece, reuses clipped geometry, and batches road work. In the checked-in Slow Tacoma case, earlier runs took 24–38 seconds; the new cold and warm runs both took about 7.9 seconds while keeping all 163,802 mapped buildings. Building filters remain optional and keep all mapped buildings by default. If the combined 3MF is enough, export can also skip the separate STL for every piece.
30 July 2026
Colors read off the place itself, a sea that lies flat, a vertical scale you choose, and a way to keep the map data a print came from.
The four land-cover colors are one flat color each, which is right for a map and thin for a landscape. Two new modes cluster ESA WorldCover Sentinel-2 imagery of the area itself into a small printable palette — shades within each mapped class, or the imagery alone. Each discovered color takes a filament slot, and one that lands on a class color shares it. See the color printing guide.
A real sea is level; the elevation source hands back whatever seabed it holds, which prints as blue hills in a bay. A coastal map can now flatten the water joined to the open sea, at mean sea level, the nearest NOAA station's low or high tide, or an offset you set. The mapped coastline is consulted first, so a below-sea-level lake touching the map edge is not mistaken for the ocean. See choosing what the map draws.
Terrain height was always fitted to the millimetres you asked for, which makes every area print the same height whatever the ground does. You can now hold a fixed multiplier instead and let the height follow the terrain, so separate models compare — and measure it from the area's lowest ground, sea level, or an elevation you name. Switching between the two translates the value, so the model does not move. See elevation, height, and detail.
A finished job can pack every elevation tile, land-cover tile, and map response it read into one file. Import it on another machine and the same model builds with no network at all — or keep it as an archive against the day a provider retires a tile.
28 July 2026
One fix: printed pieces no longer wear a grey outline around every edge.
A piece's side wall is a cut through the terrain, and it printed in the rock color from the base right up to the rim. Seen from anything but straight above, that drew a grey outline around every piece — worst on hills, where the wall is tallest and faces you.
The top of the wall now carries the land cover from the surface directly above, so the color runs over the rim and around the tabs instead of stopping dead at the top edge. Below the band the cut face is still rock, because a cut through a hill is rock.
Edge color bleed on the Surface tab sets how deep the band runs, from 0 to 2 mm, starting at 0.4 mm — two layers at the usual 0.2 mm layer height. Set it to a whole number of the layers you slice at, so the band ends on a layer boundary rather than part way through one. Zero turns it off and gives back the plain rock wall.
28 July 2026
Filament slots you can actually load, two new things to put on a map, and a way to save a whole job in one step.
Mapped ferry routes draw as their own layer, in a deep teal of their own or folded in with the roads, alongside railways and aerial lifts. Like the others, a ferry costs a filament only where the map really has a crossing — an inland map never spends one. See choosing what the map draws.
Place building highlights, color dots, blank flags, and named flags by latitude and longitude. Named flags emboss their text in a bundled font, with the banner width, height, and text size under your control. Manual surface labels follow the terrain; raised plaques give text a flat backing. Each label has its own print size and map rotation.
A 3MF now carries a color for each feature the model really contains and nothing more. Two layers set to one color share a slot, a layer the map has none of costs nothing, and every slot names a real filament preset instead of leaving the slicer to guess. The Colors tab shows which filament number each layer prints from and reorders them to match the spools already loaded. See the color printing guide.
Write a job's print files, or its STLs, to a folder in one step — with toposaic-setup.json, the setup that made them, alongside. Saved setups now offer to store changes when the model drifts from them, and keep their last five versions to roll back to. See saving setups and files.
Earlier
Notes for 0.3 and earlier are on the GitHub releases page, which also carries every downloadable build.
More projects from theatr.us