All configuration files for PyDimension should be maintained in this directory (pydimension/configs/).
PyDimension carries three config families that correspond to different symmetry types and pipeline versions:
| Config file | Pipeline | Symmetry type | Status |
|---|---|---|---|
config_synthetic.json |
Legacy 2.0 | translational | production |
config_synthetic_with_noise.json |
Legacy 2.0 | translational (5% noise) | production |
config_keyhole.json |
Legacy 2.0 | translational (real data) | production |
config_translation.json |
3.0 | translational | active |
config_translation_v3.json |
3.0 | translational (alias) | kept for backward compat |
config_rotation.json |
3.0 | rotational | scaffold |
config_scaling.json |
3.0 | scaling | scaffold |
The 2.0 benchmark also has a frozen copy at legacy/pydimension_v2/configs/config_synthetic_v2.json.
The 3.0 config uses section names that match the new module names:
{
"DATA_GENERATION": { },
"DATA_PREPROCESSING": { "preprocessing_method": "dimensional_analysis" },
"INTRINSIC_COORDINATE": { "method": "pca_sir" },
"SYMMETRY_DISCOVERY": { "symmetry_type": "translational", "encoder_name": "translational" },
"OUTPUT": { "output_dir": "output_v3_translation" },
"DATA_GENERATION_OUTPUT": { },
"DATA_PREPROCESSING_OUTPUT": { },
"DIMENSIONAL_ANALYSIS_OUTPUT": { },
"INTRINSIC_COORDINATE_OUTPUT": { },
"SYMMETRY_DISCOVERY_OUTPUT": { }
}Legacy 2.0 sections (CONSTRAINT_FILTERING, OPTIMIZATION_DISCOVERY) are still accepted as fallbacks by the config loaders, so existing user configs continue to work.
# 3.0 translational pipeline
python run_pipeline.py --pipeline-version v3 --config pydimension/configs/config_translation.json
# Legacy 2.0 benchmark
python run_pipeline.py --pipeline-version v2 --config legacy/pydimension_v2/configs/config_synthetic_v2.json
# Individual modules
python generate_data.py --config pydimension/configs/config_synthetic.json --plot
python preprocess_data.py --config pydimension/configs/config_synthetic.json --plot
python discover_symmetry.py --config pydimension/configs/config_translation.jsonWhen adding a new symmetry type or module:
- Copy an existing config file (e.g.,
config_translation.json). - Update
SYMMETRY_DISCOVERY.symmetry_typeandencoder_name. - Update
OUTPUT.output_dirto a new directory name. - Add any module-specific parameters.
- Register the corresponding benchmark in
pydimension/benchmarks/.
When loading configs, the system checks in this order:
- Unified
OUTPUTsection for shared output paths. - Module-specific output sections (e.g.,
SYMMETRY_DISCOVERY_OUTPUT) for filenames. - Legacy fallback sections (e.g.,
OPTIMIZATION_DISCOVERY) for backward compatibility.