Multi-scale theoretical physics testing framework for warp drive signatures.
This package provides a comprehensive analysis pipeline spanning three regimes:
- Signal vs. Noise Analysis: Compare synthetic warp signals against detector sensitivity curves
- Semi-Classical Testing: Generate Post-Newtonian corrections and compare with precision experiments
- Strong-Curvature Models: Explore Planck-scale physics with toy black hole and cosmological models
.
├── README.md
├── EXTENDED_FRAMEWORK.md # Detailed framework documentation
├── mock_data.ndjson # Synthetic signal time-series/spectra JSON-lines
├── mock_data.am # AsciiMath metadata for mock_data
├── sensitivity_curve.csv # Generated noise curve (frequency, noise PSD)
├── sensitivity_curve.am # AsciiMath metadata for sensitivity curve
├── generate_sensitivity_curve.py # Noise curve generator
├── analyze_sensitivity.py # Original signal vs noise analysis
├──
├── semi_classical/ # Post-Newtonian analysis
│ ├── compute_pn_corrections.py # PN expansion generator
│ ├── analyze_pn_tests.py # Experimental comparison
│ ├── theory_params.am # Theory configuration
│ ├── pn_config.am # PN expansion settings
│ └── pn_data/ # Experimental datasets
│ ├── ligo_data.csv # LIGO sensitivity curves
│ ├── ligo_data.am # LIGO metadata
│ └── atomic_interf.am # Atomic interferometry data
│
└── strong_curvature/ # Planck-scale models
├── generate_2d_blackhole.py # 2D black hole toy models
├── minisuperspace_cosmo.py # FRW minisuperspace cosmology
├── compare_strong_models.py # Model unification
├── blackhole_config.am # Black hole parameters
└── cosmo_config.am # Cosmology parameters
```markdown
## Prerequisites
- Python 3.7+
- NumPy
- SciPy
- SymPy (for symbolic PN calculations)
- ndjson
- tqdm (optional, for progress bars)
Install via:
```bash
pip install numpy scipy sympy python-ndjson tqdm
python generate_sensitivity_curve.py
This produces:
-
sensitivity_curve.csv
- Columns:
frequency_Hz
,noise_strain_per_sqrtHz
- Columns:
-
sensitivity_curve.am
- One-line AsciiMath metadata: model name, parameters, point count
python analyze_sensitivity.py `
--mock mock_data.ndjson `
--meta mock_data.am `
--noise sensitivity_curve.csv `
--nmeta sensitivity_curve.am `
--out sensitivity_comparison.ndjson `
--oam sensitivity_comparison.am
Outputs:
sensitivity_comparison.ndjson
JSON-line records:
{
"label": "signal1",
"detectable": true,
"snr": 12.5
}
sensitivity_comparison.am
AsciiMath summary: detector name, injection count, detection thresholds
Generate PN corrections for warp drive theories:
cd semi_classical/
python compute_pn_corrections.py \
--theory theory_params.am \
--pn-config pn_config.am \
--out pn_waveforms.ndjson \
--oam pn_summary.am
Configuration files:
theory_params.am
: ContainsWarpVelocity
,MassParameter
,TheoryType
pn_config.am
: ContainsMaxPNOrder
,FrequencyRange
,ExpansionParameter
Outputs:
pn_waveforms.ndjson
: PN corrections with observational signaturespn_summary.am
: Analysis metadata
Analyze against experimental data:
python analyze_pn_tests.py \
--pn-data pn_waveforms.ndjson \
--pn-meta pn_summary.am \
--exp-data pn_data/ligo_data.csv \
--exp-meta pn_data/ligo_data.am \
--out pn_analysis.ndjson \
--oam pn_analysis.am \
--snr-threshold 5.0
Flags and Input Specifications:
--pn-data
: PN corrections from compute_pn_corrections.py (.ndjson format)- Each entry contains:
pn_order
,correction
(symbolic expressions),signature
(frequency-domain observational signatures),v_over_c
,mass_parameter
- Each entry contains:
--pn-meta
: PN metadata file (.am format) containing analysis parameters- Required keys:
max_pn_order
,warp_velocity
,frequency_range
,n_corrections
- Required keys:
--exp-data
: Experimental sensitivity data (.csv with columns: frequency_hz, strain_sensitivity, experiment_type)- Compatible with LIGO, Virgo, atomic interferometry, and pulsar timing datasets
--exp-meta
: Experimental metadata (.am with keys: ExperimentType, InstrumentName, FrequencyRange, StrainSensitivity, DataSource)--snr-threshold
: SNR threshold for detectability (default: 5.0, recommended range: 3.0-10.0)
Outputs:
pn_analysis.ndjson
: Detection analysis for each PN order with fields:pn_order
: PN correction order ("1PN", "2PN", "3PN", etc.)theory_params
: Contains v_over_c and mass_parameter values from theoryexperimental_analysis
: Per-experiment detectability results including SNR, parameter bounds, frequency rangesoverall_detectability
: Boolean indicating if any experiment can detect this PN orderbest_snr
: Highest SNR achieved across all experimental datasets
pn_analysis.am
: Summary metadata including detection statistics, parameter constraints, and experiment coverage
Generate 2D black hole curvature data:
cd strong_curvature/
python generate_2d_blackhole.py \
--model-config blackhole_config.am \
--out blackhole_data.ndjson \
--oam blackhole_summary.am
Configuration (blackhole_config.am
):
ModelType
: "2d_schwarzschild" or "warp_bubble"MassParameter
: Characteristic mass scalePlanckLength
: Planck length (default: 1e-35)BubbleThickness
: For warp bubble models
Outputs:
blackhole_data.ndjson
: Curvature invariants and quantum parametersblackhole_summary.am
: Model summary and regime classification
Generate minisuperspace cosmology:
python minisuperspace_cosmo.py \
--cosmo-config cosmo_config.am \
--out cosmo_data.ndjson \
--oam cosmo_summary.am
Compare and unify strong-curvature models:
python compare_strong_models.py \
--models blackhole_data.ndjson cosmo_data.ndjson \
--meta blackhole_summary.am cosmo_summary.am \
--out unified_strong_models.ndjson \
--oam unified_summary.am
Flags and Input Specifications:
--models
: List of model data files (.ndjson) from toy model generators- Multiple files can be specified:
--models file1.ndjson file2.ndjson file3.ndjson
- Each .ndjson contains model results with curvature invariants, geodesic analysis, and Planck-scale physics indicators
- Expected structure:
model_type
,curvature_analysis
,geodesic_analysis
,planck_scale_analysis
- Multiple files can be specified:
--meta
: Corresponding metadata files (.am) with model parameters and analysis settings- Must match order of --models files:
--meta meta1.am meta2.am meta3.am
- Required keys:
model_type
, analysis parameters specific to each model class
- Must match order of --models files:
Outputs:
unified_strong_models.ndjson
: Unified comparison with regime classification, containing:model_id
: Unique identifier for each model in the comparisonmodel_type
: Type of model ("2d_schwarzschild", "warp_bubble", "frw_minisuperspace", etc.)regime_classification
: Overall physical regime ("classical", "semi_classical", "quantum_gravity")curvature_analysis
: Extracted curvature scales and quantum gravity parametersclassical_gr_valid
: Boolean indicating if classical General Relativity is adequatequantum_correction_strength
: Estimated strength of quantum gravity corrections (0.0-1.0)requires_quantum_gravity
: Boolean indicating if quantum effects dominateparameter_ranges
: Valid parameter ranges for classical and quantum regimes
unified_summary.am
: Summary statistics including:regime_distribution
: Count of models in each regime (classical/semi_classical/quantum_gravity)n_quantum_gravity
: Number of models requiring full quantum gravity treatmentn_classical_valid
: Number of models where classical GR remains validaverage_quantum_correction
: Average quantum correction strength across all modelsmodel_types_analyzed
: List of model types included in comparisonplanck_scale_physics_important
: Boolean indicating if any models reach Planck-scale physics
All configuration and metadata files use the AsciiMath format with consistent key-value pairs:
[ key1 = value1, key2 = "string_value", key3 = 1.23e-4, ... ]
Configuration Keys by Script:
Semi-Classical Analysis:
-
theory_params.am
:WarpVelocity
: Dimensionless warp velocity (v/c ratio)MassParameter
: Characteristic mass scale parameterTheoryType
: Theory model type ("alcubierre_warp", "van_den_broeck", etc.)MetricSignature
: Metric signature convention ("mostly_plus", "mostly_minus")
-
pn_config.am
:MaxPNOrder
: Maximum Post-Newtonian order to compute (integer: 1, 2, 3, ...)FrequencyRange
: Comma-separated frequency range in Hz ("10,1000")ExpansionParameter
: PN expansion parameter ("v_over_c", "frequency")SymbolicComputation
: Boolean for symbolic vs numerical computation
Strong-Curvature Models:
-
blackhole_config.am
:ModelType
: Model type ("2d_schwarzschild", "warp_bubble")MassParameter
: Characteristic mass scale in natural unitsPlanckLength
: Planck length in meters (default: 1e-35)BubbleThickness
: Warp bubble thickness parameter (for warp_bubble models)
-
cosmo_config.am
:ModelType
: Cosmology model ("frw_minisuperspace", "kasner")HubbleParameter
: Hubble parameter H₀ in units of 100 km/s/MpcOmegaMatter
: Matter density parameter ΩₘPlanckLength
: Planck length in metersScaleFactorRange
: Comma-separated scale factor range ("1e-10,1e10")
Experimental Data:
ligo_data.am
,atomic_interf.am
:ExperimentType
: Type of experiment ("gravitational_wave", "atomic_interferometry")InstrumentName
: Specific instrument name ("LIGO_H1", "LIGO_L1", "atom_interferometer")FrequencyRange
: Sensitive frequency range in HzStrainSensitivity
: Characteristic strain sensitivityDataSource
: Source of experimental data
-
One JSON object per line for efficient streaming and processing
-
For
mock_data.ndjson
:{ "label": "signal1", "time_series": [0.1, 0.2, ...], "sampling_rate": 16384 }
-
For
pn_waveforms.ndjson
:{ "pn_order": "1PN", "correction": {...}, "signature": {...}, "v_over_c": 0.1, "mass_parameter": 1e-6 }
-
For
blackhole_data.ndjson
:{ "model_type": "2d_schwarzschild", "curvature_analysis": {...}, "geodesic_analysis": {...} }
- Standard comma-separated with header row
- For sensitivity curves:
frequency_Hz, noise_strain_per_sqrtHz
- For experimental data:
frequency_hz, strain_sensitivity, experiment_type
# 1. Build the noise curve
python generate_sensitivity_curve.py
# 2. Run detection analysis
python analyze_sensitivity.py \
--mock mock_data.ndjson \
--meta mock_data.am \
--noise sensitivity_curve.csv \
--nmeta sensitivity_curve.am \
--out sensitivity_comparison.ndjson \
--oam sensitivity_comparison.am
# 3. Generate and analyze PN corrections
cd semi_classical/
python compute_pn_corrections.py \
--theory theory_params.am \
--pn-config pn_config.am \
--out pn_waveforms.ndjson \
--oam pn_summary.am
python analyze_pn_tests.py \
--pn-data pn_waveforms.ndjson \
--pn-meta pn_summary.am \
--exp-data pn_data/ligo_data.csv \
--exp-meta pn_data/ligo_data.am \
--out pn_analysis.ndjson \
--oam pn_analysis.am
# 4. Generate strong-curvature models
cd ../strong_curvature/
python generate_2d_blackhole.py \
--model-config blackhole_config.am \
--out blackhole_data.ndjson \
--oam blackhole_summary.am
python compare_strong_models.py \
--models blackhole_data.ndjson \
--meta blackhole_summary.am \
--out unified_models.ndjson \
--oam unified_summary.am
# 5. Inspect results
head ../sensitivity_comparison.ndjson
cat ../sensitivity_comparison.am
head pn_analysis.ndjson
head unified_models.ndjson