v0.7.0
Major Changes:
-
Finalized the
stitchingutility (docs here) which contains functions related to the automation of combining ("stitching") of the compositional graphs to form graph complexes so that much more complex graphs can be built from simpler ones while retaining homogeneous structure of the space. Furthermore, one can keep track of the provenance of the subgraphs and use this information to deploy computational (e.g., ML) models on the per-subgraph basis, which should be extremely useful for (a) combining the power of many specialized models and (b) creating stacked spaces for multi-step problems broken down into individual steps. -
Added a Jupyter notebook
03.CompositioalSpaceComplexes.ipynbdemonstrating the new graph complex construction ("stitching") capability. The included runnable examples demonstrate how to:-
Plot graphs using
igraph, which can be done quite directly usingnimplex's point grid and neighbor listsedges = [(i,n) for i in range(len(gridAtt)) for n in nList[i]] -
Identify ordered subsystems in
nimplexgrids, likeA-B-CandC-A-BwithinA-B-C-D-EandD-C-G-F-A-H-Bto establish connectivity between them. We will use this to combine 3 4-component systems (tetrahedra) by 2 3-component subsystems (triangles) to create a chain.
- Identify all subspaces of a given order in low dimensional and high dimensional spaces (e.g., all quantized compositions of any 3 things out of N) and combine ("stitch") them together to form a simplex graphs that intersect themselves in 3D because of high dimensionality, yet still have the same (graph) structure.
- Construct a graph complex to explore all ternary combinations of
["Ti50Zr50", "Hf95Ti5", "NbTaWHf", "Mo80Nb10W10", "TiTa2", "Nb96Mo3W1", "Zr49 Hf1 Mo50"](7 alloys) under equilibrium phase constraint (relatively expensive to compute) and then explore the space with an additional low-cost screenig constraint (RMSAD - alloy strenght surrogate) that could also be an ML surrogate.
-
-
Added automated tests for the new stitching capability.
-
Improvements in the (prototype!) plotting library in
utils/ternaryPlot.nim. It will be finalized and officially supported in the next major future release.- Many code improvements, including work towards more generality.
- Added new open-source font (
MartianMono). - Label placing improvements.
- Higher visibility path plotting with
pathType = "highvis"option - Improved path visibility alongside the edges
- Added color selection with OKlab for any N-component elemental space.
- Added some experimental Python bindings. More will follow for the most common use cases.
- Experimental phases-plotting example.
-
The paper has been accepted at the npj Unconventional Computing journal!
Minor Changes:
- Documentation improvements.
- Added
.pre-commit-config.yamlhooks with some basic checks. - Updated installation instructions.
- Added an example on how to call
pythonfunctions fromnim.
Full Changelog: v0.6.0...v0.7.0

