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.19.0.tar.gz (2.4 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.19.0-cp310-abi3-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

forge3d-1.19.0-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.19.0-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.19.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (10.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.19.0.tar.gz.

File metadata

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

File hashes

Hashes for forge3d-1.19.0.tar.gz
Algorithm Hash digest
SHA256 81b8ad795c7ae280cd9b6302dbe2c3823022cf1c23256a47ed98000745944f1f
MD5 aa00ed8a6b8e4179d83815007672cb5f
BLAKE2b-256 c263f128d58702e4977b560c4a010cc6573142530dad607f8a39368c000b0ef5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: forge3d-1.19.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 6.4 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.19.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e70a946a1a1f4c19a55743da841172fc5aa460624ebfd1cbb3e39e172ad19c40
MD5 1fc803f8df4fadf331ab3d27033012ac
BLAKE2b-256 164d77a9415bde85e2e28d0e57c23f97faeaeec22c12f333d0dd06a979e0212e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge3d-1.19.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5fb88b21158829e65ee69e4c5763cdea630cad4412f6d7f77369b37c8212a9d1
MD5 902fb74b03632cc892a6fa6b6e44bebe
BLAKE2b-256 7e05f6af67a9b65156488fbe9c635d5be4141c56123e80cf564b41925cdb78ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge3d-1.19.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d4bde8a5ed9fa195a5fb5b2d99a3c928cf2c8770405e01b17b56c0d650faa5e7
MD5 aba516c468e30694435c58760ab9a52b
BLAKE2b-256 cfd1a55831c49426e09b8b28c4a317bc9f57f0087f34faca6581053e0e2d195a

See more details on using hashes here.

File details

Details for the file forge3d-1.19.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.19.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 2827aa1444cce255b0029a94f2579389e1983c38d42bc6d1ad0586abee6184a4
MD5 3f70e5214918decd4e5db135133bb8a9
BLAKE2b-256 4ad76bef292fa43a8168eee0af637213ffcdeb642a3f9582b4953a4ad987b164

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