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.13.1.tar.gz (2.1 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.13.1-cp310-abi3-win_amd64.whl (6.2 MB view details)

Uploaded CPython 3.10+Windows x86-64

forge3d-1.13.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.0 MB view details)

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

forge3d-1.13.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

forge3d-1.13.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (9.8 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.13.1.tar.gz.

File metadata

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

File hashes

Hashes for forge3d-1.13.1.tar.gz
Algorithm Hash digest
SHA256 e77ed19ddf915d0976f6c1e6d6a78904d87eb775ae1631c1061dfa660016b00b
MD5 8bd175d1288dead52d97be265f56e03c
BLAKE2b-256 2f2ba7541531f5c1fabef046afec5bd4b300a91b8bac818847d035f8676541ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: forge3d-1.13.1-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 6.2 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.13.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 174f8dfc4159e6b8593f6776d1f730f2e4a2592694006456dee1d61202940bf7
MD5 a5bd6622461b5c96428e45f2ab50cf57
BLAKE2b-256 b6c69d0dbce4a4499410e779f003efed5e041323680882bd2fc4577b2ab553d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge3d-1.13.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c9c7809579418e80ee13d29ffb408f3c2dd4efec4fd8d9941c703623e6ccede
MD5 7074575dcd7f3484d8d2d0fca476bf4d
BLAKE2b-256 1bf604faf75e3e2df20e1edf6567c73b90d2c43cdf49ce6bbad4a67e76d4c1c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge3d-1.13.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 55dc4b3be23427f5bf19cb37b197eb57a5be9b53fbe4f751f48a616b556cf92b
MD5 743a3b33c071b052aaafe5241ddc62b3
BLAKE2b-256 641c108d0120679d7dd4898598b6e866a0545d3f23168367cfac57d8325c9f52

See more details on using hashes here.

File details

Details for the file forge3d-1.13.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.13.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 cc525f283c1a6dc5b22a9a83d7f8b649a6717584268bd87a9a755339343a97aa
MD5 44a18c2cdc0595e9b420dcebc3624cef
BLAKE2b-256 9d2c7d5c421cbfc41a7e943d001d2ed0742537fe47d8ee27afe0ef238042fdc6

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