Skip to main content

Sand Atlas

Code style: black codecov

Documentation here, or compile it yourself following the details below.

Installation

First, install ffmpeg and blender on your system. Both of these need to be available in your system path (so that running ffmpeg and blender in the command line works).

This package can then be installed via pip install sand-atlas. If installing from github, try cloning and then running:

pip install -e .

If you make any changes to the source code, re-run those two lines to have your changes reflected in your installed package.

Usage

Processing particles

If you are interested in reproducing a dataset that is available in the Sand Atlas, you can use the installed script sand_atlas_process, like so:

sand_atlas_process <path_to_json_file> --label <path_to_labelled_image> --raw <path_to_raw_image>

If you supply only the raw image, the script will attempt to label the image for you. If you supply the labelled image, the script will use that to generate the dataset. The json file contains the metadata for the dataset you are interested in. The json files for the datasets in the Sand Atlas are available here.

VDB files

VDB files are the industry standard for level set data. They can be viewed in recent versions of the open source software blender, via Add -> Volume -> Import OpenVDB. If you would like to use these files in a python environment that doesn't include the pyopenvdb package, you can use the vdb_to_npy script provided by the sand_atlas package to convert the VDB file to a numpy array:

vdb_to_npy <path_to_vdb_file>

This will produce a .npy file in the same directory where you run the script. You can then load this file in python with np.load:

import numpy as np
data = np.load('path_to_npy_file.npy')

Downloading particles from the python API

You can query the server to get a list of all of the available types of particles with

import sand_atlas
particles = sand_atlas.data.list()
print(particles)

If you would like to download all of the particles with a particular mesh quality to the current working directory, you do this via

import sand_atlas
sand_atlas.data.get_all('SAND-NAME', MESH-QUALITY)

If you would like to download a specific particle, you can do this via

import sand_atlas
sand_atlas.data.get_by_id('SAND-NAME', MESH-QUALITY, PARTICLE-ID)

Metadata

Release files for sand-atlas 1.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sand-atlas 1.3.1
File Size Uploaded
sand_atlas-1.3.1.tar.gz 61.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sand-atlas 1.3.1
File Interpreter ABI Platform
sand_atlas-1.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 110.7 kB

Release files / sand_atlas-1.3.1.tar.gz

Download URL sand_atlas-1.3.1.tar.gz
Size 61.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a2a317160b281e6f2cf7d94033ed2c5dc5bd9734f77ead2d0e355a3bca4332cb
BLAKE2b-256 checksum
How to use checksums
7fa43276de15ba99a7beeb0a2947b42034277aee5a1e68f045f0d8870db3e702
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.

Transparency log

Release files / sand_atlas-1.3.1-py3-none-any.whl

Download URL sand_atlas-1.3.1-py3-none-any.whl
Size 49.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09937aafde8764fe6057d69a662cf70a88b54ae0d36d43b3088b32984700e317
BLAKE2b-256 checksum
How to use checksums
8d230529ed8ffdbf6705a81680df165a3ff606b4f05e7705242f78554a57fea2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.1 This release

2 release files

1.2.0

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.1.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page