Generators

Generators are AI-powered tools that create new materials and structures using machine learning models. They enable the discovery of novel materials by generating candidates with desired properties. All generators implement the BaseGenerator interface with a standardized generate() method.

Available Generators

MatterGen - Microsoft’s Crystal Structure Generator

ID: mattergen

Generative model for crystal structures developed by Microsoft Research.

Capabilities:

  • Generate novel crystal structures

  • Condition on chemical composition

  • Ensure crystallographic validity

  • High structural diversity

Input Parameters:

  • composition: Target chemical composition

  • num_structures: Number of structures to generate

  • temperature: Generation temperature (creativity control)

  • constraints: Structural constraints

Output Format:

  • Crystal structures (CIF format)

  • Generation confidence scores

  • Structural validity metrics

Use Cases:

  • Discovery of new inorganic materials

  • Structure prediction for given compositions

  • Crystal polymorph exploration

GNoME - Graph Networks for Materials Exploration

ID: gnome

Deep learning framework for materials discovery using graph neural networks.

Capabilities:

  • Graph-based material representation

  • Property-conditioned generation

  • Stability-aware structure generation

  • Large-scale materials screening

Input Parameters:

  • target_properties: Desired material properties

  • element_constraints: Allowed chemical elements

  • num_candidates: Number of materials to generate

  • stability_threshold: Minimum stability requirement

Output Format:

  • Material structures with property predictions

  • Stability assessments

  • Graph representations

Use Cases:

  • Property-targeted material design

  • Screening large chemical spaces

  • Novel compound discovery

iMatGen - Inverse Materials Generator

ID: imatgen

Inverse design tool for targeted materials generation with specific properties.

Capabilities:

  • Inverse design from target properties

  • Multi-objective optimization

  • Synthesizability considerations

  • Property gradient optimization

Input Parameters:

  • target_properties: Property targets and ranges

  • optimization_weights: Property importance weights

  • synthesis_constraints: Manufacturing constraints

  • search_iterations: Number of optimization steps

Output Format:

  • Optimized material candidates

  • Property predictions

  • Synthesizability scores

  • Optimization convergence data

Use Cases:

  • Materials design for specific applications

  • Multi-property optimization

  • Synthesis-aware design

MatGAN - Materials Generative Adversarial Network

ID: matgan

GAN-based generator for creating new materials with learned representations.

Capabilities:

  • Adversarial training for realism

  • Latent space interpolation

  • Style transfer between material classes

  • Conditional generation

Input Parameters:

  • material_class: Type of material to generate

  • style_reference: Reference material for style

  • diversity_factor: Control structural diversity

  • num_samples: Number of samples to generate

Output Format:

  • Generated material structures

  • Latent space embeddings

  • Diversity metrics

  • Realism scores

Use Cases:

  • Exploring material design spaces

  • Creating material variants

  • Novel architecture discovery

MolGAN - Molecular Generative Adversarial Network

ID: molgan

Specialized GAN for molecular and small crystal structure generation.

Capabilities:

  • Molecular graph generation

  • Small molecule and clusters

  • Chemical validity enforcement

  • Scaffold-based generation

Input Parameters:

  • molecule_type: Target molecule class

  • size_range: Molecular size constraints

  • scaffold: Base molecular scaffold

  • chemical_constraints: Allowed chemical features

Output Format:

  • Molecular structures (MOL/SDF format)

  • Chemical validity scores

  • Property predictions

  • Scaffold compliance metrics

Use Cases:

  • Drug discovery applications

  • Small molecule catalysts

  • Molecular electronics materials

CondDFCVAE - Conditional Deep Feature Consistent VAE

ID: dfc-vae

Variational autoencoder with conditional generation and feature consistency.

Capabilities:

  • Conditional material generation

  • Feature consistency enforcement

  • Smooth latent space interpolation

  • Property-guided sampling

Input Parameters:

  • condition_vector: Property conditioning

  • latent_constraints: Latent space constraints

  • consistency_weight: Feature consistency importance

  • sampling_strategy: Latent space sampling method

Output Format:

  • Generated structures with conditions

  • Latent space coordinates

  • Feature consistency metrics

  • Interpolation trajectories

Use Cases:

  • Controlled property generation

  • Material property optimization

  • Design space exploration

MyGen1 - Custom Generator 1

ID: mygen1

Customizable generator template for domain-specific applications.

Capabilities:

  • Domain-specific material generation

  • Customizable generation logic

  • Integration with external tools

  • Extensible architecture

Input Parameters:

  • domain_parameters: Domain-specific inputs

  • generation_mode: Generation strategy

  • custom_constraints: User-defined constraints

Output Format:

  • Domain-specific material structures

  • Custom metrics

  • Generation metadata

MyGen2 - Custom Generator 2

ID: mygen2

Secondary custom generator for specialized applications.

Capabilities:

  • Alternative generation approaches

  • Specialized algorithms

  • Custom property targeting

  • Research-oriented features

Input Parameters:

  • algorithm_choice: Generation algorithm

  • research_parameters: Research-specific inputs

  • validation_criteria: Output validation rules

Output Format:

  • Specialized material outputs

  • Algorithm-specific metrics

  • Research data

Usage Patterns

Basic Material Generation

# Example of using a generator in a Feature
gen_instance = generator_factory["mattergen"]("mattergen", logger)
inputs = {
    'composition': 'Si2O4',
    'num_structures': 10,
    'temperature': 0.8
}
results = gen_instance.generate(inputs)

Property-Targeted Generation

# Generate materials with specific properties
gen_instance = generator_factory["gnome"]("gnome", logger)
inputs = {
    'target_properties': {
        'band_gap': (1.0, 3.0),  # eV range
        'formation_energy': (-2.0, 0.0)  # eV/atom
    },
    'element_constraints': ['Si', 'O', 'Al'],
    'num_candidates': 50
}
candidates = gen_instance.generate(inputs)

Multi-Generator Workflow

# Use multiple generators for diverse candidates
generators = ['mattergen', 'gnome', 'imatgen']
all_candidates = []

for gen_id in generators:
    gen_instance = generator_factory[gen_id](gen_id, logger)
    candidates = gen_instance.generate(generation_inputs)
    all_candidates.extend(candidates)

# Filter and rank combined results

Best Practices

Generator Selection

  • MatterGen: Excellent for general crystal structure generation

  • GNoME: Best for property-targeted design

  • iMatGen: Ideal for multi-objective optimization

  • MatGAN/MolGAN: Good for exploring design spaces

Input Design

  • Start with broad constraints and narrow down

  • Use multiple generation temperatures

  • Consider computational cost vs. diversity trade-offs

  • Validate input parameter ranges

Output Processing

  • Always validate generated structures

  • Use multiple quality metrics

  • Cross-reference with existing databases

  • Consider experimental feasibility

Integration Tips

  • Combine with predictors for property validation

  • Use databases for training data enhancement

  • Implement iterative refinement loops

  • Document generation parameters for reproducibility