Four compute paths, one service layer

Analysis where it fits. Results back on the map.

Use GeoAgent for guided natural-language execution, the core server for dependable built-in functions, DuckDB for spatial SQL, Pyodide for browser-local Python and an optional Python service for native geospatial and machine-learning libraries.

GeoAgentDuckDB SpatialPyodideJupyterLiteJupyterLabWhiteboxToolsGeoPandas
Compute architecture

Choose the runtime by workload, not ideology.

Each execution path has a deliberate role and can return portable GeoJSON, rasters, tables, profiles or service registrations.

RuntimeBest forRepresentative capabilitiesDeployment behavior
Core server functionsLow-dependency, concurrent server operations and edge deploymentGeometry, topology, terrain, routing, catalogs, service translation, streaming, mission workflowsBuilt into the same headless server binary; no Python dependency
DuckDB spatialFast analytical SQL over local, database and cloud-native dataSpatial joins, aggregation, CQL2 execution, dynamic MVT, GeoParquet/object-store query, H3 and time-series workflowsEmbedded analytical engine with spatial/httpfs and optional cloud extensions
Pyodide / WebAssemblyInteractive browser analysis with zero server computePython console, GeoPandas/Shapely-style processing, data transforms and notebook cells that drive the mapRuns inside the browser sandbox; packages and memory are constrained by WebAssembly/browser support
Python capability serviceNative Python packages, long-running jobs, ML and specialist geoprocessingWhiteboxTools, rasterio, scikit-learn, gstools, pykrige, OR-Tools, spaCy, Py6S, MegaDetector, BirdNET, virtualizarr and document generationOptional isolated service with 176 routes; the core server continues operating when it is absent
Real product capture
Add Data vector layer panel loading a 220 point GeoJSON file client-side, with the style panel open.
Load a vector layer client-side (Pyodide/browser path).
Attribute Charts panel computing a live histogram by category field, showing counts for Hazmat, Fire, Medical, Security and Traffic that sum to 220.
Live aggregation by category — a genuine histogram, not a mock.
Attribute Charts panel computing a live histogram by severity field.
Same tool, aggregated by severity.
Attribute Table panel showing real feature rows including incident ID, category, severity, response minutes, unit and reported timestamp.
Attribute Table over the same loaded layer.

Data shown is a synthetic 220-point set generated for this capture, not real incident records. What it demonstrates is real: browser-side vector load and live DuckDB-WASM/Pyodide aggregation with no server round-trip per chart — the compute path documented in the table above, not the JupyterLite notebook UI described further down this page.

See it in motion

Vector load and live aggregation, run end to end.

The same synthetic dataset shown above, loaded and charted against the real client — same synthetic-data caveat applies.

Real product capture
GeoJSON vector layer ingested with glow/circle symbology, then live Attribute Charts aggregation, Attribute Table sync and a 3D oblique flyover — all against the synthetic incident set, not real data.
Spatial analysis depth

From raster hydrology to constrained logistics.

The analytics surface is intended to replace real operational workflows, not merely demonstrate buffers and centroids.

GEOSTATISTICS

Kriging and uncertainty

Ordinary, Universal, Empirical Bayesian and Indicator kriging; spherical, exponential, Gaussian, Matérn and linear variograms; leave-one-out cross-validation and prediction variance.

SPATIAL STATS

Regression and clustering

OLS with Moran’s I diagnostics, GWR/MGWR, LISA HH/LL/HL/LH clusters, Ripley functions, random forests with spatial cross-validation and space-time patterns.

HYDROLOGY

Watersheds and flow

D8 flow, depression fill/breach, stream extraction and ordering, watershed/sub-basin delineation, pour-point snapping, wetness index and upstream length.

TERRAIN + 3D

Surface intelligence

Viewshed, skyline, slope, aspect, cut/fill, solar radiation, surface area, DEM draping, 3D buffers and terrain-aware routing.

NETWORKS

Routing and allocation

Vehicle routing with constraints, origin-destination matrices, p-median/p-center, location set covering and maximal covering facility siting.

RASTER + AI

Imagery processing

Raster function DAGs, band math, classification, convolution, atmospheric correction, change detection, segmentation, object detection and pixel-to-ground results.

KNOWLEDGE

Documents, entities and link graphs

Extract text from PDF, DOCX, PPTX and XLSX; run semantic search and citation-bearing RAG; identify 15 entity types, extract relations and push Cytoscape-compatible graphs into activity-based intelligence workflows.

Real product capture
Processing and Analysis module panel in the client listing Attribute Charts, Elevation Profile, Hyperspectral Analysis and Terrain Analysis tools.
The client-side entry point for this catalog — Attribute Charts, Elevation Profile, Hyperspectral Analysis and Terrain Analysis among its tools.
Elevation Profile dialog in the client, pre-filled with a sample three-point path and ready to compute.
Elevation Profile, pre-filled and ready to compute — path distance is real; elevation values depend on a DEM source being configured server-side.
GeoAgent

Natural language can invoke real tools—and stay auditable.

GeoAgent registers governed geospatial capabilities for imagery, kriging, routing, hydrology, statistics, topology, terrain and operations. It exposes the selected tool and parameters, then returns rendering hints for maps, rasters, profiles and tables.

Agent workflows and notebooks share the service layer.

Use the agent for guided execution and repeatable tool calls. Use notebooks for exploratory analysis, custom code, peer review, narrative and reproducible research. Both call the same underlying service and job APIs.

What GeoLibre already has

The notebook foundation is implemented today.

GeoLibre’s notebook work is not just a concept. The checked-in build and documentation define a dual-mode architecture with shared map scripting.

WEB

Self-hosted JupyterLite

The web build stages a JupyterLite application inside the notebook panel and runs the Pyodide kernel entirely in the browser.

DESK

Real JupyterLab on desktop

The desktop path launches a uv-managed JupyterLab server for native packages and a full Python environment.

MAP

Two-way scripting bridge

Notebook cells can drive the live map and project state through the same scripting API used by the Python console.

PKG

Python package + anywidget direction

The geolibre package is designed for local Jupyter, VS Code, Colab and JupyterHub-style environments with a leafmap-like API.

AIR

Self-hostable runtimes

Runtime overrides allow Pyodide and DuckDB Spatial assets to be hosted locally for secure or disconnected environments.

Product recommendation

Yes—develop a Notebook Server equivalent by productizing the existing foundation.

Do not rebuild notebook UI or kernels from scratch. Keep JupyterLite for zero-infrastructure browser work, and add a governed multi-user server tier for workloads that need native packages, scheduled execution and enterprise controls.

Recommended product name: 3DGeoServ Notebook Service

A server-managed JupyterHub/Jupyter Server deployment integrated with 3DGeoServEngine identity, catalogs, service tokens, job scheduling and map/project APIs.

CapabilityJupyterLite / Pyodide workspace3DGeoServ Notebook Service
Compute locationUser’s browser via WebAssemblyContainerized server kernels, optionally GPU-enabled
Native geospatial librariesOnly packages compatible with Pyodide/WASMGDAL, rasterio, GeoPandas, PyTorch, WhiteboxTools and organization-specific environments
Large dataLimited by browser memory, sandbox and network behaviorServer-side access to databases, object storage, local high-speed storage and distributed services
Multi-user governanceBrowser-local workspaceSSO/RBAC, per-user workspaces, quotas, image allowlists, audit events and network policy
AutomationInteractive, user-driven executionScheduled jobs, parameterized notebooks, headless execution, retries, logs and artifacts
SecretsAvoid durable privileged credentials in browser codeVault/Kubernetes secret injection, scoped service tokens and credential rotation
DeploymentStatic, self-hosted JupyterLite assetsJupyterHub/Jupyter Server on Docker or Kubernetes, with air-gapped image registry support
Build sequence

A practical notebook product roadmap.

Start with integration and governance around mature Jupyter components, then add differentiating geospatial workflows.

PHASE 01

Harden the existing bridge

Stabilize project/map synchronization, notebook file persistence, self-hosted runtime assets and repeatable example notebooks.

PHASE 02

Managed server kernels

Deploy JupyterHub with curated CPU/GPU images, persistent volumes, SSO/RBAC and scoped 3DGeoServEngine tokens.

PHASE 03

Jobs and publishing

Schedule parameterized notebooks, capture logs/artifacts and publish outputs back as COG, FeatureServer, MVT, STAC or reports.

PHASE 04

Enterprise operations

Add quotas, image promotion, package provenance, audit, cost controls, HA and disconnected deployment profiles.

Turn the existing GeoLibre notebook work into a governed geospatial compute product.

Plan the Notebook Service →