Skip to main content

GEOAI_3D

CI License: MIT Python

Geospatial-first AI workflows for 3D data. Lidar point clouds, photogrammetry, and Gaussian splatting, with coordinate reference systems, vertical datums, and accuracy reporting treated as first-class concerns rather than afterthoughts.

Status: pre-alpha. Version 0.0.1 is a project skeleton. It installs and does nothing. Development is happening in the open from the first commit — see the roadmap below for what lands when, and CONTRIBUTING.md if you want to be involved early.

Why this exists

Working with 3D geospatial data today means assembling a pipeline by hand from low-level libraries — PDAL or laspy for IO, Open3D for structures, COLMAP for Structure-from-Motion, gsplat for splatting — each excellent, none aware of the others, and none aware that your data has a coordinate system.

Three problems recur, and none of them are solved by any existing package:

Scale. A 200-million-point survey does not fit in memory. Chunked processing is straightforward until you need a geometric feature computed near a tile boundary to match the value it would have had on the unchunked cloud. GEOAI_3D treats that seam contract as a tested guarantee, not an implementation detail.

Vertical datums. Most 3D tooling reduces "CRS handling" to horizontal reprojection. Mixing GNSS ellipsoidal heights with an orthometric product silently introduces errors of tens of metres. GEOAI_3D refuses to guess: geoid separation is handled explicitly, and data without a declared vertical datum raises rather than defaults.

Accuracy. Geomatics is the discipline that quantifies uncertainty; most 3D AI tooling treats a coordinate as a fact. Per-point uncertainty, registration covariance, and propagation into derived products are intended to be properties of the data, not a separate analysis.

Design commitments

These are constraints on the project, not aspirations:

  • Base install works on a CPU-only machine with no compiler. Anything requiring CUDA or a build toolchain lives in an optional extra, and CI verifies the bare install in a bare container.
  • Cross-platform. Linux, macOS, and Windows are tested on every commit, across Python 3.10 to 3.13. Colab-friendly throughout.
  • Spatial reference is never optional. Any function returning spatial data returns it with a CRS attached. Missing georeferencing is an error naming the parameter that would fix it, never a silent default.
  • Build on the ecosystem, own the middle. PDAL, laspy, Open3D, COLMAP, and gsplat are dependencies, not things to reimplement. What GEOAI_3D provides is the out-of-core execution model, the datum and CRS layer, uncertainty propagation, and provenance that sit between them.
  • Everything is provenanced. Outputs record what produced them, from which input, with which parameters and versions.

Installation

pip install geoai3d

Not yet published. Until the first release, install from source:

git clone https://github.com/agelamin17/geoai3d.git
cd geoai3d
pip install -e ".[dev]"

Roadmap

Development is staged. Each stage ships something installable and useful on its own.

Stage Focus Deliverable
0 Project skeleton, CI, open development from day one v0.0.1 (current)
1 Out-of-core IO, spatial indexing, CRS and vertical datums, multi-scale geometric features, provenance v0.1.0 on PyPI
2 Frugal segmentation, classical classification, GIS vector export v0.3.0 on PyPI and conda-forge
3 QGIS plugin, tutorial notebooks, tree segmentation, change detection Plugin in the QGIS repository
4 Consolidation and documentation Peer-reviewed software paper
5 Supervised segmentation and detection, pretrained geospatial models v1.0.0 and model zoo
6 Metric georeferenced Gaussian splatting validated against survey control Methods paper
7 Annotation and labelling workflows To be determined

Non-goals

Stating these early, because scope creep is the main risk to a project like this:

  • Not competing with gsplat on rasterisation performance. GEOAI_3D wraps it and adds georeferencing.
  • Not a desktop GUI application. Reach for non-coders comes via the QGIS plugin.
  • Not an autonomous-driving toolkit. Aerial, terrestrial, and survey geometry are the target; automotive benchmarks and detectors are explicitly out of scope.
  • Not a hosted service.

Contributing

Early contributors are genuinely welcome, particularly anyone with survey control data, benchmark scenes, or a workflow they would like to see supported. See CONTRIBUTING.md and SUPPORT.md.

Citing

A software paper is planned. Until then, cite the repository via CITATION.cff.

License

MIT. See LICENSE.

Code from proprietary or copyleft-incompatible sources is not accepted. See CONTRIBUTING.md for the specific traps.

Download files

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

Source Distribution

geoai3d-0.0.1.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

geoai3d-0.0.1-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file geoai3d-0.0.1.tar.gz.

File metadata

  • Download URL: geoai3d-0.0.1.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for geoai3d-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3b9270bf59bc1a51db0e7eb9fa6d3909819a6c078a3d6a331b82ec55341b5346
MD5 22e15fb9077460ec5f67a0e86e206cf0
BLAKE2b-256 4e58ae979d744badbcdaca7cd3c8343cea775d6651b46b0d0ee609f194744ec1

See more details on using hashes here.

File details

Details for the file geoai3d-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: geoai3d-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for geoai3d-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4133cbbef901609920ad48fec759919c2df684c69c68ce000d6073d2b8aad2be
MD5 5b4476fd93345e96805a4eb1880a73fe
BLAKE2b-256 15b97fd14451c916e5284bbb949e48e6291de556df87da0765c7e40151c90eec

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

2 files

0.1.0

2 files

This release

0.0.1 This release

2 files

Supported by

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