Claude Code plugin for coloured gemstone expertise and crystal visualization
Project description
Gemmology Plugin
A Claude Code plugin for coloured gemstone expertise and crystal visualization.
Part of the Gemmology Project.
Features
- Crystal Visualization: Generate SVG, STL, and glTF visualizations of crystal structures
- Mineral Database: Access FGA-curriculum aligned gemstone data for 50+ minerals
- CDL Parser: Parse and validate Crystal Description Language notation
- Gem Identification: Interactive workflow for systematic gemstone identification
Installation
pip install gemmology-plugin
This installs the core plugin along with all component packages:
cdl-parser- Crystal Description Language parsermineral-database- Gemstone property databasecrystal-geometry- 3D crystal geometry enginecrystal-renderer- SVG/STL/glTF visualization
Optional: Language Server
For editor integration with CDL syntax highlighting and completion:
pip install gemmology-plugin[lsp]
Quick Start
Command Line
# Generate crystal visualization
gemmology crystal-svg --preset diamond -o diamond.svg
# List available presets
gemmology list-presets
# Get mineral information
gemmology info ruby
Python API
from gemmology_plugin import generate_crystal_svg, get_preset
# Generate from CDL notation
svg = generate_crystal_svg("cubic[m3m]:{111}@1.0 + {100}@1.3")
# Generate from preset
ruby = get_preset("ruby")
svg = generate_crystal_svg(ruby['cdl'], info_properties={'name': ruby['name']})
Claude Code Plugin
When used as a Claude Code plugin, this package provides:
Commands
/crystal-svg- Generate crystal structure visualizations/identify-gem- Interactive gemstone identification workflow
Agents
Expert agents for domain-specific tasks:
crystallography-expert- Crystal systems, symmetry, Miller indicesgemmology-expert- Gemstone properties, FGA datacdl-expert- CDL syntax and parsing
Skills
Reference skills covering FGA curriculum topics:
- Physical properties (hardness, SG, cleavage)
- Optical properties (RI, birefringence, dispersion)
- Inclusions and fingerprints
- Treatments and enhancements
- Synthetics and simulants
- Origin determination
CDL Syntax Overview
Crystal Description Language (CDL) provides precise control over crystal morphology:
system[point_group]:{form}@distance + {form}@distance
Examples:
cubic[m3m]:{111} # Octahedron
cubic[m3m]:{111}@1.0 + {100}@1.3 # Truncated octahedron
trigonal[-3m]:{10-10}@1.0 + {0001}@0.5 # Quartz prism
Component Packages
This plugin integrates:
| Package | Description |
|---|---|
| cdl-parser | CDL parsing and validation |
| mineral-database | Gemstone property database |
| crystal-geometry | 3D geometry generation |
| crystal-renderer | Visualization and export |
| cdl-lsp | Language server (optional) |
Development
git clone https://github.com/gemmology-dev/gemmology-plugin
cd gemmology-plugin
pip install -e ".[dev]"
pytest tests/ -v
License
MIT License - see LICENSE for details.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gemmology_plugin-1.0.0.tar.gz.
File metadata
- Download URL: gemmology_plugin-1.0.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7d31bc642038911cd620b61c075a8ba5b3b04b98f2cf4cf6fe36e1784555772
|
|
| MD5 |
470b2d32a2c99769bca4f1204c082d90
|
|
| BLAKE2b-256 |
add100f2069dc7363778f2e5633bf1925a1fe9513817f0a4f9a6278b9b7ece28
|
Provenance
The following attestation bundles were made for gemmology_plugin-1.0.0.tar.gz:
Publisher:
pypi-publish.yml on gemmology-dev/gemmology-plugin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gemmology_plugin-1.0.0.tar.gz -
Subject digest:
b7d31bc642038911cd620b61c075a8ba5b3b04b98f2cf4cf6fe36e1784555772 - Sigstore transparency entry: 841135559
- Sigstore integration time:
-
Permalink:
gemmology-dev/gemmology-plugin@cb89b16a2aec3ce56f064835aa09344335bba1b4 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/gemmology-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@cb89b16a2aec3ce56f064835aa09344335bba1b4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gemmology_plugin-1.0.0-py3-none-any.whl.
File metadata
- Download URL: gemmology_plugin-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1751dfe4ab92a1d6e3245627abcdd13e922460bb6a84b4420a10f4a9402d65a
|
|
| MD5 |
7bd911380784e73670a1991974b9408f
|
|
| BLAKE2b-256 |
3c5e4af14a6f0ac36d7171f6f966b7a6f8e1cddbffe96136d22d1c76f7de1c69
|
Provenance
The following attestation bundles were made for gemmology_plugin-1.0.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on gemmology-dev/gemmology-plugin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gemmology_plugin-1.0.0-py3-none-any.whl -
Subject digest:
f1751dfe4ab92a1d6e3245627abcdd13e922460bb6a84b4420a10f4a9402d65a - Sigstore transparency entry: 841135579
- Sigstore integration time:
-
Permalink:
gemmology-dev/gemmology-plugin@cb89b16a2aec3ce56f064835aa09344335bba1b4 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/gemmology-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@cb89b16a2aec3ce56f064835aa09344335bba1b4 -
Trigger Event:
release
-
Statement type: