Path-traced terrain and cartography for Python.
Rust + WebGPU underneath. Real elevation data in, print-resolution maps out.
Mount Shasta, path-traced with global illumination and terrain shadows.
Drag to orbit it live › · USGS 3DEP elevation · 23 cloud-free Sentinel-2 composites
Install
pip install forge3d
Optional extras
pip install "forge3d[jupyter]" # notebook widget support
pip install "forge3d[datasets]" # on-demand sample datasets
pip install "forge3d[all]" # everything
Sixty seconds to a render
import 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)
fetch_dem pulls the elevation model, the viewer opens a real window you can orbit,
and snapshot writes the frame at whatever resolution you ask for.
Made with forge3d
Every map below is rendered end to end by forge3d — titles, legends and scale bars included. Nothing here was hand-edited or composited in another tool.
|
Lyon, LOD2 buildings CityGML extrusion over RGE ALTI terrain |
Egypt, population GHSL R2023A density over shaded relief |
France, climate TerraClimate temperature × precipitation |
|
Iberia, land cover 2024 — Sentinel-2 at 10 m classified over terrain, legend composed in-engine |
Germany, hydrology — HydroSHEDS rivers and lakes over a hypsometric DEM |
Türkiye, population density — a million WorldPop 2020 cells extruded on a log scale, labelled and lit in a single pass
|
|
And it moves. Volumetric smoke driven by HRRR forecast fields, advected across California through the summer 2025 fire season and rendered frame by frame — same scene graph as the stills, one camera, no compositing. Scenes are driven from Python end to end, so a time axis is just another loop:
fetch the fields, step the clock, call |
The renders above are downsampled for this page. Full-resolution masters — up to 7200×7200 — are on the gallery.
What forge3d covers
| Terrain | Interactive viewing via open_viewer_async() and ViewerHandle; snapshots from GeoTIFF or numpy DEMs; clipmaps for large regions |
| Rendering | Path tracing, PBR materials, subsurface scattering, water and reflections, cloud and contact shadows, AOV and EXR output |
| Data | COG streaming, CRS helpers, LAZ/COPC/EPT point clouds, 3D Tiles, GeoJSON, CityJSON, on-demand sample datasets |
| Cartography | Raster and vector overlays, labels with halo and occlusion, graticules, Legend, ScaleBar, NorthArrow, MapPlate |
| Offscreen | Scene, Session, TerrainRenderer and TerrainRenderParams for headless and batch work |
| Output | PNG and PNG16, SVG and PDF vector export, scene bundles, notebook widgets |
MapPlate composition, vector export and the building import pipelines are Pro
features; set a key with forge3d.set_license_key(...) to unlock them.
Documentation
- Quickstart — install, first viewer session, first overlay, first notebook widget
- Feature Map — repo-wide overview of the supported workflows
- Tutorials — guided GIS and Python tracks
- Gallery — finished recipes at full resolution
- API Reference — the full public Python surface
License
The open-source core is released under Apache-2.0 OR MIT. Pro-gated features require a commercial license key.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file forge3d-1.35.0.tar.gz.
File metadata
- Download URL: forge3d-1.35.0.tar.gz
- Upload date:
- Size: 10.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9efd1de9bb75ac480b2d06871f66bc170291ac06a1181c09f834a8fa385c8dc0
|
|
| MD5 |
1919191a352691c3a70af4968742e058
|
|
| BLAKE2b-256 |
7c9b6f7389edff5b9ebe7f67b80a8fef8174d36e396fda3ff324791ed5f42d78
|
File details
Details for the file forge3d-1.35.0-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: forge3d-1.35.0-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 15.1 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79fc75ab4747ea34b58c97a185113c308a79ce399285720fd97c18d7b8721956
|
|
| MD5 |
f5c7a6486d0a260d00a663d27e246b8c
|
|
| BLAKE2b-256 |
c924a7317fa3c3da5389dfd7d790bf9040fb393a5162077723ba3529409de703
|
File details
Details for the file forge3d-1.35.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: forge3d-1.35.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 15.7 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25927002eefd5900fc9dd0ef266a0294269a6dcefbf8e84d1cc54cd0a564fd96
|
|
| MD5 |
41736a0badbf6d0ea2ac635afc7e6c46
|
|
| BLAKE2b-256 |
6a53855569da7eb0722c876833a117046ae37facaae3a29fb434558f49c38ad0
|
File details
Details for the file forge3d-1.35.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: forge3d-1.35.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 15.4 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da949da38baf4474baaa9be3ecb669badbf87fd9d6c105a7598e4c43dd4c328a
|
|
| MD5 |
595ab5cd7dfcab599318bf5bfe948d93
|
|
| BLAKE2b-256 |
912f0b8aa0fdaf6a346208d17d56ef55eed85f3cdd60dea37936af2364675dd7
|
File details
Details for the file forge3d-1.35.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: forge3d-1.35.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 26.1 MB
- Tags: CPython 3.10+, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
258120f19fd264527e2aaa791151853605fa422fa0cd343b1335fb5f8a89467b
|
|
| MD5 |
67f1bbfe88e5ad94dda2ecff74222125
|
|
| BLAKE2b-256 |
26803917094157cdcfc447efa209cd631ee1790d1d02387dc2babf4f273fe984
|