This PR adds a new top level module to Construction Zone: the Blueprints module.
The Blueprints module primarily consists of two main submodules: the Blueprints themselves, and a collections of Serializers. Together, these two submodules allow us to 1) generate a consistent, internal hierarchical tree representation of any CZ object and 2) read and write these tree representations directly to/from disk. This specifically lets us save arbitrary Generators, Volumes, and Scenes to disk in a reproducible format, allowing us to separate the creation of nanoscale objects from the actual generation of the atomic scene in computation.
Current supported formats are json, yaml, toml, and h5py--out of the box, json is supported with the use of Python's stdlib json module; other formats require (relatively light-weight) third-party dependencies.
This PR adds a new top level module to Construction Zone: the Blueprints module.
The Blueprints module primarily consists of two main submodules: the
Blueprint
s themselves, and a collections ofSerializer
s. Together, these two submodules allow us to 1) generate a consistent, internal hierarchical tree representation of any CZ object and 2) read and write these tree representations directly to/from disk. This specifically lets us save arbitrary Generators, Volumes, and Scenes to disk in a reproducible format, allowing us to separate the creation of nanoscale objects from the actual generation of the atomic scene in computation.Current supported formats are json, yaml, toml, and h5py--out of the box, json is supported with the use of Python's stdlib json module; other formats require (relatively light-weight) third-party dependencies.