Skip to main content

forge3d: Rust/WebGPU offline 3D maps with local GIS raster read/write, CRS, affine, windowing, and reprojection support

Project description

forge3d

Python-first terrain and scene rendering on top of Rust + WebGPU.
Interactive viewer, offscreen rendering, overlays, point clouds, notebooks, and production outputs.

PyPI Python 3.10+ License Docs


forge3d hero render

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

Quick Start

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)

What forge3d Covers

Open-source workflow:

  • Interactive terrain viewing through open_viewer_async() and ViewerHandle
  • Terrain snapshots from GeoTIFF or numpy DEM 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, and TerrainRenderParams
  • Geometry, mesh, vector, SDF, path-tracing, lighting, and terrain scatter helpers

Pro workflow:

  • MapPlate, Legend, ScaleBar, and NorthArrow for cartographic composition
  • SVG/PDF vector export
  • Building import pipelines for GeoJSON, CityJSON, and 3D Tiles workflows
  • Mapbox-style import and scene bundles

Documentation Map

Examples

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.

License

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(...).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forge3d-1.28.0.tar.gz (12.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

forge3d-1.28.0-cp310-abi3-win_amd64.whl (7.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

forge3d-1.28.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

forge3d-1.28.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

forge3d-1.28.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (12.1 MB view details)

Uploaded CPython 3.10+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file forge3d-1.28.0.tar.gz.

File metadata

  • Download URL: forge3d-1.28.0.tar.gz
  • Upload date:
  • Size: 12.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for forge3d-1.28.0.tar.gz
Algorithm Hash digest
SHA256 cb44b444a674805d414e627557366c9ea407ac7068164a8c7a0c316c73107781
MD5 503109798bd2ccf9a32b39a4a00231d1
BLAKE2b-256 153c3287036cb7320d63409dfb9004778866bc1fbcdec9fb689cd0489d20ece4

See more details on using hashes here.

File details

Details for the file forge3d-1.28.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: forge3d-1.28.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 7.5 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for forge3d-1.28.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 59afe19b04591a7bb1467ec2ecc281abb572ddcce9f7eb36ea20427667ca0415
MD5 ce291e91f79dbf35bbe6c16cf8b4fbe0
BLAKE2b-256 7721e3412feb15ab854ccae96bdf6d3dbeab253a628a53f00cc29eda98fb4946

See more details on using hashes here.

File details

Details for the file forge3d-1.28.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for forge3d-1.28.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6847351cf1f8ffd91f02752c2018c37c86fa80cfac3374c67b769310051f6a5f
MD5 9a78f1eb9527780920d6a3c03022b70b
BLAKE2b-256 fdadd107a27c5116efd30c2b21e1513c65790a05f78f6d16781d42774c0d1e01

See more details on using hashes here.

File details

Details for the file forge3d-1.28.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for forge3d-1.28.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b9c69e840d16b38f33c2a1d06ba32c431d26259e79bfc290b6dd1ff2c1466c9a
MD5 ee3de49092c3f2262f7a564e8cb8e685
BLAKE2b-256 c61519e52bf1b71098c02ad86a6b9d79cef9db590a6eb4c966ee6db84a5fda87

See more details on using hashes here.

File details

Details for the file forge3d-1.28.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for forge3d-1.28.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 f89f0d8b3bfdd912d2988e416d35f15d913e4431d9a1101e1bd68b2fa247fe03
MD5 86d2ebafdb852f39cff3c104c9b8a271
BLAKE2b-256 8f41762bcbe8b105c4e942a3ae555c42a5af63e0d6a28251fba99b6ed0b196b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page