Fingerprint Atlas
Reference for the fingerprint system, reference scenarios, core-specific metrics, and regression detection.
ARIA Core Fingerprint Atlas
Version: 1.0 Last Updated: 2025-12-06
Overview
The Fingerprint Atlas provides a standardized system for characterizing and comparing ARIA core behaviors. A "fingerprint" is a compressed numeric summary of how a given core behaves under a specific reference scenario — enabling regression detection, cross-core comparison, and behavioral analysis.
What is a Fingerprint?
A fingerprint captures the statistical properties of a core's output trajectories over a reference run:
- Common metrics: Statistics for coherence, stability, intensity, alignment
- Core-specific metrics: Layer-specific measurements (symbols, relations, codes, etc.)
- Behavioral patterns: Dwell times, transitions, entropy distributions
All fingerprint values remain bounded in [0, 1] where applicable, maintaining safety invariants.
Purpose
- Regression Detection: Compare fingerprints across code versions to detect behavioral changes
- Cross-Core Comparison: Understand behavioral differences between core types
- Documentation: Establish canonical behavioral baselines for each core
- Validation: Verify that parameter changes produce expected behavioral shifts
Reference Scenarios
Reference scenarios define reproducible conditions for generating comparable fingerprints.
baseline_quiet
Description: Default configuration, small dt, short run for quick verification.
| Parameter | Value |
|---|---|
| Steps | 200 |
| Base dt | 0.1 |
| dt Pattern | constant |
| Seed | 42 |
Use case: Quick sanity checks, CI/CD pipelines, basic functionality verification.
baseline_long
Description: Default configuration, standard dt, long run for stability analysis.
| Parameter | Value |
|---|---|
| Steps | 5000 |
| Base dt | 0.1 |
| dt Pattern | constant |
| Seed | 42 |
Use case: Long-term stability verification, attractor basin analysis, steady-state characterization.
mild_perturbation
Description: φ-shaped dt pattern for controlled input modulation.
| Parameter | Value |
|---|---|
| Steps | 1000 |
| Base dt | 0.1 |
| dt Pattern | phi_wave |
| Seed | 42 |
Use case: Testing response to smooth perturbations, measuring adaptation behavior, phase-response analysis.
high_variability
Description: Variable dt schedule within safe bounds for stress testing.
| Parameter | Value |
|---|---|
| Steps | 1000 |
| Base dt | 0.1 |
| dt Pattern | variable |
| Seed | 42 |
Use case: Robustness testing, edge case detection, stability under varying conditions.
Metrics by Core Type
Common Metrics (All Cores)
| Metric | Description | Fingerprint Fields |
|---|---|---|
| Coherence | System coherence measure | mean, std, min, max, range |
| Stability | System stability measure | mean, std, min, max, range |
| Intensity | System intensity measure | mean, std, min, max, range |
| Alignment | System alignment measure | mean, std, min, max, range |
CFM v2 Specific
CFM v2 uses primarily the common metrics. No additional core-specific fields.
ARIA v0 Specific
| Metric | Description | Fingerprint Fields |
|---|---|---|
| Latent Channels | 5D concept channel values | latent_channel_stats (per-channel stats), latent_channel_mean |
| Attractor Memberships | 4 attractor cluster memberships | attractor_membership_mean |
| Stability Gate | Reinforcement gate value | mean, std, min, max, range |
ARIA v1 Specific
| Metric | Description | Fingerprint Fields |
|---|---|---|
| Symbol Entropy | Distribution entropy | mean, std, min, max, range |
| Dominant Symbol | Most active symbol | unique_count, mode, mode_fraction |
| Symbol Dwell Times | Persistence duration | mean_dwell, max_dwell, num_transitions |
| Symbol Activations | 8D activation vector | symbol_activation_mean |
ARIA v2 Specific
| Metric | Description | Fingerprint Fields |
|---|---|---|
| System State Vector | 12D state representation | ssv_mean, ssv_variance |
| State Entropy | SSV distribution entropy | mean, std, min, max, range |
| Coherence Index | Derived coherence measure | mean, std, min, max, range |
| Drift Index | Change detection metric | mean, std, min, max, range |
ARIA v3 Specific
| Metric | Description | Fingerprint Fields |
|---|---|---|
| Relational Summary Vector | 12D relation encoding | rsv_mean |
| Relation Density | Graph edge density | mean, std, min, max, range |
| Clustering Index | Relation clustering | mean, std, min, max, range |
| Asymmetry Index | Graph asymmetry | mean, std, min, max, range |
ARIA v4 Specific
| Metric | Description | Fingerprint Fields |
|---|---|---|
| Proto-Semantic Entropy | Code distribution entropy | mean, std, min, max, range |
| Proto-Semantic Diversity | Activation spread | mean, std, min, max, range |
| Code Confidence | 1 - entropy measure | mean, std, min, max, range |
| Dominant Code | Most active code index | unique_count, mode, mode_fraction |
| Code Dwell Times | Code persistence | mean_dwell, max_dwell, num_transitions |
| Code Activations | 16D activation vector | code_activation_mean |
Example Fingerprints
ARIA v4 - baseline_quiet
{
"core_type": "aria_v4",
"scenario": "baseline_quiet",
"num_steps": 200,
"timestamp": "2025-12-06T12:00:00",
"common_metrics": {
"coherence": {
"mean": 0.582,
"std": 0.089,
"min": 0.412,
"max": 0.738,
"range": 0.326
},
"stability": {
"mean": 0.724,
"std": 0.062,
"min": 0.591,
"max": 0.843,
"range": 0.252
},
"intensity": {
"mean": 0.445,
"std": 0.078,
"min": 0.298,
"max": 0.612,
"range": 0.314
},
"alignment": {
"mean": 0.531,
"std": 0.054,
"min": 0.423,
"max": 0.647,
"range": 0.224
}
},
"core_specific": {
"proto_semantic_entropy": {
"mean": 0.423,
"std": 0.091,
"min": 0.256,
"max": 0.612,
"range": 0.356
},
"proto_semantic_diversity": {
"mean": 0.387,
"std": 0.065,
"min": 0.234,
"max": 0.523,
"range": 0.289
},
"code_confidence": {
"mean": 0.577,
"std": 0.091,
"min": 0.388,
"max": 0.744,
"range": 0.356
},
"dominant_code_distribution": {
"unique_count": 8,
"mode": 3,
"mode_fraction": 0.235
},
"code_dwell_times": {
"mean_dwell": 12.5,
"max_dwell": 47,
"num_transitions": 16
},
"code_activation_mean": [0.045, 0.062, 0.089, 0.134, 0.078, 0.056, 0.067, 0.098,
0.072, 0.045, 0.038, 0.052, 0.061, 0.043, 0.031, 0.029]
}
}
ARIA v3 - baseline_long
{
"core_type": "aria_v3",
"scenario": "baseline_long",
"num_steps": 5000,
"timestamp": "2025-12-06T12:00:00",
"common_metrics": {
"coherence": {
"mean": 0.612,
"std": 0.074,
"min": 0.398,
"max": 0.782,
"range": 0.384
},
"stability": {
"mean": 0.756,
"std": 0.053,
"min": 0.612,
"max": 0.876,
"range": 0.264
},
"intensity": {
"mean": 0.478,
"std": 0.068,
"min": 0.312,
"max": 0.645,
"range": 0.333
},
"alignment": {
"mean": 0.567,
"std": 0.048,
"min": 0.456,
"max": 0.689,
"range": 0.233
}
},
"core_specific": {
"rsv_mean": [0.342, 0.456, 0.523, 0.412, 0.389, 0.467,
0.378, 0.445, 0.512, 0.398, 0.423, 0.489],
"relation_density": {
"mean": 0.412,
"std": 0.056,
"min": 0.298,
"max": 0.534,
"range": 0.236
},
"clustering_index": {
"mean": 0.578,
"std": 0.067,
"min": 0.423,
"max": 0.712,
"range": 0.289
},
"asymmetry_index": {
"mean": 0.187,
"std": 0.034,
"min": 0.112,
"max": 0.267,
"range": 0.155
}
}
}
ARIA v1 - mild_perturbation
{
"core_type": "aria_v1",
"scenario": "mild_perturbation",
"num_steps": 1000,
"timestamp": "2025-12-06T12:00:00",
"common_metrics": {
"coherence": {
"mean": 0.545,
"std": 0.112,
"min": 0.312,
"max": 0.756,
"range": 0.444
},
"stability": {
"mean": 0.698,
"std": 0.089,
"min": 0.512,
"max": 0.867,
"range": 0.355
},
"intensity": {
"mean": 0.423,
"std": 0.095,
"min": 0.234,
"max": 0.623,
"range": 0.389
},
"alignment": {
"mean": 0.512,
"std": 0.078,
"min": 0.356,
"max": 0.678,
"range": 0.322
}
},
"core_specific": {
"symbol_entropy": {
"mean": 0.356,
"std": 0.098,
"min": 0.178,
"max": 0.567,
"range": 0.389
},
"dominant_symbol_distribution": {
"unique_count": 6,
"mode": 2,
"mode_fraction": 0.312
},
"symbol_dwell_times": {
"mean_dwell": 23.8,
"max_dwell": 89,
"num_transitions": 42
},
"symbol_activation_mean": [0.087, 0.156, 0.234, 0.145, 0.112, 0.098, 0.089, 0.079]
}
}
Workflow
Step 1: Generate Reference Runs
# Generate all scenarios for all cores
python tools/aria_reference_runs.py --scenario all --output-dir reference_runs
# Or generate specific scenario/core combinations
python tools/aria_reference_runs.py --scenario baseline_quiet --cores aria_v4 aria_v3
python tools/aria_reference_runs.py --scenario baseline_long --output-dir reference_runs
Output structure:
reference_runs/
├── baseline_quiet/
│ ├── cfm_v2_run.json
│ ├── aria_v0_run.json
│ ├── aria_v1_run.json
│ ├── aria_v2_run.json
│ ├── aria_v3_run.json
│ └── aria_v4_run.json
├── baseline_long/
│ └── ...
├── mild_perturbation/
│ └── ...
└── high_variability/
└── ...
Step 2: Extract Fingerprints
# Batch process all reference runs
python tools/aria_fingerprint.py --batch reference_runs --output-dir fingerprints
# Or process a single run
python tools/aria_fingerprint.py --input reference_runs/baseline_quiet/aria_v4_run.json \
--output fingerprints/baseline_quiet/aria_v4_fingerprint.json
Output structure:
fingerprints/
├── baseline_quiet/
│ ├── cfm_v2_fingerprint.json
│ ├── aria_v0_fingerprint.json
│ ├── aria_v1_fingerprint.json
│ ├── aria_v2_fingerprint.json
│ ├── aria_v3_fingerprint.json
│ └── aria_v4_fingerprint.json
├── baseline_long/
│ └── ...
└── ...
Step 3: Compare Fingerprints
# Compare two fingerprints
python tools/aria_fingerprint.py --compare \
fingerprints/baseline_quiet/aria_v4_fingerprint.json \
fingerprints_v2/baseline_quiet/aria_v4_fingerprint.json
Example output:
============================================================
FINGERPRINT COMPARISON
============================================================
Fingerprint 1: fingerprints/baseline_quiet/aria_v4_fingerprint.json
Core: aria_v4
Scenario: baseline_quiet
Fingerprint 2: fingerprints_v2/baseline_quiet/aria_v4_fingerprint.json
Core: aria_v4
Scenario: baseline_quiet
Core type match: True
Scenario match: True
Total differences: 12
Significant differences (>5% relative): 2
Significant differences:
common_metrics.coherence.mean: 0.582 -> 0.621
(relative diff: 6.70%)
core_specific.proto_semantic_entropy.mean: 0.423 -> 0.398
(relative diff: 5.91%)
Regression Detection Workflow
- Before changes: Generate reference runs and fingerprints
- Make code changes: Modify parameters, fix bugs, etc.
- After changes: Generate new reference runs and fingerprints
- Compare: Check for unexpected behavioral changes
# Before changes
python tools/aria_reference_runs.py --scenario baseline_long --output-dir reference_v1
python tools/aria_fingerprint.py --batch reference_v1 --output-dir fingerprints_v1
# ... make changes ...
# After changes
python tools/aria_reference_runs.py --scenario baseline_long --output-dir reference_v2
python tools/aria_fingerprint.py --batch reference_v2 --output-dir fingerprints_v2
# Compare each core
for core in cfm_v2 aria_v0 aria_v1 aria_v2 aria_v3 aria_v4; do
python tools/aria_fingerprint.py --compare \
fingerprints_v1/baseline_long/${core}_fingerprint.json \
fingerprints_v2/baseline_long/${core}_fingerprint.json
done
Interpreting Differences
Acceptable Variations
Small variations (< 5% relative difference) are generally acceptable due to:
- Floating point precision differences
- Timing variations in trajectory sampling
- Natural run-to-run variation in stochastic components
Warning Signs
Investigate if you see:
- Large mean shifts (> 10%): Core behavior may have fundamentally changed
- Std changes: Stability characteristics may be affected
- Distribution mode changes: Dominant patterns shifted
- Dwell time changes: Temporal dynamics affected
Common Causes
| Pattern | Possible Cause |
|---|---|
| All metrics shifted | Parameter change affecting base dynamics |
| One metric changed | Specific component modified |
| Entropy increased | More uniform distribution, less "decided" behavior |
| Dwell times decreased | More transitions, less stable patterns |
| Range increased | More variability, less constrained dynamics |
Safety Invariants
The fingerprint system maintains all ARIA safety invariants:
- Bounded values: All metrics remain in [0, 1]
- Non-semantic: No text, labels, or meaning attached to codes/symbols
- Non-identity: No self-reference or ego modeling
- Deterministic: Same scenario + seed → same fingerprint
- Read-only: Tools only read core outputs, never modify behavior
Version History
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2025-12-06 | Initial fingerprint atlas documentation |