Skip to main content

3D crystal geometry engine for crystallographic visualization

Project description

Crystal Geometry

3D crystal geometry engine for crystallographic visualization. Computes polyhedra from Crystal Description Language (CDL) strings using half-space intersection with point group symmetry.

Part of the Gemmology Project.

Installation

pip install crystal-geometry

Quick Start

from crystal_geometry import cdl_string_to_geometry, create_octahedron

# Create geometry from CDL string
geom = cdl_string_to_geometry("cubic[m3m]:{111}@1.0 + {100}@1.3")
print(f"Vertices: {len(geom.vertices)}, Faces: {len(geom.faces)}")

# Use convenience constructors
octahedron = create_octahedron()
print(f"Octahedron has {len(octahedron.faces)} faces")

Features

  • CDL Integration: Parse Crystal Description Language strings to 3D geometry
  • Point Group Symmetry: All 32 crystallographic point groups supported
  • Half-Space Intersection: Robust geometry computation using scipy
  • 7 Crystal Systems: Cubic, tetragonal, orthorhombic, hexagonal, trigonal, monoclinic, triclinic
  • Miller Indices: Full support for 3-index (hkl) and 4-index (hkil) notation
  • Amorphous Geometry (v2.0): 7 parametric shape generators for non-crystalline materials (massive, botryoidal, reniform, stalactitic, mammillary, nodular, conchoidal)
  • Aggregate Layouts (v2.0): 6 spatial arrangement algorithms for crystal aggregates (parallel, random, radial, epitaxial, druse, cluster)
  • Nested Growth (v2.0): Geometry support for overgrowth relationships via the > operator

Core API

Geometry Generation

from cdl_parser import parse_cdl
from crystal_geometry import cdl_to_geometry, cdl_string_to_geometry

# From CDL string directly
geom = cdl_string_to_geometry("cubic[m3m]:{111}")

# From parsed description (more control)
desc = parse_cdl("cubic[m3m]:{111}@1.0 + {100}@1.3")
geom = cdl_to_geometry(desc, c_ratio=1.0)

Convenience Constructors

from crystal_geometry import (
    create_octahedron,
    create_cube,
    create_dodecahedron,
    create_truncated_octahedron,
)

# Regular polyhedra
octahedron = create_octahedron(scale=1.0)
cube = create_cube(scale=1.0)
dodecahedron = create_dodecahedron(scale=1.0)
truncated = create_truncated_octahedron(octahedron_scale=1.0, cube_scale=1.3)

CrystalGeometry Class

from crystal_geometry import CrystalGeometry

geom = cdl_string_to_geometry("cubic[m3m]:{111}")

# Properties
geom.vertices      # Nx3 numpy array of vertex positions
geom.faces         # List of face vertex indices
geom.face_normals  # List of unit normal vectors
geom.face_forms    # Form index for each face
geom.face_millers  # Miller indices for each face
geom.is_amorphous  # True for amorphous geometry (v2.0)
geom.aggregate_metadata  # AggregateMetadata or None (v2.0)
geom.component_ids       # Per-face component ID for aggregates/twins

# Methods
geom.get_edges()           # Get unique edges as vertex pairs
geom.center()              # Compute centroid
geom.scale_to_unit()       # Scale to fit unit sphere
geom.translate(offset)     # Translate by vector
geom.euler_characteristic()  # V - E + F (should be 2)
geom.is_valid()            # Verify geometry integrity
geom.to_dict()             # Export to dictionary

AggregateMetadata (v2.0)

from crystal_geometry import AggregateMetadata

# Attached to CrystalGeometry.aggregate_metadata for aggregate geometry
# Properties:
#   arrangement: str     - Layout algorithm ('parallel', 'random', etc.)
#   n_instances: int     - Number of crystal instances
#   spacing: float|None  - Spacing between instances
#   orientation: str|None - Orientation mode

Symmetry Operations

from crystal_geometry import (
    get_point_group_operations,
    generate_equivalent_faces,
    miller_to_normal,
    LatticeParams,
)

# Get symmetry operations for a point group
ops = get_point_group_operations('m3m')  # 48 operations
ops = get_point_group_operations('6/mmm')  # 24 operations

# Generate equivalent faces from one Miller index
faces = generate_equivalent_faces(1, 1, 1, 'm3m')  # 8 faces for {111}
faces = generate_equivalent_faces(1, 0, 0, 'm3m')  # 6 faces for {100}

# Convert Miller indices to normal vector
lattice = LatticeParams.cubic()
normal = miller_to_normal(1, 1, 1, lattice)

# Create lattice parameters
cubic = LatticeParams.cubic()
tetragonal = LatticeParams.tetragonal(c_ratio=1.5)
hexagonal = LatticeParams.hexagonal(c_ratio=1.2)

Crystal Systems and Point Groups

System Point Groups
Cubic m3m, 432, -43m, m-3, 23
Tetragonal 4/mmm, 422, 4mm, -42m, 4/m, -4, 4
Hexagonal 6/mmm, 622, 6mm, -6m2, 6/m, -6, 6
Trigonal -3m, 32, 3m, -3, 3
Orthorhombic mmm, 222, mm2
Monoclinic 2/m, 2, m
Triclinic -1, 1

Examples

Diamond-like Crystal

# Octahedron truncated by cube
geom = cdl_string_to_geometry("cubic[m3m]:{111}@1.0 + {100}@1.3")
assert len(geom.faces) == 14  # 8 octahedron + 6 cube

Garnet-like Crystal

# Dodecahedron with trapezohedron
geom = cdl_string_to_geometry("cubic[m3m]:{110}@1.0 + {211}@0.6")

Hexagonal Prism

# Prism with pinacoid termination
geom = cdl_string_to_geometry("hexagonal[6/mmm]:{10-10}@1.0 + {0001}@0.5")

Quartz-like Crystal

# Prism with rhombohedron
geom = cdl_string_to_geometry("trigonal[-3m]:{10-10}@1.0 + {10-11}@0.8")

Amorphous Shape (v2.0)

from crystal_geometry import generate_amorphous_shape

# Generate parametric mesh for an amorphous material
geom = generate_amorphous_shape("botryoidal", radius=1.0, seed=42)
print(geom.is_amorphous)  # True

Available shapes: massive, botryoidal, reniform, stalactitic, mammillary, nodular, conchoidal.

Crystal Aggregate (v2.0)

from crystal_geometry import generate_aggregate, cdl_string_to_geometry

# Generate base geometry, then arrange as aggregate
base = cdl_string_to_geometry("trigonal[32]:{10-10}@1.0 + {10-11}@0.8")
aggregate = generate_aggregate(base, arrangement="cluster", count=12, seed=42)
print(aggregate.aggregate_metadata.n_instances)  # 12

Available arrangements: parallel, random, radial, epitaxial, druse, cluster. Instance count is capped at 200 for performance.

Source Modules

Module Purpose
geometry.py Core half-space intersection engine
symmetry.py Point group symmetry operations
twins.py Twin geometry computation
habits.py Convenience constructors
amorphous.py Parametric mesh generators for amorphous shapes (v2.0)
aggregates.py Spatial layout algorithms for crystal aggregates (v2.0)
models.py CrystalGeometry, AggregateMetadata data classes
modifications.py Morphological modification transforms

Requirements

  • Python >= 3.10
  • numpy >= 1.20.0
  • scipy >= 1.7.0
  • cdl-parser >= 2.0.0

Documentation

See crystal-geometry.gemmology.dev for full documentation.

License

MIT License - see LICENSE for details.

Related Packages

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

gemmology_crystal_geometry-2.0.0.tar.gz (93.6 kB view details)

Uploaded Source

Built Distributions

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

gemmology_crystal_geometry-2.0.0-cp313-cp313-win_amd64.whl (158.6 kB view details)

Uploaded CPython 3.13Windows x86-64

gemmology_crystal_geometry-2.0.0-cp313-cp313-win32.whl (149.7 kB view details)

Uploaded CPython 3.13Windows x86

gemmology_crystal_geometry-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (180.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

gemmology_crystal_geometry-2.0.0-cp313-cp313-macosx_11_0_arm64.whl (141.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gemmology_crystal_geometry-2.0.0-cp312-cp312-win_amd64.whl (158.6 kB view details)

Uploaded CPython 3.12Windows x86-64

gemmology_crystal_geometry-2.0.0-cp312-cp312-win32.whl (149.7 kB view details)

Uploaded CPython 3.12Windows x86

gemmology_crystal_geometry-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (180.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

gemmology_crystal_geometry-2.0.0-cp312-cp312-macosx_11_0_arm64.whl (141.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gemmology_crystal_geometry-2.0.0-cp311-cp311-win_amd64.whl (157.1 kB view details)

Uploaded CPython 3.11Windows x86-64

gemmology_crystal_geometry-2.0.0-cp311-cp311-win32.whl (148.9 kB view details)

Uploaded CPython 3.11Windows x86

gemmology_crystal_geometry-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (179.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

gemmology_crystal_geometry-2.0.0-cp311-cp311-macosx_11_0_arm64.whl (141.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gemmology_crystal_geometry-2.0.0-cp310-cp310-win_amd64.whl (156.4 kB view details)

Uploaded CPython 3.10Windows x86-64

gemmology_crystal_geometry-2.0.0-cp310-cp310-win32.whl (147.9 kB view details)

Uploaded CPython 3.10Windows x86

gemmology_crystal_geometry-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (178.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

gemmology_crystal_geometry-2.0.0-cp310-cp310-macosx_11_0_arm64.whl (140.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file gemmology_crystal_geometry-2.0.0.tar.gz.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0.tar.gz
Algorithm Hash digest
SHA256 ce5652e22d89462ecdfc51c06ca74ab2f1ade9875520b2d0b1fc1d217a3d9806
MD5 606b911689c6c5659c0a35b0ea15aef9
BLAKE2b-256 491a86209de757606309bdd48e829c9de9e444a95f3231bc2141e529d826afdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0.tar.gz:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0828f7e56046c676c7238ba6c2e053e5a68ffe127e46b517173b7fdff815e930
MD5 96094da0ac6dcca53b3a0fdc6e34151b
BLAKE2b-256 c9a4942607a94c9ec9687b59bc003e43db24a78c51cc6a9e943dec4c110e3015

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp313-cp313-win_amd64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 ae48d000f31f0376fb78803beeb41009d5c19d7829d8172bac590502c1ceeff9
MD5 b78ee56010b4622072f3b9f728d904d4
BLAKE2b-256 a666f9e5d75ca55fdcfe1e68fbbb3b1acac9258a0b4e25018b8cb1c7ce4e3491

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp313-cp313-win32.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1588ac25c218d5201e3215ab739aa32c8f3c2696e6b1f9cd47138121800d441a
MD5 109c9126d54c1b4e481d9af2d6432485
BLAKE2b-256 d223d0edf1eaeabc6fe853db8ba6463e8e9c5d7c999a4b8b315e34b08b3ce73f

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77d459c1c29a8e0e8b750d6ec11e9bd17493d4c4818895be176c7cf2d2cb25e0
MD5 1b4920f3156b7a4ae75ff784b63964bd
BLAKE2b-256 e5fd1027cdd1b0028daf33efc6ac02885a08a10c34adfa63e8ca0fcd0dd3aad3

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4eb0116ee45c470a4af231ba23e9a352fe0f03a9a438915e60df3e61228efd5c
MD5 fbbca0c4a638cfcd13989b2c86bf3021
BLAKE2b-256 3c7418174eca9bac928be929f04dc8d4dd7eaf3658d49839f3f4350a3105ddd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp312-cp312-win_amd64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 db2afca2c47e2eeaf6fd785c42f3d2e32c0fa2662056b51f9b5f64eaec4f2a89
MD5 91601784dec41009f201a679ddd3cdd1
BLAKE2b-256 20d211bff92b988983deaa8d1c13280c694771d5143034d5f978c0a5240fd948

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp312-cp312-win32.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1de50120ad9cc6391a2e5606f9c202f9d6b0e9b0291d2aa85d120549eca999f4
MD5 152e239980d4de1fced666c24f8e16de
BLAKE2b-256 916f0852bb617b534adc107b096f804bd248631fe853574df634dda3f6027172

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 048104dfcd6f7364bb0f6dd4ae3a7f74053fcc944c8b4ccb7f03338274724d03
MD5 83daa6a678ad211f28c899906344de0e
BLAKE2b-256 651ddf605b7822d16614069a2f745068fe3b9703cbf3a74e25707991c8530536

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2037005016674d82ae84a75869f76753b05a377ddc7c823ddae58e1e213ccac3
MD5 98a20f6e8a9c73ff84d3589ff52049b1
BLAKE2b-256 7cf7d414a1820f37bbc7caa260faa73ed69148d23908c1d37bafa26ac114c591

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp311-cp311-win_amd64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 a92dc1987459355816d2f78ad1144d9edc3027cb3cb332e6ee3e5f6a06b12175
MD5 200b224ac089263626acfaa518733be8
BLAKE2b-256 a99f29551c1480a49646b41b814accaa54385a8cae539f347756e1f34abf692d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp311-cp311-win32.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e2b8c8f82aabac30ff1f754ba067ad0f3649903fe6951d8029b223ad905eeb6
MD5 4e730031ed9ed7f3a3d339cc5d638024
BLAKE2b-256 d5a34ab8a1b276b529e3d86b9293215a9e6e168f48bda530f855adce1409d505

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56edf54ce02a9563357f5825ae67b9e7d6d62a6433c6db53c9a907e96ab57bb8
MD5 4ecdde0131b10dcebb6e323d0d0ab936
BLAKE2b-256 e8a8a9e44d153697111dd674533a5e5b8e18a9b68564d5534713ca794b80b446

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cbfb169a855cd2e1fad8e4e82c02731c75a35a84da00dff3898650c18e10102f
MD5 755e710e924d6e1b66a09ee68953b88a
BLAKE2b-256 253221ca9f917b04b5c6ef44329fefccab80227b1e0e1608c9f9f4cded6d2310

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp310-cp310-win_amd64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d640b32141a237863e195f84ffd200b57364a85a2e73d82445f7521ab3a1d488
MD5 c0ec3f2d1a2aa2c2034900203bd4982b
BLAKE2b-256 244296e9c8f14051b006d549b07efc51ae83dfab07a017c4717fce4d984dc37b

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp310-cp310-win32.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a4759fc26033b4805f7a9dd46633c2177398fb9e2d0ac77c452aec5537f7fcc0
MD5 d997b0e09c6adac9798de7f762d6c3b7
BLAKE2b-256 956e99c18c908b56dfd81d68318f4e3124ced85891dc9789a6d11486a3b8727a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemmology_crystal_geometry-2.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gemmology_crystal_geometry-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21b4df3e3c5538f9f3cb80202cdbc8813ad3ccc840699d06e55f0cc17d2af384
MD5 e502b0ab315ab4a32d5311a822ecbdbd
BLAKE2b-256 5061c35afebc997907d293bfbd75934d5c7fea06f88d0125322927757b843adc

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemmology_crystal_geometry-2.0.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on gemmology-dev/crystal-geometry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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