A Python package for creating Cesium 3D Tilesets. This package uses a forked version of the py3dtiles Python library to convert a .shp file to a .b3dm file and creates a tileset.json to load into Cesium.
This package was developed for the Permafrost Discovery Gateway, an NSF-funded research project whose mission is to create an online platform for analysis and visualization of permafrost big imagery products to enable discovery and knowledge-generation.
UV is a fast Python package manager. If you don't have UV installed, install it first:
# Install UV
curl -LsSf https://astral.sh/uv/install.sh | sh
Then create a virtual environment and install dependencies:
uv venv
source .venv/bin/activate
uv pip install -e .
python3 -m venv .3dtilesenv
source .3dtilesenv/bin/activate
pip:pip install -e .
Cesium3DTile class. Use Cesium3DTile.from_file() to process a .shp file into a .b3dm 3D model:tile = Cesium3DTile()
tile.save_to="~/my-tilesets/lakes/"
tile.from_file(filepath="~/my-data/lakes.shp")
Cesium3DTileset class to contain that tile:tileset = Cesium3DTileset(tiles=[tile])
tileset.save_to="~/my-tilesets/lakes/"
tileset.write_file()
See /test/test.py which creates an example tileset.
Usage: from the base directory (./viz-3dtiles) run python test/test.py
git clone https://github.com/PermafrostDiscoveryGateway/viz-3dtiles.git
cd viz-3dtiles
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
python3 -m venv .3dtilesenv
source .3dtilesenv/bin/activate
pip install -e ".[dev]"
pre-commit install
pre-commit run --all-files
The pre-commit hooks will automatically run on each commit and include: