Skip to main content

forge3d: Rust/WebGPU core with PyO3 bindings

Project description

forge3d

GPU-accelerated 3D terrain rendering for Python.
Built in Rust with WebGPU. Pre-built wheels — no Rust toolchain required.

PyPI Python 3.10+ License Docs


forge3d hero render

This image was generated with 5 lines of Python. Load a DEM, launch the GPU viewer, position the camera, and capture a publication-quality snapshot. No shaders to write. No OpenGL boilerplate. Just pip install forge3d.

import forge3d

with forge3d.open_viewer_async(terrain_path="rainier.tif") as viewer:
    viewer.set_orbit_camera(phi_deg=225, theta_deg=35, radius=1.2)
    viewer.set_sun(azimuth_deg=315, elevation_deg=32)
    viewer.snapshot("render.png", width=3840, height=2160)

Install

pip install forge3d

Need Jupyter widgets or tutorial datasets?

pip install "forge3d[jupyter]"     # ViewerWidget for notebooks
pip install "forge3d[datasets]"    # on-demand sample DEMs, CityJSON, COPC
pip install "forge3d[all]"         # everything

Gallery


PBR terrain

Landcover overlay

LiDAR point cloud

Sun & shadow control

GeoPackage labels

CityJSON buildings

Vector overlays

Camera animation

Map plate compositor

See the full gallery →

What You Get

Open Source (Apache-2.0 / MIT)

Everything you need to go from raw elevation data to a rendered 3D scene:

  • Interactive viewer — real-time orbit, pan, zoom via a Rust/WebGPU subprocess controlled from Python over IPC
  • Terrain rendering — load GeoTIFFs or numpy arrays, PBR materials, 100+ colormaps
  • Vector overlays — GeoJSON/GeoPackage polygons, lines, and labels projected onto terrain
  • Point clouds — COPC and LAZ files with millions of points, colored by elevation or classification
  • 3D Tiles — stream OGC 3D Tiles tilesets directly into the viewer
  • CRS reprojection — automatic coordinate transforms via PROJ + pyproj
  • Camera animation — keyframed flyover paths with frame-by-frame export
  • Jupyter integrationViewerWidget embeds the viewer inline in notebooks
  • High-res snapshots — up to 8K PNG export from any camera angle

Pro

Professional cartography and production workflows:

  • Map plate compositor — legends, scale bars, north arrows, multi-panel layouts
  • SVG / PDF export — publication-ready vector output
  • 3D buildings — GeoJSON, CityJSON, and 3D Tiles import with roof inference and PBR materials
  • Mapbox Style Spec — load and apply Mapbox-compatible styles
  • Scene bundles — save and share complete .forge3d scene packages
  • Commercial licensing details → https://github.com/milos-agathon/forge3d#license

Tutorials

Two tracks depending on your background:

Jupyter

from forge3d.widgets import ViewerWidget

widget = ViewerWidget(terrain_path="dem.npy")
widget.set_camera(phi_deg=225, theta_deg=35, radius=1.2)
widget.set_sun(azimuth_deg=315, elevation_deg=32)
widget.snapshot()  # renders inline

Links

Documentation  ·  API Reference  ·  GitHub  ·  PyPI

License

Open-source core released under Apache-2.0 OR MIT. Pro features require a commercial license key set with forge3d.set_license_key(...). Licensing details live at https://github.com/milos-agathon/forge3d#license

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.15.1.tar.gz (2.2 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.15.1-cp310-abi3-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

forge3d-1.15.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.1 MB view details)

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

forge3d-1.15.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

forge3d-1.15.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (10.0 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.15.1.tar.gz.

File metadata

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

File hashes

Hashes for forge3d-1.15.1.tar.gz
Algorithm Hash digest
SHA256 0902ae44d4b4da44a5a6ddeae4f6a088a6ce0b2df55104f0308089bfeeb8277e
MD5 4d76f5abd74a7fc13c991629a957a22f
BLAKE2b-256 e645565d7f641bbbe035ccb0e343872a778bdc1320135def7f9a66b0a5a8d174

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for forge3d-1.15.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 82f2245efbb0f27ea2233bcd3617d8bef951602c0eb37f7dc6be48c585b864a4
MD5 7c3d700ed9e4cc6faebbd108bb2e8ba1
BLAKE2b-256 b9e94dd33b6cb3d79bc5a780160b27600bab2823e3e272fa85b65643758340f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge3d-1.15.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f74c65911b0b6a194b819c8be96cbc423aa47497e7482c4ac1bb27764b500a45
MD5 a3c448acd9244c2f5406b6cf0ff01a55
BLAKE2b-256 5dd8e3c93cb4e170394e85526e9e3e9865ed897bc890923851110fefabb19ce3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge3d-1.15.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 84106b7554ed3d0ca81cb5e26ed138e759b765b5333686bf5207c73180263501
MD5 1be57666885c67b94e7de03fa903fc1d
BLAKE2b-256 74941e994c2dbf28d6e1320905a1f7a8142db85e52916ca45a45e98a3421392a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge3d-1.15.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 421bc1db98fb3ff3d404e0b01340b25d9787070ad60df41021ec74add27ba85d
MD5 443d497c41119e815da8971be5f87fb0
BLAKE2b-256 b9ace33d31486b48ac5951bcab7c6297b088c4cb7ab0c2117f86f052edadf7ad

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