Skip to content

Commit 9d48af2

Browse files
committed
docs: highlight the 1,000+ browser-based geoprocessing tools
The toolbox ships 1,009 runnable tools but the docs never said so, and several pages still described it as sidecar-backed and desktop-only. It has run in WebAssembly since v1.7 and carries no mobile gate, so the full set is available on the web and Android builds too.
1 parent a551f7c commit 9d48af2

9 files changed

Lines changed: 95 additions & 25 deletions

File tree

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,49 @@
1616

1717
A free and open-source, lightweight, cloud-native GIS platform for visualizing, exploring, and analyzing geospatial data. It runs everywhere you do, in the web browser, on the desktop, on mobile, and inside Jupyter notebooks, all while keeping your data local and private.
1818

19+
It also ships **1,000+ geoprocessing tools** that run *entirely in your browser* on WebAssembly — terrain, hydrology, LiDAR, remote sensing, and vector analysis with no server, no install, and no data ever leaving your machine.
20+
1921
GeoLibre is built with **Tauri v2**, **React**, **TypeScript**, **MapLibre GL JS**, **DuckDB-WASM Spatial**, and **deck.gl**. The same workspace runs as a native desktop app, a native Android app, in any modern web browser, and adapts responsively to mobile and small screens.
2022

2123
- **[Launch GeoLibre Web](https://web.geolibre.app/)** — the full app in your browser, nothing to install
2224
- **[Download the desktop app](https://geolibre.app/downloads/)** — Windows, macOS, and Linux installers
2325
- **[Get it on Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app)** — the native Android app
26+
- **[1,000+ geoprocessing tools](https://geolibre.app/user-guide/processing/#geoprocessing-toolbox)** — the full toolbox, in the browser
2427
- **[Get started](https://geolibre.app/getting-started/)** — install, run from source, and configure
2528
- **[Features](https://geolibre.app/features/)** — the complete feature list
2629

30+
## Geoprocessing: 1,000+ tools, zero install
31+
32+
[![The GeoLibre Whitebox toolbox running locally with WebAssembly, listing all 1,009 tools with the Regularize Building Footprints tool selected](https://files.opengeos.org/whitebox.webp)](https://files.opengeos.org/whitebox.webp)
33+
34+
**Processing → Whitebox** opens a toolbox of **1,000+ geoprocessing tools** that
35+
execute in the browser through a WebAssembly runtime with native raster and
36+
vector I/O. There is no Python sidecar to install and no server to call — the
37+
tools, your data, and the results all stay on your machine, so the full toolbox
38+
is available on [GeoLibre Web](https://web.geolibre.app/), on the desktop app,
39+
and on Android alike.
40+
41+
The tools come from the [Whitebox Next Gen](https://github.com/opengeos/Whitebox-Next-Gen-ArcGIS)
42+
suite plus GeoLibre's own WASM tools, and are browsable by category straight from
43+
the Processing menu:
44+
45+
| Category | Tools | Examples |
46+
| --- | --- | --- |
47+
| **Vector** | 280 | overlays, buffers, joins, cleaning, topology, generalization |
48+
| **Raster** | 232 | algebra, filters, reclassification, zonal and focal statistics |
49+
| **Remote sensing** | 154 | spectral indices, band math, classification, change detection |
50+
| **Hydrology** | 100 | flow accumulation, watersheds, stream networks, depression filling |
51+
| **Terrain** | 99 | slope, aspect, hillshade, curvature, ruggedness, viewsheds |
52+
| **LiDAR** | 65 | point-cloud filtering, ground classification, DEM/DSM generation |
53+
| **Conversion** | 49 | format translation to cloud-native GeoParquet, PMTiles, and COG |
54+
| **Network** | 26 | connectivity, cost distance, and routing analysis |
55+
| **Projection** | 4 | reprojection for raster and vector data |
56+
57+
Any tool is deep-linkable with a `?tool=` URL parameter that preselects it and
58+
pre-fills its form. See the [Processing Tools guide](https://geolibre.app/user-guide/processing/#geoprocessing-toolbox)
59+
for details, and [Geoprocessing in the Browser](https://youtu.be/W32bIQO_nG8) for
60+
a video walkthrough.
61+
2762
## Demos
2863

2964
**Click any screenshot to open it at full resolution, or any animation to play the full-quality video.**

docs/android.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,16 @@ The rest of this page is for developers building the app themselves.
1919

2020
## What works on Android vs desktop
2121

22-
The Android build ships the full map workspace, Add Data, the Vector tools
23-
(Turf.js / in-browser GeoPandas via Pyodide), the SQL Workspace (DuckDB-WASM and
24-
the in-browser PGlite/PostGIS engine), the Python Console (Pyodide), geocoding,
25-
statistics, the AI assistant, story maps, and plugins.
22+
The Android build ships the full map workspace, Add Data, the Whitebox
23+
geoprocessing toolbox (1,000+ tools, run in the browser on WebAssembly), the
24+
Vector tools (Turf.js / in-browser GeoPandas via Pyodide), the SQL Workspace
25+
(DuckDB-WASM and the in-browser PGlite/PostGIS engine), the Python Console
26+
(Pyodide), geocoding, statistics, the AI assistant, story maps, and plugins.
2627

2728
Tools that depend on a **local desktop process** are hidden on mobile, because
2829
Android has no Python sidecar or local helper binaries:
2930

30-
- Processing → **Whitebox**, **Raster**, **Conversion**, **AI Segmentation**
31+
- Processing → **Raster**, **Conversion**, **AI Segmentation**
3132
(all need the Python sidecar)
3233
- Add Data → **PostgreSQL** (served by the local Martin tile server)
3334

docs/architecture.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ Local MBTiles tiles are read through a custom MapLibre protocol backed by Tauri
6868

6969
## Python sidecar
7070

71-
The FastAPI app in `backend/geolibre_server` backs the Whitebox toolbox and the format Conversion tools through a managed local processing sidecar. The desktop app starts the sidecar on demand, communicates over `127.0.0.1`, and keeps the heavier Python processing stack outside the browser bundle.
71+
The FastAPI app in `backend/geolibre_server` backs the format Conversion tools, the raster tools, and the optional server engine for the Whitebox toolbox through a managed local processing sidecar. The desktop app starts the sidecar on demand, communicates over `127.0.0.1`, and keeps the heavier Python processing stack outside the browser bundle.
72+
73+
The Whitebox toolbox does **not** depend on it: its 1,000+ tools run in the browser on the `geolibre-wasm` WebAssembly runtime by default, and the sidecar is an opt-in alternative engine that can read native file paths for batch runs over a directory.
7274

7375
The Vector tools (Processing → Vector) run client-side with Turf.js and need no sidecar. All of the tools can optionally run on the sidecar's `/vector` endpoints, backed by GeoPandas and Shapely, for projection-aware results; the sidecar reports availability through `/vector/status`, and the dialog falls back to the client engine when the optional `vector` extra is not installed.
7476

docs/downloads.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ The portable build relies on the Microsoft Edge WebView2 Runtime, which is
5959
preinstalled on Windows 11 and current Windows 10. If the app does not start,
6060
install the
6161
[Evergreen runtime](https://developer.microsoft.com/microsoft-edge/webview2/).
62-
The optional Python sidecar tools (Whitebox, raster, conversion) need Python
63-
available just as in the installed build; everything else runs without it.
62+
The optional Python sidecar tools (raster, conversion) need Python available
63+
just as in the installed build; everything else — including the 1,000+ tool
64+
Whitebox geoprocessing toolbox, which runs on WebAssembly — runs without it.
6465

6566
## macOS installation
6667

@@ -221,9 +222,10 @@ Sideloaded builds do not update themselves, so download a newer APK to upgrade.
221222
Android will not upgrade one into the other. Uninstall the existing copy
222223
(`adb uninstall org.geolibre.app`) before switching between them.
223224

224-
Tools that need a local desktop process — the Whitebox, Raster, Conversion, and
225-
AI Segmentation toolboxes, and the PostgreSQL data source — are hidden on
226-
Android. See [Android](android.md) for the full list and for build instructions.
225+
Tools that need a local desktop process — the Raster, Conversion, and AI
226+
Segmentation toolboxes, and the PostgreSQL data source — are hidden on Android.
227+
The Whitebox geoprocessing toolbox runs on WebAssembly and stays available. See
228+
[Android](android.md) for the full list and for build instructions.
227229

228230
## Build from source
229231

docs/features.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,11 @@ the [Tutorials](tutorials/index.md); for what is planned next, see the
156156
- Conversion menu for Vector to GeoParquet, FlatGeobuf, and PMTiles; a generic Vector to Vector converter that translates between any supported vector formats by file extension; CSV to GeoParquet; and Raster to COG
157157
- In the browser build every conversion runs client-side on DuckDB-WASM, the pure-JS writers, or `geolibre-wasm` (Vector to PMTiles on a background worker)
158158
- The desktop app prefers the Python sidecar, whose GDAL/rio-cogeo stack reads more input formats and tiles deeper
159-
- Whitebox toolbox that runs entirely in the browser through a WebAssembly runtime with raster I/O — no Python sidecar required
160-
- Surfaces both Whitebox tools and GeoLibre's own WASM raster tools
159+
- **1,000+ geoprocessing tools** in the Whitebox toolbox, running entirely in the browser through a WebAssembly runtime with raster and vector I/O — no Python sidecar required, so the full set works on the web, desktop, and Android
160+
- Surfaces both the Whitebox Next Gen suite and GeoLibre's own WASM tools, filterable by source
161+
- Nine categories: vector (~280 tools), raster (~230), remote sensing (~150), hydrology (~100), terrain (~100), LiDAR (~65), conversion (~50), network (~25), and projection
161162
- Browsable by category directly in the Processing menu, with nested subcategory submenus and an offline-bundled tool catalog
163+
- A **Run locally (WASM)** toggle switches any tool between the in-browser runtime and the Python sidecar, which reads native file paths for batch runs over a directory
162164
- Deep-linkable through a `?tool=` URL parameter that preselects a tool and pre-fills its form, with a Copy link button that builds the shareable link
163165
- Batch tools run against a selected input directory
164166
- Vector menu
@@ -247,6 +249,6 @@ See the [Plugin API](plugin-api.md) to build your own.
247249
- Native Android app built from the same codebase with Tauri v2 mobile, published on [Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app). See [Android](android.md)
248250
- A GitHub Actions workflow builds both the universal App Bundle that Play ships and signed, per-architecture sideload APKs (~40 MB)
249251
- A permanent `org.geolibre.app` package id, API level 36, and 16 KB page-size alignment verified in CI
250-
- Tools that depend on a local desktop process (Whitebox, Raster, Conversion, AI Segmentation, PostgreSQL/Martin) are hidden on mobile, so nothing is shown that cannot run
252+
- Tools that depend on a local desktop process (Raster, Conversion, AI Segmentation, PostgreSQL/Martin) are hidden on mobile, so nothing is shown that cannot run; the WebAssembly geoprocessing toolbox needs no such process and stays available
251253
- iOS build scaffolding on the same codebase, with Tauri iOS configuration, location permissions, and a CI workflow that signs and exports an `.ipa` when Apple signing secrets are present (bring-up: no iOS build has shipped yet). See [iOS](ios.md)
252254
- Installable, offline-capable Progressive Web App (PWA) build, plus a **Download Offline Area** tool that pre-caches the current map view's basemap tiles, and service-worker caching of the CDN-loaded Pyodide and PGlite/PostGIS engines so browser SQL and Python keep working offline after first use

docs/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ Add Data covers XYZ, WMS, WFS, WMTS, ArcGIS, and STAC services; GeoParquet, Flat
5656
</div>
5757

5858
<div class="feature-card" markdown>
59-
### Conversion and Whitebox
59+
### 1,000+ geoprocessing tools
6060

61-
Convert vector and raster data to cloud-native GeoParquet, FlatGeobuf, PMTiles, and COG from the Conversion menu, and run batch geoprocessing with the extensive Whitebox toolbox running on the optional Python sidecar.
61+
Run **1,000+ geoprocessing tools** — vector, raster, remote sensing, hydrology, terrain, LiDAR, conversion, network, and projection — from the Whitebox toolbox, browsable by category in the Processing menu. They execute in the browser on a WebAssembly runtime with raster and vector I/O, so there is no Python sidecar to install and the full set works on the web, desktop, and Android. Convert data to cloud-native GeoParquet, FlatGeobuf, PMTiles, and COG from the Conversion menu.
6262
</div>
6363

6464
<div class="feature-card" markdown>
@@ -174,7 +174,7 @@ what comes next, see the [Roadmap](roadmap.md).
174174

175175
- **Core workspace** — the map workspace, the `.geolibre.json` project format with Save, Open, and Share, the plugin API, and the plugin marketplace for installing, updating, and removing external plugins.
176176
- **Data** — browser vector import, DuckDB-WASM Spatial loading, the full Add Data surface (files, web services, cloud formats, 3D layers, and databases), and cloud integrations through the Planetary Computer and Earth Engine panels, the Overture Maps plugin, and the federal Web Services plugins.
177-
- **Processing** — vector tools (Turf.js with an optional GeoPandas sidecar), raster tools (rasterio sidecar with a client-side fallback), a Spectral Index toolbox, a Raster Georeferencer, a Spatial Statistics toolbox, network analysis (isochrones, service areas, OD cost matrices), the Conversion menu (GeoParquet, FlatGeobuf, PMTiles, COG), the Whitebox toolbox, and AI Segmentation via SamGeo/SAM 3.
177+
- **Processing**the Whitebox toolbox of **1,000+ geoprocessing tools** running in the browser on WebAssembly, vector tools (Turf.js with an optional GeoPandas sidecar), raster tools (rasterio sidecar with a client-side fallback), a Spectral Index toolbox, a Raster Georeferencer, a Spatial Statistics toolbox, network analysis (isochrones, service areas, OD cost matrices), the Conversion menu (GeoParquet, FlatGeobuf, PMTiles, COG), and AI Segmentation via SamGeo/SAM 3.
178178
- **SQL and scripting** — the SQL Workspace for DuckDB Spatial SQL (with PGlite PostGIS and Apache Sedona engines), a docked Notebook panel running Jupyter beside the map (JupyterLite on the web, a JupyterLab server on desktop), a natural-language AI assistant, and an in-app Python Console.
179179
- **Field and collaboration** — a Field Collection tool for point, line, and polygon observations, real-time multi-user collaboration, and a scroll-driven story map builder.
180180
- **Map surface** — multi-provider geocoding, the Time Slider plugin, a Controls menu (Measure, Bookmark, Minimap, View State), Layout settings, runtime environment variables, and diagnostics.

docs/ios.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ Tools that depend on a **local desktop process** are hidden on mobile because
3434
iOS has no Python sidecar or local helper binaries and its sandbox forbids
3535
spawning subprocesses:
3636

37-
- Processing → **Whitebox**, **Raster**, **Conversion**, **AI Segmentation**
38-
(all need the Python sidecar)
37+
- Processing → **Raster**, **Conversion**, **AI Segmentation**
38+
(all need the Python sidecar). The Whitebox geoprocessing toolbox runs in
39+
WebAssembly, needs no sidecar, and stays available.
3940
- Add Data → **PostgreSQL** (served by the local Martin tile server)
4041

4142
These are gated by a user-agent `isMobile()` check (which already matches

docs/tutorials/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ These tutorials walk through common GeoLibre workflows end to end. Each one is s
55
## Before you start
66

77
- You can follow most tutorials in the **live viewer** at [web.geolibre.app](https://web.geolibre.app/), which is the browser build of GeoLibre. No installation required.
8-
- A few steps need the **desktop app**: opening and saving project files, reading local MBTiles and rasters, and the Python sidecar tools (raster processing, sidecar conversions, and Whitebox). These are called out where they appear. See [Downloads](../downloads.md) to install.
8+
- A few steps need the **desktop app**: opening and saving project files, reading local MBTiles and rasters, and the Python sidecar tools (raster processing and sidecar conversions). These are called out where they appear. See [Downloads](../downloads.md) to install. The Whitebox geoprocessing toolbox is not among them — its 1,000+ tools run in the browser on WebAssembly.
99
- The sample dataset used in several tutorials is a public GeoParquet file of world countries: `https://data.source.coop/giswqs/opengeos/countries.parquet`.
1010

1111
## The tutorials

0 commit comments

Comments
 (0)