Python-first terrain and scene rendering on top of Rust + WebGPU.
Interactive viewer, offscreen rendering, overlays, point clouds, notebooks, and production outputs.
pip install forge3dOptional extras:
pip install "forge3d[jupyter]" # notebook widget support
pip install "forge3d[datasets]" # on-demand sample datasets
pip install "forge3d[all]" # everythingimport forge3d as f3d
dem_path = f3d.fetch_dem("rainier")
with f3d.open_viewer_async(terrain_path=dem_path, width=1440, height=900) as viewer:
viewer.set_z_scale(0.1)
viewer.set_orbit_camera(phi_deg=28, theta_deg=49, radius=5400, fov_deg=42)
viewer.set_sun(azimuth_deg=302, elevation_deg=24)
viewer.snapshot("rainier.png", width=1920, height=1080)Open-source workflow:
- Interactive terrain viewing through
open_viewer_async()andViewerHandle - Terrain snapshots from GeoTIFF or
numpyDEM inputs - Raster overlays, vector overlays, labels, and camera automation
- LAZ/COPC/EPT point-cloud loading
- COG access, CRS helpers, datasets, presets, and notebook widgets
- Native/offscreen rendering with
Scene,Session,TerrainRenderer, andTerrainRenderParams - Geometry, mesh, vector, SDF, path-tracing, lighting, and terrain scatter helpers
Pro workflow:
MapPlate,Legend,ScaleBar, andNorthArrowfor cartographic composition- SVG/PDF vector export
- Building import pipelines for GeoJSON, CityJSON, and 3D Tiles workflows
- Mapbox-style import and scene bundles
- Quickstart: install, first viewer session, first overlay, first notebook widget
- Feature Map: repo-wide overview of the supported workflows
- Examples Catalog: every script and notebook in
examples/ - Tutorials: guided GIS and Python tracks
- Gallery: finished recipes and visuals
- API Reference: the full public Python surface
The repo ships a broad set of runnable examples in examples/, including:
- interactive terrain scenes and raster overlays
- Mapbox-style, labels, and picking demos
- point-cloud and building viewers
- camera animation and terrain camera rigs
- COG streaming and offscreen terrain rendering
- pure-Python composition examples and notebooks
Run any script with python examples/<name>.py --help when it exposes CLI options.
The open-source core is released under Apache-2.0 OR MIT. Pro-gated features require a commercial license key set with forge3d.set_license_key(...).
