<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Open Waters: Charts releases</title>
    <link>https://openwaters.io/updates/charts/releases/</link>
    <atom:link href="https://openwaters.io/updates/charts/releases/rss.xml" rel="self" type="application/rss+xml" />
    <description>New releases from Charts.</description>
    <language>en</language>
    <item>
      <title>Depth bands and isobaths from zoom 4 (Seascape style 0.4.0)</title>
      <link>https://openwaters.io/updates/seascape-style-0-4-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-style-0-4-0/</guid>
      <pubDate>Fri, 16 Oct 2026 13:28:24 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;The style for the &lt;code&gt;v2026.10.16&lt;/code&gt; tiles.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bands mode and isobaths start at z4 instead of z6 (#214).&lt;/li&gt;
&lt;li&gt;The coarse depth ladders carry the 10 and 20 m contours, so shallow seas split into bands at low zoom (#214).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BANDS_MIN_ZOOM&lt;/code&gt; is exported for apps that switch between Bands and Relief.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Shallow seas split into depth bands at low zoom (Seascape 2026.10.16)</title>
      <link>https://openwaters.io/updates/seascape-2026-10-16/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-2026-10-16/</guid>
      <pubDate>Fri, 16 Oct 2026 13:06:27 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;Shallow seas no longer turn into one solid blue band at low zoom, and Bands mode is a compiled chart partition from z4 up.&lt;/p&gt;
&lt;h2&gt;Chart fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shallow seas split at 10, 20 and 50 m at low zoom&lt;/strong&gt; (#214). The coarse tiers carried no isobath shallower than 50 m (z7 to 8) or 200 m (z6), so a shallow sea like the Kattegat or the North Sea painted one band in the darkest tint. Each tier now follows NOAA&amp;#39;s ENC Design Handbook contour set for its scale, plus the 10 and 20 m contours wherever that set lacks them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bands mode and isobaths start at z4&lt;/strong&gt; (#214). A new z4 tier with the Overview contour set replaces the raster handoff at z5, so the shelf no longer changes tint between z5 and z6.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Isobaths follow the seabed at z7 to z10&lt;/strong&gt; (#214). Each tier is cut one zoom finer than before and keeps a vertex per pixel at the last zoom it serves. At z8 over the Kuril arc the median segment went from 6.4 to 3.9 px.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Depth bands below 4,000 m and in the deepest trenches&lt;/strong&gt; (#214). Water deeper than a tier&amp;#39;s deepest contour got no band at all: the deep ocean at z4 to z6, and trenches past 10,000 m or 5,000 fathoms at every zoom. A floor below the deepest ocean closes it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shoal soundings show with their ring&lt;/strong&gt; (#214). A least depth inside a 10 to 100 m contour now shows from the zoom that contour draws at.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pipeline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Coarse tiers reuse the native tier&amp;#39;s tidal-water union, the cost that dominated the slowest stems: the Arctic stem 4-3-3-8 went from 316 to 101 minutes (#214).&lt;/li&gt;
&lt;li&gt;The low-zoom vector bundle writes below its top zoom at detail 11, so the Philippines z4 tile fits under tippecanoe&amp;#39;s size ceiling (#215).&lt;/li&gt;
&lt;li&gt;Every commit that touches the style or viewer gets a viewer preview, and the style package now releases from &lt;code&gt;style-v*&lt;/code&gt; tags once the live tiles carry its pipeline (#213).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Seascape is not an official Electronic Navigational Chart and is never a replacement for one. Not for navigational use.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Soundings placed at the transducer, none lost or sent twice; requires Node 24 (Crowd depth 1.3.0)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-3-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-3-0/</guid>
      <pubDate>Thu, 15 Oct 2026 19:55:06 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;More accurate soundings, and none lost or sent twice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Requires Node 24.&lt;/strong&gt; Signal K servers running an older Node need to upgrade before installing this version (#115).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Positions at the transducer&lt;/strong&gt;: each sounding&amp;#39;s position is moved from the GPS antenna to the transducer using your heading, or your course over ground while you are moving faster than about 1 knot. A sounding that can&amp;#39;t be placed this way is no longer uploaded with the antenna&amp;#39;s position (#134)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Correct depth reference&lt;/strong&gt;: reports say what depths are measured from: the waterline, the transducer, or unknown. Depths read through the History API now get the same transducer depth or draft correction as live data, and the transducer depth below the waterline is optional (#128)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sensor offsets in the standard frame&lt;/strong&gt;: report metadata gives sensor positions from the transducer, as forward, starboard and down (#129)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Late history providers&lt;/strong&gt;: after a restart, the plugin waits up to 10 minutes for a history provider such as signalk-to-influxdb2 to come up, recording meanwhile, before it settles on its own storage (#132)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No lost or duplicate soundings&lt;/strong&gt;: each report stops 5 minutes short of the current time, so soundings a history provider is still writing go out in the next report instead of being skipped. A sounding stamped exactly on a report boundary is sent once, not twice. &lt;code&gt;BATHY_REPORT_DELAY&lt;/code&gt; changes the delay (#136)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;End-to-end tests&lt;/strong&gt;: CI now uploads soundings through a real Signal K server and checks them against the CSB schema, and runs on pull requests from forks (#131)&lt;/li&gt;
&lt;li&gt;Dependency updates (#114)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to @dirkwa for most of this release.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Depth areas, isobaths, and soundings compiled per zoom level (Seascape 2026.10.15)</title>
      <link>https://openwaters.io/updates/seascape-2026-10-15/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-2026-10-15/</guid>
      <pubDate>Thu, 15 Oct 2026 18:01:52 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;Depth areas and isobaths are now compiled per zoom tier, the way an ENC is compiled per usage band, and the soundings follow chart practice for selection and rounding.&lt;/p&gt;
&lt;h2&gt;Chart fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Depth areas and isobaths compiled per zoom&lt;/strong&gt; (#195). Each zoom tier (z6, z7 to 8, z9 to 10, z11 to 12, z13 and up) is its own complete partition, cut from the bathymetry at that tier&amp;#39;s resolution with the isobath ladder a chart draws at that scale. Zooming out can only shoal, never deepen, and bands too small to read at a tier&amp;#39;s scale merge into their shallower neighbour. A coarse source viewed closely shows its own content rather than 2 m bands interpolated from kilometre cells. The emphasized safety contour follows the ladder drawn at each zoom.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Low-zoom isobaths keep their shape&lt;/strong&gt; (#210). At z6 to z9 the lines had been thinned to long straight segments across shelves and island arcs; they now keep a vertex per pixel and draw with round joins.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No more false shallow water along ditches and small canals&lt;/strong&gt; (#196). Under coarse sources, polder ditches and canals narrower than the source&amp;#39;s own cell had read as 0 to 2 m depth bands with soundings on them (the Haarlemmermeer). Water narrower than the source cell now stays land in that source and shows as unknown depth.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exact datum is unknown water, never foreshore&lt;/strong&gt; (#195). A depth of exactly 0 is the land sentinel and the fill for water a source holds no depth for; it no longer draws as drying.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unknown-depth water fills no longer compound&lt;/strong&gt; (#195). Abutting water polygons inside a lake had overlapped into a dark lattice along every outline; the fills now dissolve per tile.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Soundings in line with chart standards&lt;/strong&gt; (#180). The selection keeps the least depths a chart ranks first (the 1 m floor that discarded real shoals is gone), rounds toward the shoal side, and thins by the chart&amp;#39;s spacing rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No more horizontal stripes across the map at fixed latitudes&lt;/strong&gt; (#192). Unknown-water rows on the easternmost tiles had wrapped around the antimeridian.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pipeline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Depth-area tier files declare their full read sets, so a bbox smoke and a planet build heal the same stems (#195); the vector archive&amp;#39;s census measures each feature at its own tier&amp;#39;s zoom (#195); a bundle whose tiles overflowed fails instead of merging bands (#210).&lt;/li&gt;
&lt;li&gt;Depth-area contouring uses upstream GDAL&amp;#39;s fast polygon mode (#193); the planet build aborts early when the box&amp;#39;s disk can&amp;#39;t hold the run (#178) and stops a doomed build sooner (#194); a GEOS overlay failure on one stem no longer stops the planet (#208).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Seascape is not an official Electronic Navigational Chart and is never a replacement for one. Not for navigational use.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Tiles at half the size, with land areas (Maritime zones 0.2.0)</title>
      <link>https://openwaters.io/updates/maritime-zones-0-2-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/maritime-zones-0-2-0/</guid>
      <pubDate>Thu, 01 Oct 2026 20:11:45 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;Maritime zone tiles for @openwaters/maritime-zones 0.2.0. The package downloads the tiles it needs from this release and checks each against the sha256 in &lt;code&gt;tiles.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;636 seekable zstd tiles (256 KiB frames, level 19), 142 MB in total. Sizes and SHA-256 cover the compressed downloads.&lt;/p&gt;
&lt;p&gt;Zone and boundary features: Marine Regions Maritime Boundaries Geodatabase (Flanders Marine Institute), CC-BY 4.0. Land features: Flanders Marine Institute (2020). &lt;a href=&quot;https://marineinfo.org/doc/dataset/8873&quot;&gt;World Countries Geodatabase&lt;/a&gt;, CC-BY 4.0, adapted from ESRI World Countries 2014 with DeLorme (2014) source data. Country polygon rings come from MarineRegions:worldcountries_esri_2014 and include inland borders and holes. The source hashes are recorded in upstream.lock.json. Marine Regions land_v9 is not used.&lt;/p&gt;
&lt;p&gt;VLIZ has approved derived-tile redistribution and the monthly upstream-check load. Maintainers monitor Marine Regions updates to avoid distributing deprecated versions. World Countries supplies a proxy for normal baselines, not a complete legal-baseline model. The v0.1.0 release uses OpenStreetMap coastlines and retains its own NOTICE and ODbL 1.0 terms. npm publication is authorized and follows the matching tile release; see CONTRIBUTING.md for publishing instructions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internal Waters (v4, world, 2023): 113 features&lt;/li&gt;
&lt;li&gt;Archipelagic Waters (v4, world, 2023): 23 features&lt;/li&gt;
&lt;li&gt;Territorial Seas (12 NM) (v4, world, 2023): 230 features&lt;/li&gt;
&lt;li&gt;Contiguous Zones (24 NM) (v4, world, 2023): 220 features&lt;/li&gt;
&lt;li&gt;Exclusive Economic Zones (200 NM) (v12, world, 2023): 285 features&lt;/li&gt;
&lt;li&gt;High Seas (v2, world, 2024): 1 feature&lt;/li&gt;
&lt;li&gt;World countries (ESRI, 2014): 294 features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Not for navigation.&lt;/strong&gt; Marine Regions data &amp;quot;is not meant to be used for legal, economical … or navigational purposes&amp;quot; and &amp;quot;has no legal value whatsoever&amp;quot;. See the attached NOTICE for the citation and licence of each layer.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>First maritime zone tiles (Maritime zones 0.1.0)</title>
      <link>https://openwaters.io/updates/maritime-zones-0-1-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/maritime-zones-0-1-0/</guid>
      <pubDate>Thu, 01 Oct 2026 02:59:09 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;Maritime zone tiles for @openwaters/maritime-zones 0.1.0. The package downloads the tiles it needs from this release and checks each against the sha256 in &lt;code&gt;tiles.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;586 seekable zstd tiles (256 KiB frames, level 19), 282 MB in total. Sizes and SHA-256 cover the compressed downloads.&lt;/p&gt;
&lt;p&gt;Zone and boundary features: Marine Regions Maritime Boundaries Geodatabase (Flanders Marine Institute), CC-BY 4.0. Coastline features: © OpenStreetMap contributors, &lt;a href=&quot;https://opendatacommons.org/licenses/odbl/1-0/&quot;&gt;ODbL 1.0&lt;/a&gt;. The source archive is recorded in upstream.lock.json. Marine Regions land_v9 is not used.&lt;/p&gt;
&lt;p&gt;This is an experimental release while VLIZ&amp;#39;s confirmation of derived-tile redistribution is pending. The release and Pages mirror may be removed. The package remains private and is not published to npm.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internal Waters (v4, world, 2023): 113 features&lt;/li&gt;
&lt;li&gt;Archipelagic Waters (v4, world, 2023): 23 features&lt;/li&gt;
&lt;li&gt;Territorial Seas (12 NM) (v4, world, 2023): 230 features&lt;/li&gt;
&lt;li&gt;Contiguous Zones (24 NM) (v4, world, 2023): 220 features&lt;/li&gt;
&lt;li&gt;Exclusive Economic Zones (200 NM) (v12, world, 2023): 285 features&lt;/li&gt;
&lt;li&gt;High Seas (v2, world, 2024): 1 feature&lt;/li&gt;
&lt;li&gt;OpenStreetMap coastlines (WGS84), ODbL 1.0: 879204 features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Not for navigation.&lt;/strong&gt; Marine Regions data &amp;quot;is not meant to be used for legal, economical … or navigational purposes&amp;quot; and &amp;quot;has no legal value whatsoever&amp;quot;. See the attached NOTICE for the citation and licence of each layer.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Water body names and boat rentals (Seamap 0.3.1)</title>
      <link>https://openwaters.io/updates/seamap-0-3-1/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seamap-0-3-1/</guid>
      <pubDate>Tue, 22 Sep 2026 23:05:08 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Name islands, bays, straits, and other water bodies (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/71&quot;&gt;#71&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Quieter restricted-area fills and paper-style boundaries (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/70&quot;&gt;#70&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Show boat rentals on the chart (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/75&quot;&gt;#75&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Serve label glyphs from the Open Waters font stack (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/77&quot;&gt;#77&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Fix seamarks not showing on the chart (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/85&quot;&gt;#85&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>New icon and App Store listing (Crowd depth 1.2.6)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-2-6/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-2-6/</guid>
      <pubDate>Mon, 31 Aug 2026 14:07:27 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;Polish for the Signal K AppStore listing — no behavior changes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New icon&lt;/strong&gt;: sonar pings from a sailboat down to the seabed, in the Open Waters palette (#113)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AppStore metadata&lt;/strong&gt;: display name &amp;quot;Crowd Depth&amp;quot;, a fuller description, and expanded keywords (#113)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIT license&lt;/strong&gt;, now bundled with the npm package (#113)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;README rewrite&lt;/strong&gt;: leads with why crowdsourced bathymetry matters and how reports flow through Open Waters as an IHO trusted node to the IHO DCDB (#113)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New CONTRIBUTING.md&lt;/strong&gt;: repo layout, dev/test workflows, and the release process (#112)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Readable device names in the source menus (Crowd depth 1.2.5)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-2-5/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-2-5/</guid>
      <pubDate>Mon, 31 Aug 2026 01:24:36 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Fixed friendly device names in the Position/Depth source dropdowns (#111, first half of #93). The config UI now shows e.g. &amp;quot;Furuno SCX-20 (IPG100.c0788c00e7e04312)&amp;quot; instead of the raw sourceRef, including for canName-form refs (&lt;code&gt;useCanName&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Unknown-depth water without seams or gaps (Seascape 2026.08.17)</title>
      <link>https://openwaters.io/updates/seascape-2026-08-17/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-2026-08-17/</guid>
      <pubDate>Mon, 17 Aug 2026 16:47:55 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;Unknown-depth water no longer shows gaps at tile seams or along shorelines, and the depth-area geometry underneath is now valid by construction.&lt;/p&gt;
&lt;h2&gt;Chart fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No more hairline seams across unknown-depth water.&lt;/strong&gt; Inside large lakes with no depth data (Great Salt Lake, Lake Peipus), tile boundaries showed through as a thin line of background across the water. Unknown-depth polygons now overlap their neighbours at every boundary they were cut on instead of abutting them, so the fills draw seamlessly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unknown-depth water now reaches the shoreline.&lt;/strong&gt; The same change closes the background-coloured slivers that appeared between the water fill and the land fill along shores: the water extent overlaps slightly under land, and land draws on top.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deep contours no longer trace a pixel lattice.&lt;/strong&gt; Contours below 250 m were cut from a block-coarsened grid whose right-angle treads were plainly visible where steep coasts put the 300 m curve near shore (Manu&amp;#39;a). They now come from the full-resolution surface — measured smaller in shipped tile bytes, since smooth curves simplify better than staircases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pipeline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Depth-area rows are snapped to the write grid with validity guaranteed by GEOS, replacing after-the-fact repair; the rare arrangements snap-rounding refuses take gated fallbacks under the same area-conservation checks, and a row no repair can save fails the build naming its geometry. The previous pipeline quietly shipped a handful of invalid polygons per build; this one ships none.&lt;/li&gt;
&lt;li&gt;Dependency refresh across the toolchain, GDAL 3.13.2 among them, now tracked by Dependabot.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Seascape is not an official Electronic Navigational Chart and is never a replacement for one. Not for navigational use.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Dock fuel, wreck buoys, and cleaner zoomed-out charts (Seamap 0.3.0)</title>
      <link>https://openwaters.io/updates/seamap-0-3-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seamap-0-3-0/</guid>
      <pubDate>Mon, 17 Aug 2026 01:08:32 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Warm the land color for better contrast with the water (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/13&quot;&gt;#13&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Show emergency wreck-marking buoys in their blue and yellow stripes (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/12&quot;&gt;#12&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Show which fuels a dock sells (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/14&quot;&gt;#14&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Publish the chart&amp;#39;s OSM tags to taginfo (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/15&quot;&gt;#15&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Tell mappers the chart reads their fuel tagging (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/16&quot;&gt;#16&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Show floating booms, shark nets, and mooring dolphins (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/17&quot;&gt;#17&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Colour the shore amenity badges by category (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/18&quot;&gt;#18&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Show fewer, better-chosen symbols when zoomed out (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/20&quot;&gt;#20&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Space out the arrows in traffic separation lanes (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/34&quot;&gt;#34&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Fix topmarks floating above pile beacons (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/37&quot;&gt;#37&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Stop charting radar reflectors on buoys (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/36&quot;&gt;#36&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Show traffic separation schemes when zoomed further out (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/35&quot;&gt;#35&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Use vector depth areas by default instead of raster bands/shading (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/38&quot;&gt;#38&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Simplify local development to a single dev server (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/39&quot;&gt;#39&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Draw submarine cables and pipelines as patterned lines (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/42&quot;&gt;#42&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Stand landmark symbols on their charted position (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/44&quot;&gt;#44&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Draw icons at their display size so they stay sharp (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/45&quot;&gt;#45&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Label buoys and beacons with their name and light together (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/47&quot;&gt;#47&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Keep light sector arcs visible at higher zooms (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/48&quot;&gt;#48&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Add Dependabot to keep dependencies up to date (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/50&quot;&gt;#50&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Update to seascape 0.3.0 and expose style options in the viewer (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/62&quot;&gt;#62&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Six new high-resolution depth sources in four countries (Seascape 2026.08.16)</title>
      <link>https://openwaters.io/updates/seascape-2026-08-16/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-2026-08-16/</guid>
      <pubDate>Sun, 16 Aug 2026 22:38:52 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;Six new high-resolution bathymetry sources across four countries, restored drying-area rendering on macro-tidal coasts, and a hardened data pipeline behind them.&lt;/p&gt;
&lt;h2&gt;New coverage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Norway, Svalbard and the Barents Sea&lt;/strong&gt; — Kartverket&amp;#39;s declassified 50 m sea terrain model, chart datum inshore (~z11).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Brittany, France&lt;/strong&gt; — SHOM&amp;#39;s Litto3D coastal lidar at 5 m, the chart&amp;#39;s first French source. Depths are corrected onto French chart datum per pixel by a new reference surface built from SHOM&amp;#39;s own BATHYELLI model, validated against their per-port tables (median residual 0.00 m).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;England &amp;amp; Wales nearshore&lt;/strong&gt; — three complementary sources: the Channel Coastal Observatory&amp;#39;s multibeam surveys (0.25–4 m, the south and southwest coasts&amp;#39; first high-resolution coverage), the Environment Agency&amp;#39;s multibeam archive (0.5 m, mostly east coast), and the DORIS seabed survey of the Dorset coast (1 m).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;German tidal estuaries&lt;/strong&gt; — WSV&amp;#39;s DGM-W river terrain models for the Elbe, Weser and Jade at 2 m, on the German chart datum.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;25 large lakes gain real depths&lt;/strong&gt; — Ladoga, Onega, Winnipeg, Great Bear, Great Slave, Vänern, Balkhash, Biwa, Champlain and more, from the Global Lake Database. These previously rendered as flat unknown-depth water, including a corrupt GEBCO patch across southern Lake Ladoga now replaced by digitised bathymetry.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every source is licence-vetted per grid before it ships, and each carries its attribution and provenance in the tile metadata.&lt;/p&gt;
&lt;h2&gt;Chart fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Drying areas no longer vanish on big-tide coasts.&lt;/strong&gt; Large connected foreshores (Brittany, and any coast where high-resolution data meets a large tidal range) could be silently dropped from the vector chart during writing; 232 km² was missing around Saint-Malo alone. Fixed, with guards that make any recurrence a loud failure instead of a quiet hole.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tideless coasts no longer show phantom green foreshore.&lt;/strong&gt; Drying-area tint is now gated on water that can actually dry, so lake and low-tide-range shorelines render as plain water.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Style&lt;/strong&gt;: the safety contour gets its own color and stronger emphasis, depth labels drop their units, hillshade is now a viewer option, and relief band edges align exactly with contour lines. These ship in the style package as &lt;a href=&quot;https://www.npmjs.com/package/@openwaters/seascape&quot;&gt;&lt;code&gt;@openwaters/seascape&lt;/code&gt; 0.3.0&lt;/a&gt; on npm.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pipeline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Depth-area artifacts self-heal: corrupt or mistyped files on the build store are detected and repaired or refetched automatically.&lt;/li&gt;
&lt;li&gt;Raw source downloads are no longer retained after processing — the staged data is the durable record, cutting storage while keeping every build reproducible from mirrors.&lt;/li&gt;
&lt;li&gt;Build memory reservations refit from measured usage; planet builds should run roughly twice as fast.&lt;/li&gt;
&lt;li&gt;Weekly garbage collection re-rooted on the published mosaic, and the tile contract now carries a declared schema version.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Seascape is not an official Electronic Navigational Chart and is never a replacement for one. Not for navigational use.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>US coastal depths referenced to chart datum (Seascape 2026.08.10)</title>
      <link>https://openwaters.io/updates/seascape-2026-08-10/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-2026-08-10/</guid>
      <pubDate>Mon, 10 Aug 2026 12:04:02 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href=&quot;https://openwatersio.github.io/seascape/&quot;&gt;demo viewer&lt;/a&gt; · &lt;a href=&quot;https://openwaters.io/charts/seascape&quot;&gt;openwaters.io/charts/seascape&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Chart quality&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;US coastal depths are referenced to chart datum&lt;/strong&gt; (#117). CUDEM ships on NAVD88, a land survey datum sitting anywhere from half a metre below MLLW in the Columbia River estuary to more than 1.7 m above it in New England and Alaska, so uncorrected Atlantic depths read about a metre too deep and drying flats classified as navigable water. Depths are now corrected per pixel against NOAA&amp;#39;s VDatum separation grids, the Columbia River against the datum NOAA actually charts it with, and the Pacific territories against per-island separations. The build refuses to publish a surface that misses the published CO-OPS separations at 17 tide stations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Drying flats and inland lakes portray correctly&lt;/strong&gt; (#113): drying is no longer emitted in water with no chart datum to dry against, and tidal flats stop shattering into sub-legible confetti.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shorelines are smooth again at high zoom&lt;/strong&gt; (#118). Coasts in places like Nassau Sound rendered as a hard staircase in both the depth shading and the depth areas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Great Lakes stop charting land as deep water&lt;/strong&gt; (#114): the NCEI grids carry land topography across their full rectangular extents, which put downtown Hamilton at −72 m.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Below-sea-level land renders as land at low zoom&lt;/strong&gt; (#112), so the Caspian Depression is no longer opaque unknown-depth water when you zoom out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Swimming pools are not charted&lt;/strong&gt; (#111). The water mask kept all 25.8M polygonal non-ocean features, and every one of them became an unknown-depth water polygon.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Under the hood&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The inland water mask gates itself before publishing: a feature the filter admits cannot be silently lost, and a set of known lakes must still be present. Both checks caught real defects in this release.&lt;/li&gt;
&lt;li&gt;The mask&amp;#39;s source data is downloaded and verified before it is read, rather than streamed over thousands of ranged requests that cannot distinguish a torn page from a short one.&lt;/li&gt;
&lt;li&gt;Build logs are one line per job (#119), where a recent build spent 1,852 of 2,103 lines on scaffolding.&lt;/li&gt;
&lt;li&gt;The hillshade style layer is renamed to avoid colliding with land hillshade (#115).&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠ Not for navigational use&lt;/strong&gt;
US coastal depths are referenced to MLLW; elsewhere the vertical datum varies by source and depths are not reduced to a chart datum. Nothing here accounts for tides or water level. Use official nautical charts for navigation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Note on versioning:&lt;/strong&gt; releases of the tiles move to a date, starting here. The &lt;code&gt;@openwaters/seascape&lt;/code&gt; npm package keeps semantic versioning on its own cadence, because it has an API that consumers actually pin.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Lights, buoys, and many more charted features (Seamap 0.2.0)</title>
      <link>https://openwaters.io/updates/seamap-0-2-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seamap-0-2-0/</guid>
      <pubDate>Sat, 08 Aug 2026 19:32:17 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Draw many more of the features already in the map data (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/1&quot;&gt;#1&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Draw unsurveyed water as a hazard stipple and make the style self-contained (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/2&quot;&gt;#2&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Place labels consistently around symbols and fix duplicated names (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/3&quot;&gt;#3&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Describe and draw lights the way charts do (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/5&quot;&gt;#5&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Fix cardinal and isolated danger buoy colours (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/6&quot;&gt;#6&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Keep sampled seabed depths out of the charted depth (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/7&quot;&gt;#7&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Colour untagged lateral marks by IALA region (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/8&quot;&gt;#8&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Draw floating piers as pontoons and stop disguising racons (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/9&quot;&gt;#9&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Ferry symbols, italic light text, racon labels, and other chart details (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/10&quot;&gt;#10&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Assess hazards against the mariner&amp;#39;s safety depth (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/11&quot;&gt;#11&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Chores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preview every change and deploy with planet builds (&lt;a href=&quot;https://github.com/openwatersio/seamap/pull/4&quot;&gt;#4&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Reports continue after scans with no new data (Crowd depth 1.2.4)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-2-4/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-2-4/</guid>
      <pubDate>Sat, 08 Aug 2026 17:23:28 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Advance report cursor after empty scans (&lt;a href=&quot;https://github.com/openwatersio/crowd-depth/pull/108&quot;&gt;#108&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Every source at its native resolution, and depth areas return (Seascape 0.3.0)</title>
      <link>https://openwaters.io/updates/seascape-0-3-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-0-3-0/</guid>
      <pubDate>Mon, 03 Aug 2026 02:15:38 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href=&quot;https://openwatersio.github.io/seascape/&quot;&gt;demo viewer&lt;/a&gt; · &lt;a href=&quot;https://openwaters.io/charts/seascape&quot;&gt;openwaters.io/charts/seascape&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Chart quality&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Every source now renders at its native resolution&lt;/strong&gt; (#83). Tiles build as variable-depth pyramids: regions with high-resolution surveys carry their full detail down to deep zooms, while coarse open ocean stops early — no more planet-wide resolution ceiling. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Depth areas are back&lt;/strong&gt; (#97): vector depth-band shading returns, seam-correct across tile boundaries and fast enough to build shallow, fragmented marsh coasts at full zoom.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The DEM publishes depth below water&lt;/strong&gt; (#93): land is a sentinel, 0 is unambiguous, deep ocean is clamped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coarse sources are clipped by a land mask&lt;/strong&gt; (#101, #104), so low-resolution global data no longer shades over land, while harbors and lagoons stay water.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Sources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;NZ Coastal LiDAR&lt;/strong&gt; joins the mosaic (#98).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Declarative source ingestion&lt;/strong&gt; (#100): a new source is a config entry, not a bespoke pipeline.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Demo &amp;amp; serving&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bounding-box and tile-grid overlays in the demo viewer.&lt;/li&gt;
&lt;li&gt;The preview worker returns 404 for an unstaged build instead of an unhandled 500 (#102).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Under the hood&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The whole pipeline, source ingestion included, is one Snakemake DAG (#92).&lt;/li&gt;
&lt;li&gt;Publishing skips re-hashing unchanged tiles (a 40-minute saving on planet builds), and a release promotes the mosaic pointer so raster and vector always ship from the same build.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠ Not for navigational use&lt;/strong&gt;
Depths are not reduced to a chart datum and do not account for tides or water level, so they are not charted depths. Use official nautical charts for navigation.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Reports go through during NOAA outages (Crowd depth 1.2.3)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-2-3/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-2-3/</guid>
      <pubDate>Thu, 30 Jul 2026 15:15:08 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Report to new API that transparently handles NOAA outages (&lt;a href=&quot;https://github.com/openwatersio/crowd-depth/pull/104&quot;&gt;#104&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Clearer errors when a report fails (Crowd depth 1.2.2)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-2-2/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-2-2/</guid>
      <pubDate>Wed, 29 Jul 2026 12:01:49 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Record submission outcomes and improve error reporting (&lt;a href=&quot;https://github.com/openwatersio/crowd-depth/pull/103&quot;&gt;#103&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Less SD card wear (Crowd depth 1.2.1)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-2-1/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-2-1/</guid>
      <pubDate>Wed, 29 Jul 2026 00:06:30 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Reduce disk sync frequency to limit SD card wear (&lt;a href=&quot;https://github.com/openwatersio/crowd-depth/pull/101&quot;&gt;#101&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Chart-style deep water and sharper shallows (Seascape 0.2.0)</title>
      <link>https://openwaters.io/updates/seascape-0-2-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-0-2-0/</guid>
      <pubDate>Tue, 21 Jul 2026 13:12:17 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href=&quot;https://openwatersio.github.io/seascape/&quot;&gt;demo viewer&lt;/a&gt; · &lt;a href=&quot;https://openwaters.io/charts/seascape&quot;&gt;openwaters.io/charts/seascape&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Chart quality&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Deep water is generalized like a chart, not a survey.&lt;/strong&gt; Depth shading and contours below 200 m are aggressively smoothed and contour intervals now follow zoom-tiered ladders, so open-ocean zooms show clean, readable isobaths instead of survey noise. Detail from 0–30 m — the water you navigate — is untouched.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shallow detail survives above a region&amp;#39;s native zoom&lt;/strong&gt; (#15): overzoomed areas keep their bank and channel definition.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inland waters&lt;/strong&gt; (#63): lakes now shade from their own surface levels rather than sea level.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rebuilt drying geometry&lt;/strong&gt; (#65).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Sources &amp;amp; coverage&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;NOAA S-102 and CUDEM now cover US territories&lt;/strong&gt; (Puerto Rico, USVI, Pacific territories) (#81).&lt;/li&gt;
&lt;li&gt;Volatile upstream sources (S-102, CUDEM) are &lt;strong&gt;mirrored&lt;/strong&gt; before builds, so upstream churn can&amp;#39;t break reproducibility (#84).&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;source-coverage layer&lt;/strong&gt; (&lt;code&gt;coverage.pmtiles&lt;/code&gt;) shows each source&amp;#39;s footprint — toggle it in the demo (#60).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Demo &amp;amp; serving&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Mapterhorn land relief in the demo viewer (#89), OSM base-map toggle, mobile fixes.&lt;/li&gt;
&lt;li&gt;Fixed an out-of-memory on overzoomed raster decode (#67); CORS headers on error responses; worker logging.&lt;/li&gt;
&lt;li&gt;MapLibre 5.6–5.11 compatibility (#56).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Under the hood&lt;/h3&gt;
&lt;p&gt;The entire build is now a &lt;a href=&quot;https://snakemake.github.io&quot;&gt;Snakemake&lt;/a&gt;-driven incremental engine (#90, #91): the planet mosaic persists between builds, and every artifact rebuilds exactly when its inputs, parameters, or scope change and never otherwise.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠ Not for navigational use&lt;/strong&gt;
Depths are not reduced to a chart datum and do not account for tides or water level, so they are not charted depths. Use official nautical charts for navigation.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>ISO 8601 timestamps in the plugin status (Crowd depth 1.2.0)</title>
      <link>https://openwaters.io/updates/crowd-depth-1-2-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-2-0/</guid>
      <pubDate>Mon, 13 Jul 2026 22:33:06 GMT</pubDate>
      <category>Release</category>
      <description>&lt;ul&gt;
&lt;li&gt;Use ISO 8601 for report timestamps in plugin status (&lt;a href=&quot;https://github.com/openwatersio/crowd-depth/pull/91&quot;&gt;#91&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Chores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade API to Express 5 (&lt;a href=&quot;https://github.com/openwatersio/crowd-depth/pull/87&quot;&gt;#87&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Seascape 0.1.0</title>
      <link>https://openwaters.io/updates/seascape-0-1-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/seascape-0-1-0/</guid>
      <pubDate>Sun, 05 Jul 2026 19:01:55 GMT</pubDate>
      <category>Release</category>
      <description>&lt;p&gt;First public release of Seascape: free bathymetry tiles for MapLibre and Mapbox GL, built from 23 global and regional sources.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href=&quot;https://openwatersio.github.io/seascape/&quot;&gt;demo viewer&lt;/a&gt; · &lt;a href=&quot;https://openwaters.io/charts/seascape&quot;&gt;openwaters.io/charts/seascape&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two tile sets come off the same merged depth model. The raster set is a Terrarium-encoded DEM for depth shading, hillshade, and 3D terrain. The vector set carries depth contours, spot soundings, and drying areas.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;new maplibregl.Map({
  container: &amp;quot;map&amp;quot;,
  style: &amp;quot;https://tiles.openwaters.io/seascape/style.json&amp;quot;,
});
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;What&amp;#39;s included&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tiles.openwaters.io/seascape/style.json&quot;&gt;&lt;code&gt;/style.json&lt;/code&gt;&lt;/a&gt; is a complete nautical style: depth shading in chart colors, isobaths with labels, spot soundings, and drying areas. &lt;code&gt;?unit=m|ft|fm&lt;/code&gt; picks the depth unit, and &lt;code&gt;?safety=&amp;lt;metres&amp;gt;&lt;/code&gt; shades water shallower than your safety depth as a hazard.&lt;/li&gt;
&lt;li&gt;The endpoint at &lt;code&gt;https://tiles.openwaters.io/seascape&lt;/code&gt; serves raster (&lt;a href=&quot;https://tiles.openwaters.io/seascape/raster.json&quot;&gt;raster.json&lt;/a&gt;) and vector (&lt;a href=&quot;https://tiles.openwaters.io/seascape/vector.json&quot;&gt;vector.json&lt;/a&gt;) TileJSON. No API key, no signup.&lt;/li&gt;
&lt;li&gt;The vector tiles carry four layers. &lt;code&gt;contours&lt;/code&gt; has metric and feet/fathom isobath sets at the usual chart intervals. &lt;code&gt;soundings&lt;/code&gt; has the shoalest depth per cell, so a printed depth is never deeper than the data behind it. &lt;code&gt;drying&lt;/code&gt; has the foreshore that dries at low water, and &lt;code&gt;coverage&lt;/code&gt; has each source&amp;#39;s footprint.&lt;/li&gt;
&lt;li&gt;The style is generated by the &lt;a href=&quot;https://www.npmjs.com/package/@openwaters/seascape&quot;&gt;&lt;code&gt;@openwaters/seascape&lt;/code&gt;&lt;/a&gt; npm package, which also exports the sources and layer groups for composing into your own style, plus runtime controls for units and safety depth.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Coverage&lt;/h3&gt;
&lt;p&gt;GEBCO 2026 covers the whole planet at about 450 m (through z8). Where finer open data exists it takes over, down to z14 in the best-surveyed areas. Where sources overlap, the ones already on a chart datum win first, then the finer resolution. The 23 sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Global: GEBCO 2026 Grid&lt;/li&gt;
&lt;li&gt;United States: NOAA S-102, CUDEM 1/9″ and 1/3″, NOS estuarine DEMs, Great Lakes, Lake Tahoe&lt;/li&gt;
&lt;li&gt;Europe: EMODnet 2024, Danmarks Dybdemodel, Vaklodingen (NL), INFOMAR 10 m and 25 m (IE), UK SurfZone, Lac Léman, Lac de Neuchâtel, Bodensee&lt;/li&gt;
&lt;li&gt;Canada: GSC Atlantic 100 m, GSC Pacific 10 m&lt;/li&gt;
&lt;li&gt;Australia: AusBathyTopo 250 m, Great Barrier Reef 30 m&lt;/li&gt;
&lt;li&gt;Elsewhere: BATNAS (Indonesia), SW Indian Ocean Bathymetric Compilation, African Great Lakes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Producers and licenses for each:
&lt;a href=&quot;https://openwaters.io/charts/seascape#sources&quot;&gt;openwaters.io/charts/seascape#sources&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Not for navigational use&lt;/h3&gt;
&lt;p&gt;Depths are not reduced to a chart datum and do not account for tides or water level, so they are not charted depths. The data is interpolated and merged from surveys of different ages, resolutions, and datums, and a gridded model omits the rocks, wrecks, and obstructions an official chart shows. Use official nautical charts for navigation.&lt;/p&gt;
&lt;h3&gt;License&lt;/h3&gt;
&lt;p&gt;The tiles are &lt;a href=&quot;https://creativecommons.org/licenses/by/4.0/&quot;&gt;CC BY 4.0&lt;/a&gt;. MapLibre&amp;#39;s attribution control displays the credit carried in the TileJSON, which covers both the tile license and each underlying source&amp;#39;s own terms. The code is BSD-3-Clause.&lt;/p&gt;
&lt;h3&gt;Updates&lt;/h3&gt;
&lt;p&gt;Tiles rebuild as the sources update: GEBCO once a year, the regional sources on their own schedules. Each data release is tagged here, so watch the repo if you want a ping. The hosted endpoint is best-effort with no SLA. If you need offline data or guaranteed availability, build the archives yourself with this pipeline.&lt;/p&gt;
&lt;h3&gt;What&amp;#39;s next&lt;/h3&gt;
&lt;p&gt;The aim is bathymetry good enough for a nautical chart. What stands between here and there:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Chart datums.&lt;/strong&gt; Depths need referencing to a conservative low-water datum (LAT/MLLW) rather than mean sea level, applied as a spatially varying correction.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Provenance.&lt;/strong&gt; Carry each source&amp;#39;s identity and a confidence grade into the tiles, so you can tell surveyed 3 m data from interpolated GEBCO, and validate depths against official soundings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More sources and more coverage.&lt;/strong&gt; The next release will look at adding more open sources to the pipeline. Open an issue if you know of a source that should be included.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The full plan is in &lt;a href=&quot;https://github.com/openwatersio/seascape/blob/main/ROADMAP.md&quot;&gt;ROADMAP.md&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Crowd depth 1.1.0</title>
      <link>https://openwaters.io/updates/crowd-depth-1-1-0/</link>
      <guid isPermaLink="true">https://openwaters.io/updates/crowd-depth-1-1-0/</guid>
      <pubDate>Wed, 01 Jul 2026 13:18:53 GMT</pubDate>
      <category>Release</category>
      <description>&lt;h2&gt;Fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Depth history recording works again with signalk-to-influxdb2 v2.&lt;/strong&gt; Reading position and depth back from the history provider broke against the v2 provider. crowd-depth now runs a single combined query at 1-second resolution and maps the response columns by path, so soundings line up with positions again.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Added&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pick which position and depth source to record.&lt;/strong&gt; If your boat has more than one GPS or depth sensor, you can now choose the exact source for each under &lt;em&gt;GPS Receiver → Position source&lt;/em&gt; and &lt;em&gt;Depth Sounder → Depth source&lt;/em&gt;. Each defaults to the source Signal K prioritizes, and the menus show the device make and model (e.g. &amp;quot;Airmar DST200 (PICAN-M.35)&amp;quot;), so soundings stay on one sensor instead of mixing antenna offsets across sources.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
  </channel>
</rss>
