Interactive CPU lab · original synthetic spectra

Hide a spectrum. Inspect the learning signal.

A tiny ridge model really fits on 72 training curves. Separate validation and inspection queries reveal its errors. The second panel explains contrastive arithmetic without training an encoder. This is not a trained foundation model.

72 train: fit means, scales and weights24 validation: inspect reconstruction24 queries: explore, not a sealed test

1. Predict the hidden wavelengths

Only visible circles enter the predictor
{{RECON}}

● Visible input · × Ridge prediction · solid line: target for inspection · shaded bands: hidden

{{SUMMARY}}

Errors use only hidden channels and have squared signal units. Each mask setting fits a separate model; a lower query score after exploration is not final-test evidence.

2. What should count as a positive view?

Clean anchor and transformed positive view
{{AUG}}

Solid line: clean query · dashed line: transformed view

{{LOSS}}

{{CONTRAST}}

Bars are denominator softmax shares, not class probabilities or confidence. Raw unit-normalized spectra act as demo embeddings. Three negatives are fixed training curves. Positive gain leaves cosine similarity unchanged; no encoder learned this invariance. Jitter is a sine perturbation, not a calibrated sensor-noise model.

Inspect every wavelength and the numeric fixtures
{{ROWS}}
Target values are visible here for teaching; hidden values are excluded from prediction inputs.
nmMaskTargetRidgePositive view

Known answers: hidden-band MSE fixture = 0.04; three equal candidate logits give ln(3) = 1.098612289; similarities [1, 0, −1] at τ = 1 give loss 0.407605964. Tests are in the source download.

Download runnable CPU source · Download all synthetic spectra

Static defaults shown. JavaScript enables controls; the Python code runs independently.