Skip to content

v2.0.0 - CDL v2.0

Latest

Choose a tag to compare

@Bissbert Bissbert released this 16 Feb 00:57
· 3 commits to main since this release

CDL v2.0 - Major Release

New Features

  • Amorphous materials: amorphous[subtype]:{shapes} syntax for non-crystalline materials (opal, obsidian, pearl, etc.)
  • Nested growth: > operator for overgrowth/phantom relationships (right-associative)
  • Aggregates: ~ operator for crystal clusters, druse linings, parallel growth (6 arrangement types)
  • Group-level twins: | twin(law) on individual form groups within expressions
  • Feature definitions: Edge case handling for @feat = [feature:value] definitions

New Models

  • AmorphousDescription - for non-crystalline materials
  • NestedGrowth - overgrowth relationships
  • AggregateSpec - crystal aggregate arrangements

New Constants

  • AMORPHOUS_SUBTYPES: opalescent, glassy, waxy, resinous, cryptocrystalline
  • AMORPHOUS_SHAPES: massive, botryoidal, reniform, stalactitic, mammillary, nodular, conchoidal
  • AGGREGATE_ARRANGEMENTS: parallel, random, radial, epitaxial, druse, cluster
  • AGGREGATE_ORIENTATIONS: aligned, random, planar, spherical

Breaking Changes

  • parse_cdl() now returns CrystalDescription | AmorphousDescription (union type)
  • FormNode type expanded: CrystalForm | FormGroup | NestedGrowth | AggregateSpec
  • FormGroup gains optional twin: TwinSpec | None field

Tests

  • 239 tests (was 163, +76 new)