@essrt/physics 26.0.1 → 26.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@essrt/physics",
3
- "version": "26.0.1",
3
+ "version": "26.1.0",
4
4
  "description": "ESSRT (Expanding Solar System Resonance Theory) physics core — pure, injectable-constants, no I/O, no globals, no DOM. The complete model incl. fitted coefficients; every published version immutably ships one recorded model identity.",
5
5
  "essrt": {
6
- "modelVersion": "v27.1",
6
+ "modelVersion": "v27.2",
7
7
  "_note": "The model identity this package version ships (IP-unified-architecture §10: package semver tracks the API axis; the model version + CONSTANTS_HASH/COEFFICIENTS_HASH in src/constants/ carry the scientific identity). The version-pinning gate enforces this pairing against public/input/model-version.json."
8
8
  },
9
9
  "type": "module",
@@ -2,7 +2,7 @@
2
2
  // The fitted coefficients' shapes for TypeScript consumers (§2g); values live
3
3
  // in coefficients.js, emitted VERBATIM from the fit artifacts under data/.
4
4
 
5
- export declare const COEFFICIENTS_HASH: "1d7ef7b022b91f6c";
5
+ export declare const COEFFICIENTS_HASH: "a1e5567e03d1936e";
6
6
 
7
7
  export declare const FITTED_COEFFICIENTS: {
8
8
  readonly BALANCE_PRESETS: Array<Array<number | string>>;
@@ -310,7 +310,7 @@ export declare const FITTED_COEFFICIENTS: {
310
310
  "ratio": number;
311
311
  "label": string;
312
312
  };
313
- "39.5560": {
313
+ "39.5561": {
314
314
  "period_kyr": number;
315
315
  "lr04_post_mpt_amp": number;
316
316
  "epica_amp": number;
@@ -324,7 +324,7 @@ export declare const FITTED_COEFFICIENTS: {
324
324
  "ratio": number;
325
325
  "label": string;
326
326
  };
327
- "40.9239": {
327
+ "40.9240": {
328
328
  "period_kyr": number;
329
329
  "lr04_post_mpt_amp": number;
330
330
  "epica_amp": number;
@@ -20,15 +20,15 @@
20
20
  */
21
21
 
22
22
  /** @type {string} */
23
- export const COEFFICIENTS_HASH = "1d7ef7b022b91f6c";
23
+ export const COEFFICIENTS_HASH = "a1e5567e03d1936e";
24
24
 
25
25
  /** @type {Readonly<Record<string, unknown>>} */
26
26
  export const FITTED_COEFFICIENTS = Object.freeze({
27
27
  BALANCE_PRESETS: [["A",99.99472339,34,1,34,0,3,0,5,0,3,1,8,0,34,1,99.8851,7,7,5.5,0,12,1,85,36,36,11,3,54.52,218.64,236.07,287.06,116.26,21.33,354.04],["A",99.99776117,55,1,34,0,3,0,5,0,3,1,8,0,34,1,99.883,7,7,5.1,0,15,1,85,36,36,11,3,54.52,218.64,236.07,287.06,116.26,21.33,354.04],["A",99.99422845,13,1,55,1,3,0,5,0,3,1,21,0,34,0,99.8669,7,7,3.5,0,2,1,85,36,36,12,3,54.52,38.64,236.07,287.06,116.26,21.33,174.04],["A",99.99744637,21,0,34,0,5,0,5,0,3,1,21,0,34,0,99.8636,7,7,5.1,1,9,1,62,36,36,12,3,234.52,218.64,236.07,287.06,116.26,21.33,174.04],["A",99.99403253,21,0,55,0,3,0,5,0,3,1,8,0,34,1,99.863,7,7,3.3,0,9,1,85,36,36,11,3,234.52,218.64,236.07,287.06,116.26,21.33,354.04],["B",99.99533843,21,1,34,1,21,0,8,0,5,1,13,0,34,1,99.3938,7,7,4,0,9,1,35,39,39,12,3,54.52,38.64,236.07,287.06,116.26,21.33,354.04],["B",99.99507239,21,1,55,1,34,0,8,0,5,1,13,0,34,1,99.3775,7,7,2.2,0,9,1,32,39,39,12,3,54.52,38.64,236.07,287.06,116.26,21.33,354.04],["B",99.99738873,55,1,55,1,55,0,8,0,5,1,13,0,34,1,99.3701,7,7,1.9,0,15,1,30,39,39,12,3,54.52,38.64,236.07,287.06,116.26,21.33,354.04],["B",99.99487312,13,0,55,1,55,1,8,0,5,1,13,0,34,1,99.3024,7,7,2.2,0,2,1,30,39,39,12,3,234.52,38.64,56.07,287.06,116.26,21.33,354.04],["B",99.99489704,13,1,55,0,34,1,8,0,5,1,13,0,34,1,99.2544,7,7,2.3,0,2,1,32,39,39,12,3,54.52,218.64,56.07,287.06,116.26,21.33,354.04],["B",99.99530418,21,0,55,0,13,1,8,0,5,1,13,0,34,1,99.2526,7,7,1.9,0,9,1,40,39,39,12,3,234.52,218.64,56.07,287.06,116.26,21.33,354.04],["B",99.99888446,34,1,55,0,21,1,8,0,5,1,13,0,34,1,99.2452,7,7,2.1,0,12,1,35,39,39,12,3,54.52,218.64,56.07,287.06,116.26,21.33,354.04],["A",99.99955832,13,0,34,0,3,1,5,0,3,1,8,0,55,1,99.1096,7,7,5.6,0,2,1,85,36,36,11,3,234.52,218.64,56.07,287.06,116.26,21.33,354.04],["A",99.99648221,21,1,55,1,5,1,5,0,3,1,8,0,55,1,99.1063,7,7,3.1,0,9,1,62,36,36,11,3,54.52,38.64,56.07,287.06,116.26,21.33,354.04],["A",99.99973516,55,0,34,1,5,1,5,0,3,1,8,0,55,1,99.086,7,7,4.9,0,15,1,62,36,36,11,3,234.52,38.64,56.07,287.06,116.26,21.33,354.04]],
28
- CLIMATE_FORMULA_COEFFS: {"config":{"L1_lines":[{"family":"climatic precession","label":"p+g4","arcsecPerYr":68.20497787152276,"periodKyr":19.001545641452537,"relAmp":0.6717464199951804},{"family":"climatic precession","label":"p+g3","arcsecPerYr":67.65690623723043,"periodKyr":19.15547239857139,"relAmp":0.460782442830978},{"family":"climatic precession","label":"p+g2","arcsecPerYr":57.7403835908232,"periodKyr":22.44529598528639,"relAmp":0.8620464713605362},{"family":"climatic precession","label":"p+g1","arcsecPerYr":55.878226162522175,"periodKyr":23.19329171671584,"relAmp":0.19921489972571554},{"family":"climatic precession","label":"p+g5","arcsecPerYr":54.545319108164605,"periodKyr":23.76005899662999,"relAmp":1},{"family":"obliquity","label":"p+s7","arcsecPerYr":47.52668719388872,"periodKyr":27.268889891543882,"relAmp":0.10427252954025028},{"family":"obliquity","label":"p+s1","arcsecPerYr":44.933851006791144,"periodKyr":28.842397679293658,"relAmp":0.5416339451073867},{"family":"obliquity","label":"p+ζ14","arcsecPerYr":44.68230043443376,"periodKyr":29.004773420333045,"relAmp":0.14236226024182447},{"family":"obliquity","label":"p+ζ9","arcsecPerYr":43.758346063718456,"periodKyr":29.61720715204449,"relAmp":0.1009465170347195},{"family":"obliquity","label":"p+s2","arcsecPerYr":43.476583344095644,"periodKyr":29.809150128997057,"relAmp":0.47895780932341964},{"family":"obliquity","label":"p+s4","arcsecPerYr":32.763640723164436,"periodKyr":39.5560435713027,"relAmp":0.4849220480959469},{"family":"obliquity","label":"p+ζ4","arcsecPerYr":32.21536211501139,"periodKyr":40.229254458577174,"relAmp":0.3238058217329259},{"family":"obliquity","label":"p+s3","arcsecPerYr":31.668510863152665,"periodKyr":40.92393247034353,"relAmp":1},{"family":"obliquity","label":"p+ζ7","arcsecPerYr":31.12051824153533,"periodKyr":41.644550709000725,"relAmp":0.17878079100604266},{"family":"obliquity","label":"p+s6","arcsecPerYr":24.17122814428236,"periodKyr":53.6174658674332,"relAmp":0.16050040214935987},{"family":"eccentricity","label":"g4−g5","arcsecPerYr":13.659658763358156,"periodKyr":94.8779191670953,"relAmp":0.7792461802378098},{"family":"eccentricity","label":"z6−g5","arcsecPerYr":13.381652320125703,"periodKyr":96.84902648762181,"relAmp":0.10995041848327905},{"family":"eccentricity","label":"g3−g5","arcsecPerYr":13.111587129065821,"periodKyr":98.8438689567201,"relAmp":0.5345215810740946},{"family":"eccentricity","label":"z5−g5","arcsecPerYr":12.831040163189634,"periodKyr":101.00506143827943,"relAmp":0.15474467548919818},{"family":"eccentricity","label":"z7−g5","arcsecPerYr":12.567419265426008,"periodKyr":103.12379754572216,"relAmp":0.10461932722318636},{"family":"eccentricity","label":"g4−g1","arcsecPerYr":12.326751709000584,"periodKyr":105.13718703798536,"relAmp":0.15523744965772213},{"family":"eccentricity","label":"g3−g1","arcsecPerYr":11.77868007470825,"periodKyr":110.0293064910417,"relAmp":0.1064846631749067},{"family":"eccentricity","label":"g4−g2","arcsecPerYr":10.464594280699554,"periodKyr":123.8461774280429,"relAmp":0.6717464199951804},{"family":"eccentricity","label":"g3−g2","arcsecPerYr":9.91652264640722,"periodKyr":130.69097366197656,"relAmp":0.460782442830978},{"family":"eccentricity","label":"z5−g2","arcsecPerYr":9.635975680531033,"periodKyr":134.49598078775747,"relAmp":0.13339710146729455},{"family":"eccentricity fundamental","label":"g₂−g₅","periodKyr":405.6256163323513,"arcsecPerYr":3.1950644826586005,"note":"the engine’s 20-Myr mean beat; the long-eccentricity metronome"},{"family":"climate-internal harmonic","label":"(g₂−g₅)/2","periodKyr":202.81280816617564,"note":"carbon-thermostat 2nd harmonic (doc 92 §3), not orbital forcing"},{"family":"climate-internal harmonic","label":"(g₂−g₅)/3","periodKyr":135.20853877745043,"note":"carbon-thermostat 3rd harmonic (doc 92 §3), not orbital forcing"}],"L1_source":"data/l1-physical-lines.json","L2_periods_kyr":{"405-kyr (fundamental)":404.5,"202-kyr (2nd harmonic)":202.25,"135-kyr (3rd harmonic)":134.83},"L3_transitions_ma":{"PETM":56,"EOT":34,"Mi-1":23,"MMCT":14,"iNHG":2.7,"MPT":1},"description":"Climate formula = intercept + L1 + L2 + L3 (in normalized units). De-normalize: y_raw = y_norm * y_std + y_mean + (trend_slope*t_kyr + trend_intercept)."},"regimes":{"lr04-post-mpt":{"label":"LR04 post-MPT","regime":"post-mpt","window_kyr":[0,1000],"n_samples":1001,"intercept":-0.006261479472116254,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.08243240524922227,"b":-0.13304882592424963},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.055467018911117716,"b":0.0361252309677097},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.1356814594372895,"b":0.10397401220238245},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":0.004029396320670009,"b":-0.12019564741136535},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.1741892047467476,"b":-0.0894619114957137},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":0.0019179579971294047,"b":0.045652411597653014},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":-0.0776831184333972,"b":-0.27561881164941293},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":0.10709251537972231,"b":0.16481016562432482},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":-0.6221367449208888,"b":0.09703216393216468},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":0.3906872073645143,"b":-0.3974044955904187},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":0.03286470555244542,"b":0.31826889014339},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":-1.0063540117559187,"b":0.011829200163799403},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":-0.32304958008169904,"b":-1.136404569230472},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":0.5719436695842656,"b":0.2977185771922728},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":0.03013201836874352,"b":0.01772074727072398},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.021088386357628833,"b":-2.195508899861955},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.5991316818649339,"b":1.1476243724890838},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":1.186923212842382,"b":0.31207279706718605},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":-0.2104698841408345,"b":-0.13274643330087674},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.6785302619449846,"b":0.8192703043142138},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.02944413337667165,"b":0.9936969221330343},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":-0.9979419969659299,"b":-0.20796003201060137},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.3841854998790626,"b":-0.14573560890988857},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.9854674214965893,"b":0.3880259413113173},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.2514289239233489,"b":-0.06535702517105219},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":-0.07967976063217527,"b":-0.0475325959700533},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.024237037439603676,"b":0.17942472816716207},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.6840182828195369,"b":0.18329165821989277}],"L2":[],"L3":[],"denormalization":{"y_mean":1.5012965895430689e-15,"y_std":0.43131092949760913,"trend_slope":-0.00008678094360729054,"trend_intercept":4.192006855420027},"r2":{"l1_only":0.7804378878452816,"l1_l2":0.7804378878452816,"l1_l2_l3":0.7804378878452816,"delta_l2":0,"delta_l3":0}},"lr04-inhg-mpt":{"label":"LR04 inhg-MPT","regime":"inhg-mpt","window_kyr":[1000,2700],"n_samples":1701,"intercept":0.0005407849101125603,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.03503877506864678,"b":-0.09856246238430366},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.005005693307662373,"b":0.07295430743550124},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.11897109293971353,"b":-0.061556377105412174},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.022416871997079618,"b":-0.07917844873891108},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.12822120342945703,"b":0.01172670259894143},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":0.019252355487766215,"b":-0.006808609813554689},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":-0.10404810022894623,"b":-0.13081433820526067},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":-0.004623963342169635,"b":-0.15757830994963606},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":0.19982877327336845,"b":-0.03031495540202861},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":0.12354646397869687,"b":0.10862284559119528},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":0.11668229925473106,"b":-0.2691641896579636},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":0.00453142560761946,"b":-0.2056884780191695},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":-0.5826353220778854,"b":-0.5193032125987076},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":0.22531232553500583,"b":0.017688684764672058},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":-0.2293234422961013,"b":0.1088135079622009},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.1609120605368916,"b":0.03757149633919268},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-0.053464905746749336,"b":1.3428130379574261},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.953206115882617,"b":1.198468176780739},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.0697660042105355,"b":0.18007778017482998},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":1.2361966199819392,"b":0.6242750704518865},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.278251208675922,"b":0.7838878059317373},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.1181957404284075,"b":-0.22218992068223625},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.11106886118721995,"b":-0.0021299158908131555},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.04948019917501678,"b":-0.06668089878492656},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.44223319062230126,"b":-0.31488032653078424},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.13859459137445662,"b":0.08861345077557807},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.15224783180023477,"b":0.08152674915375335},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.2435177242679818,"b":0.5907913888353428}],"L2":[],"L3":[],"denormalization":{"y_mean":2.117321276827753e-15,"y_std":0.2533430989053228,"trend_slope":-0.00028446235786389366,"trend_intercept":4.264486402612575},"r2":{"l1_only":0.6089630016266958,"l1_l2":0.6089630016266958,"l1_l2_l3":0.6089630016266958,"delta_l2":0,"delta_l3":0}},"lr04-pre-inhg":{"label":"LR04 pre-iNHG","regime":"pre-inhg","window_kyr":[2700,5320],"n_samples":2621,"intercept":-0.019780930727055078,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":-0.035805318768695416,"b":-0.004163434196977289},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.029482033603654978,"b":-0.019598473935002414},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.02793575500828427,"b":-0.056285852892666854},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.03339282100161001,"b":-0.010058177000955015},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.04866527102370943,"b":-0.007002487725596251},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":0.01494876216897791,"b":-0.00600395082493102},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":0.03662170896068062,"b":-0.03183419814670585},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":-0.021943012656484573,"b":-0.014608030305763298},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":0.022948381776825955,"b":-0.014611274220878268},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":-0.03508296021275506,"b":0.07685077337256473},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":-0.03573136549654231,"b":-0.16083844295608896},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":-0.015687032747370627,"b":-0.10021667133442705},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":-0.38903903447828914,"b":-0.3594149228478518},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":0.06662831466813979,"b":0.12304542048600829},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":-0.18571987618832642,"b":0.20076484098397995},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.20725718824624959,"b":-0.13573905739305128},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-1.016197228050766,"b":-0.3791586630016193},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":0.588952118966851,"b":2.0260550833505913},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.67416919090064,"b":-2.4475589224592733},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-1.9393057263933409,"b":0.8411568643788081},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.5703002446288725,"b":0.6882960432008728},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.16670952357483337,"b":-0.1573271009310834},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.02856253535420218,"b":0.032546781500317146},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.037215669189511996,"b":-0.33646151609290054},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.1658706246879772,"b":1.539988216595495},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.2741625959109228,"b":0.12324647540286211},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.02857267433363002,"b":-0.06634102256884705},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-1.1531669594196328,"b":-0.6431671723141338}],"L2":[],"L3":[],"denormalization":{"y_mean":2.2229875746786803e-16,"y_std":0.1419188719967453,"trend_slope":-0.0001616384823512257,"trend_intercept":3.7150997304817532},"r2":{"l1_only":0.45467379777332084,"l1_l2":0.45467379777332084,"l1_l2_l3":0.45467379777332084,"delta_l2":0,"delta_l3":0}},"lr04-full":{"label":"LR04 full","regime":"lr04-full","window_kyr":[0,5320],"n_samples":5321,"intercept":-0.0017589880483601524,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.03065294954958657,"b":-0.05942340186614521},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.007132695862213462,"b":0.008893436015245587},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.08099490602121032,"b":-0.015103919935149979},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.002268964818697816,"b":-0.06635825644407431},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.07546505691235277,"b":-0.03155946054640326},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":0.014043408537645977,"b":0.006715083715687971},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":0.01816121699590161,"b":-0.057687903639246606},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":-0.016937378888613464,"b":-0.04998298185931903},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":0.0022086271646274205,"b":-0.01446306003921708},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":-0.025581978214192315,"b":0.0309901479615117},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":-0.01912379263568336,"b":-0.16671053844571732},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":-0.04630363429779309,"b":-0.10917338902200727},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":-0.41712274283288603,"b":-0.3046404579465512},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":0.13911951669837083,"b":0.07911630465552824},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":-0.11986934492884664,"b":0.10752585565025971},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.07815055836386586,"b":-0.26561277912623493},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-0.07259616119062533,"b":-0.030964091224476492},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.17395488558053873,"b":0.000791562409108805},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":-0.09381475188544089,"b":-0.030909749477917838},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.08438264932950987,"b":0.07861972783593148},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":-0.10328452012029149,"b":-0.005340280670694572},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.05724261959550306,"b":0.0032869687306770756},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.07899912903992748,"b":0.12103605418237409},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.07725377061255671,"b":-0.042569198289196725},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.05454951133541687,"b":0.12003087432548318},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.09355861032874926,"b":0.04910094786175068},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.015314835256918,"b":0.06009591046934088},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.1348709644191516,"b":0.038488007580443406}],"L2":[],"L3":[{"label":"iNHG","t_kyr":2700,"beta":-0.18331470559226293},{"label":"MPT","t_kyr":1000,"beta":0.07582828689178801}],"denormalization":{"y_mean":8.786640107689267e-16,"y_std":0.26728652336026737,"trend_slope":-0.0002890388734746666,"trend_intercept":4.253595893576046},"r2":{"l1_only":0.3253727364799045,"l1_l2":0.3253727364799045,"l1_l2_l3":0.3329006744474764,"delta_l2":0,"delta_l3":0.007527937967571896}},"cenogrid-d18o":{"label":"CENOGRID δ¹⁸O","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":-0.000017149874728015547,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.004113360713096271,"b":0.000612283902668832},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.0012149371734561723,"b":-0.0009668646537135993},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.0012714780768614783,"b":-0.0002881147551297321},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.0006778613450571236,"b":-0.005621596479389052},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.001515503629558838,"b":-0.002068925655515646},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":-0.002565411547005455,"b":-0.005348100347444994},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":0.00205522005878024,"b":-0.00495817115741807},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":0.00016456274134544775,"b":-0.004296237979604353},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":-0.0006244500892602428,"b":-0.001165673604421498},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":-0.0010393464818332387,"b":0.005147306929711322},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":-0.0018512861037702439,"b":-0.009394782199841967},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":-0.011344743890066494,"b":0.002808220849832007},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":-0.009436854682939293,"b":-0.01468445459856143},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":0.0042241945335908405,"b":0.0017810339313177066},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":-0.0025897836013760184,"b":0.011152367274696552},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.008877256794435202,"b":-0.030348499725273995},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.002058215396660861,"b":-0.0102380290686626},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.013651372027095434,"b":0.026204095651746275},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.0016749310912643912,"b":0.0032330230939125173},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.0045207256593481245,"b":0.007893320582307411},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":-0.00903932084953775,"b":-0.003374507433399841},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.012542290542401285,"b":0.007438159113483984},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.008945876001624905,"b":0.024560145567884547},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.007764302786340008,"b":-0.01256656435499126},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.005043269259928858,"b":-0.010094256207375025},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.04455260862673471,"b":-0.04012837519912692},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.003128157801043029,"b":0.005403795833748374},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.004077914496712917,"b":0.005390561847374758}],"L2":[],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.9399569971013908},{"label":"EOT","t_kyr":34000,"beta":-1.6915666401480203},{"label":"Mi-1","t_kyr":23000,"beta":1.3791513990309312},{"label":"MMCT","t_kyr":14000,"beta":-0.572671926373438},{"label":"iNHG","t_kyr":2700,"beta":-0.9437051105483468},{"label":"MPT","t_kyr":1000,"beta":0.9558155283721813}],"denormalization":{"y_mean":3.1388799311243884e-16,"y_std":0.5138368170014185,"trend_slope":-0.000060475169948230774,"trend_intercept":3.5886100819307556},"r2":{"l1_only":0.003982477644316917,"l1_l2":0.003982477644316917,"l1_l2_l3":0.6165986669115189,"delta_l2":0,"delta_l3":0.612616189267202}},"cenogrid-d13c":{"label":"CENOGRID δ¹³C","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":0.000029167142837877794,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.0009091211263757299,"b":-0.00022116955382656643},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.0036110914239109258,"b":-0.0013639914286166707},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.003593719675301214,"b":-0.0005757686344194319},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":0.0017764098127505648,"b":0.0002860904810720027},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.0032087474575965857,"b":-0.005816006950035958},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":-0.003452658156298422,"b":-0.0038120306386585506},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":-0.002875785120574504,"b":-0.0007160123280881073},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":-0.0022073252427677035,"b":-0.006006795458916419},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":-0.004491336700841414,"b":-0.0021993238453384637},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":-0.0029297335798159473,"b":0.0044208048966603505},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":0.004978066935301678,"b":0.007304975606576264},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":-0.005517829851657612,"b":-0.0072555999128625995},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":0.016532384832742213,"b":0.005779168971437518},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":-0.0020334137893681346,"b":-0.0032463318268662984},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":0.008915520385862822,"b":-0.004054842658865113},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.009282350179674114,"b":-0.003845643885828626},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.003148705803677386,"b":0.0010190486063635078},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.006504944756519977,"b":0.02207049906695835},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.005252439907282622,"b":0.010723726397858617},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":0.015463024799094347,"b":-0.007890675546466504},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":-0.006704077743705797,"b":-0.004724121909536135},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.015135186028105955,"b":0.004363573345518807},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":0.0004352946111127517,"b":0.007735862744259145},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.003434785257031687,"b":-0.015481600223384788},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.002674848114343516,"b":-0.019656539178381276},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.04090552798768797,"b":-0.08954033006650247},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.006897983129686607,"b":-0.0012436409136020801},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":0.0010627051676048676,"b":-0.007315104756639584}],"L2":[],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.2940570130685973},{"label":"EOT","t_kyr":34000,"beta":-0.6519384387930998},{"label":"Mi-1","t_kyr":23000,"beta":-0.7981218317897845},{"label":"MMCT","t_kyr":14000,"beta":0.8751969732966116},{"label":"iNHG","t_kyr":2700,"beta":1.3323529427123229},{"label":"MPT","t_kyr":1000,"beta":-1.3351822986622328}],"denormalization":{"y_mean":-1.6966918546618317e-16,"y_std":0.5116419176812778,"trend_slope":0.000014091551862757799,"trend_intercept":0.17563680335949733},"r2":{"l1_only":0.006340718980238025,"l1_l2":0.006340718980238025,"l1_l2_l3":0.3485557923662824,"delta_l2":0,"delta_l3":0.3422150733860444}},"epica-co2":{"label":"EPICA CO₂","regime":"epica-co2","window_kyr":[0,800],"n_samples":801,"intercept":0.04772254604975318,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":-0.057570776887117814,"b":-0.09305753505681291},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.09859328006243295,"b":-0.029102256953414563},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.007484720088752561,"b":-0.07760955237320875},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.0909416836692997,"b":0.12567965726306307},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.11298232171200909,"b":0.046583545925097766},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":0.0008630260369831555,"b":-0.08271274340575904},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":-0.13415104828436483,"b":-0.3066079534826644},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":0.30261366057060307,"b":0.37231443283049376},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":-0.10401218357234651,"b":0.06069068218917706},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":0.07675437255974785,"b":0.08743704031465308},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":0.25267178254331357,"b":-0.21263516454336073},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":0.19849521917299795,"b":0.3201965078162932},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":0.3341068581562226,"b":0.07642828266009302},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":-0.18113992323652417,"b":0.19410852702442669},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":-0.1024218182699044,"b":0.0723717802476003},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.621846077440066,"b":1.1004444096667692},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-0.23620585040294723,"b":-0.017168309605683746},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.27726306323229327,"b":-0.3987499029607976},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":-0.21762767555019835,"b":-0.3914548769902655},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":0.0028804917250010997,"b":-0.3340840253957438},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.24680293909130355,"b":-0.3624401368740964},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.5954751281788466,"b":-0.628274638605115},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":0.31357248585780995,"b":-0.8333120447957345},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.2126406564260409,"b":-0.3953416358958512},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.32440577796298,"b":0.15122266440140847},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.2715566850177307,"b":0.10051230972588084},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.2223335990505698,"b":-0.14842020528136166},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":0.3958866159294755,"b":0.287857524742149}],"L2":[],"L3":[],"denormalization":{"y_mean":2.980553797944989e-14,"y_std":25.51737494167102,"trend_slope":-0.006455378442643299,"trend_intercept":227.89326737247322},"r2":{"l1_only":0.7238243015482515,"l1_l2":0.7238243015482515,"l1_l2_l3":0.7238243015482515,"delta_l2":0,"delta_l3":0},"carbon_amplification_ratios":{"19.0015":{"period_kyr":19.001545641452537,"lr04_post_mpt_amp":0.15651546733468003,"epica_amp":0.1094262271223689,"ratio":0.6991400210202912,"label":"climatic precession p+g4"},"19.1555":{"period_kyr":19.15547239857139,"lr04_post_mpt_amp":0.0661938252358682,"epica_amp":0.10279871707979582,"ratio":1.5529955658778376,"label":"climatic precession p+g3"},"22.4453":{"period_kyr":22.44529598528639,"lr04_post_mpt_amp":0.1709387423859612,"epica_amp":0.07796963289882035,"ratio":0.4561261643236695,"label":"climatic precession p+g2"},"23.1933":{"period_kyr":23.19329171671584,"lr04_post_mpt_amp":0.12026316847375294,"epica_amp":0.1551314477414814,"ratio":1.2899331500262141,"label":"climatic precession p+g1"},"23.7601":{"period_kyr":23.76005899662999,"lr04_post_mpt_amp":0.19581959212185912,"epica_amp":0.12220896763491464,"ratio":0.6240895832265018,"label":"climatic precession p+g5"},"27.2689":{"period_kyr":27.268889891543882,"lr04_post_mpt_amp":0.045692682647884404,"epica_amp":0.08271724569669524,"ratio":1.8102952355441335,"label":"obliquity p+s7"},"28.8424":{"period_kyr":28.842397679293658,"lr04_post_mpt_amp":0.2863571131028035,"epica_amp":0.3346713924054784,"ratio":1.168720374287786,"label":"obliquity p+s1"},"29.0048":{"period_kyr":29.004773420333045,"lr04_post_mpt_amp":0.19654820666562553,"epica_amp":0.4797843937205882,"ratio":2.4410520037804955,"label":"obliquity p+ζ14"},"29.6172":{"period_kyr":29.61720715204449,"lr04_post_mpt_amp":0.629658137577938,"epica_amp":0.12042380676625035,"ratio":0.19125268074748658,"label":"obliquity p+ζ9"},"29.8092":{"period_kyr":29.809150128997057,"lr04_post_mpt_amp":0.5572852295851364,"epica_amp":0.11634633524966242,"ratio":0.2087734055615917,"label":"obliquity p+s2"},"39.5560":{"period_kyr":39.5560435713027,"lr04_post_mpt_amp":0.3199612090615895,"epica_amp":0.33023740383850775,"ratio":1.0321170019548844,"label":"obliquity p+s4"},"40.2293":{"period_kyr":40.229254458577174,"lr04_post_mpt_amp":1.006423532591397,"epica_amp":0.37673087961074553,"ratio":0.3743263818968116,"label":"obliquity p+ζ4"},"40.9239":{"period_kyr":40.92393247034353,"lr04_post_mpt_amp":1.181429801621263,"epica_amp":0.34273703484945034,"ratio":0.2901035968274341,"label":"obliquity p+s3"},"41.6446":{"period_kyr":41.644550709000725,"lr04_post_mpt_amp":0.6447913712069252,"epica_amp":0.2654991375762386,"ratio":0.41175975584052155,"label":"obliquity p+ζ7"},"53.6175":{"period_kyr":53.6174658674332,"lr04_post_mpt_amp":0.0349565932952164,"epica_amp":0.12541093825468444,"ratio":3.5876189992417302,"label":"obliquity p+s6"},"94.8779":{"period_kyr":94.8779191670953,"lr04_post_mpt_amp":2.195610177015087,"epica_amp":1.2639898903054725,"ratio":0.57568957528875,"label":"eccentricity g4−g5"},"96.8490":{"period_kyr":96.84902648762181,"lr04_post_mpt_amp":1.2946043691202604,"epica_amp":0.23682895646287871,"ratio":0.18293539100583617,"label":"eccentricity z6−g5"},"98.8439":{"period_kyr":98.8438689567201,"lr04_post_mpt_amp":1.2272636814692346,"epica_amp":0.4856709702506422,"ratio":0.3957348185104076,"label":"eccentricity g3−g5"},"101.0051":{"period_kyr":101.00506143827943,"lr04_post_mpt_amp":0.24883566401213555,"epica_amp":0.4478824911568282,"ratio":1.7999127775148231,"label":"eccentricity z5−g5"},"103.1238":{"period_kyr":103.12379754572216,"lr04_post_mpt_amp":1.0637702514670326,"epica_amp":0.33409644304781483,"ratio":0.3140682328604945,"label":"eccentricity z7−g5"},"105.1372":{"period_kyr":105.13718703798536,"lr04_post_mpt_amp":0.9941330544987269,"epica_amp":0.43849121263877044,"ratio":0.4410789990881769,"label":"eccentricity g4−g1"},"110.0293":{"period_kyr":110.0293064910417,"lr04_post_mpt_amp":1.0193800097226737,"epica_amp":0.8656325142888301,"ratio":0.8491754851307403,"label":"eccentricity g3−g1"},"123.8462":{"period_kyr":123.8461774280429,"lr04_post_mpt_amp":0.41089824290408106,"epica_amp":0.890357606745006,"ratio":2.1668566904844337,"label":"eccentricity g4−g2"},"130.6910":{"period_kyr":130.69097366197656,"lr04_post_mpt_amp":1.0591081955880004,"epica_amp":0.44889983051690424,"ratio":0.4238469991894285,"label":"eccentricity g3−g2"},"134.4960":{"period_kyr":134.49598078775747,"lr04_post_mpt_amp":0.2597846117930443,"epica_amp":0.3579209451882179,"ratio":1.3777603789455908,"label":"eccentricity z5−g2"},"405.6256":{"period_kyr":405.6256163323513,"lr04_post_mpt_amp":0.09278045017164487,"epica_amp":0.28956131921278855,"ratio":3.120930311041786,"label":"eccentricity fundamental g₂−g₅"},"202.8128":{"period_kyr":202.81280816617564,"lr04_post_mpt_amp":0.18105432074852218,"epica_amp":0.267321504190256,"ratio":1.4764712771564055,"label":"climate-internal harmonic (g₂−g₅)/2"},"135.2085":{"period_kyr":135.20853877745043,"lr04_post_mpt_amp":0.7081502970446216,"epica_amp":0.4894774430173151,"ratio":0.6912055887854445,"label":"climate-internal harmonic (g₂−g₅)/3"}}},"cenco2pip":{"label":"CenCO2PIP CO₂ (deep-time)","regime":"cenco2pip","window_kyr":[0,66000],"n_samples":661,"intercept":0.012710824053600382,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":-0.0020339097875183287,"b":0.00022217434249469092},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.0026330372957351893,"b":-0.0010667673119131998},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.0005776950930113517,"b":0.000032950521448107256},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.0009280348093158135,"b":0.00043817183410515236},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.00039345948924086015,"b":-0.0001325991420445382},{"period_kyr":27.268889891543882,"label":"obliquity p+s7","a":-0.00034971658008570356,"b":0.00044797074965526734},{"period_kyr":28.842397679293658,"label":"obliquity p+s1","a":-0.000384552814850494,"b":0.0002464837014044273},{"period_kyr":29.004773420333045,"label":"obliquity p+ζ14","a":-0.0006574156746607922,"b":-0.000012233691518947901},{"period_kyr":29.61720715204449,"label":"obliquity p+ζ9","a":-0.000746100134783839,"b":0.00048357672982657276},{"period_kyr":29.809150128997057,"label":"obliquity p+s2","a":-0.00032599519815770274,"b":-0.00027525326939174447},{"period_kyr":39.5560435713027,"label":"obliquity p+s4","a":-0.0005573847158311762,"b":4.3975189479108535e-7},{"period_kyr":40.229254458577174,"label":"obliquity p+ζ4","a":-0.0005356992277551539,"b":-0.00019124518224546627},{"period_kyr":40.92393247034353,"label":"obliquity p+s3","a":-0.0005284820040348964,"b":-0.0004813309679522161},{"period_kyr":41.644550709000725,"label":"obliquity p+ζ7","a":-0.0001566004948480356,"b":-0.0004534211464664248},{"period_kyr":53.6174658674332,"label":"obliquity p+s6","a":-0.003351261355073938,"b":-0.003242899060603807},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.031325382675099635,"b":-0.03179415675054521},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.031647279429596026,"b":0.035781144994991465},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":0.2000640346774423,"b":-0.16437244619996433},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.08062539180186565,"b":0.09521996832194717},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.024917964042491587,"b":-0.014039090852651901},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.012133891790271134,"b":0.038609897092132146},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":-0.002137453954107797,"b":-0.015874702815844674},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.0004683979086828761,"b":0.0007068946905901684},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":-0.00011026351065852435,"b":0.0017567884155732486},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.00044347228519818526,"b":0.00035600816532370405},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.00010755815185458945,"b":-0.00009538520712884004},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.0005635917105186019,"b":0.00013706239529518924},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.001380824480642591,"b":0.001765260855687019}],"L2":[],"L3":[{"label":"PETM","t_kyr":56000,"beta":-2.2502412590909224},{"label":"EOT","t_kyr":34000,"beta":1.5689083792079281},{"label":"Mi-1","t_kyr":23000,"beta":-0.21259657117148378},{"label":"MMCT","t_kyr":14000,"beta":-0.3699202766740759},{"label":"iNHG","t_kyr":2700,"beta":-0.242273520660646},{"label":"MPT","t_kyr":1000,"beta":0.24998700836465093}],"denormalization":{"y_mean":-2.091425032821257e-13,"y_std":209.18154000668048,"trend_slope":0.013251639299066168,"trend_intercept":214.15971983891893},"r2":{"l1_only":0.04732438630711089,"l1_l2":0.04732438630711089,"l1_l2_l3":0.6918024309879351,"delta_l2":0,"delta_l3":0.6444780446808243}}},"meta":{"script":"export_climate_formula_browser.py","consumer":"src/script.js — Climate Formula Explorer modal","stitched_lr04_r2":0.9214013227358522,"stitched_lr04_note":"R² of the three-regime stitched curve (post-MPT / iNHG-MPT / pre-iNHG blocks) against the raw gridded LR04 stack, 0-5320 kyr"}},
29
- DT_ANCHOR: {"deltaTStartSeconds":56.07578931788113,"usnoTargetLodSeconds":86400.0012},
30
- DT_RESONATOR: {"display_name":"Core-mantle swing","driver":"Resonator","functional_class":"episode (2-kick IMPULSE-CONSISTENT windowed damped oscillation — sin-only kicks, displacement-continuous; zero before first kick)","kick_epochs_year":[-1600,1600],"kick_coefficients_s":[{"cos":0,"sin":621.6213108466346},{"cos":0,"sin":1.2866895294935952}],"T0_lattice_n":685,"T0_yr":3916.1109489051096,"Q":1.8,"drive_tones":[{"pair":"bond-hallstatt","dn":726,"period_yr":3694.9531680440773,"phi_locked_rad":-0.4616152283022974,"amp_s":0,"phase_convention":"cos(2π·dn/8H·y − φ_locked), kick-1-envelope-shared","retired":"RETIRED (plan 06 D7 follow-up, 2026-09): shipped at amplitude 0 — measured to buy nothing once the GIA channel became the lagged response (kicks-only 11.89 / 21.04 s vs all three 12.04 / 21.34 s); dn/phase kept as the convention for the diagnostic column (DT_RESONATOR_COMPONENTS)."}],"rms_s":21.414677831410778,"raw_at_j2000_s":-83.11825338761497,"lod_raw_at_j2000_s_per_day":0.0004964519119797189,"deep_time_checks_s":{"900":-245.8439379884609,"2000":-82.32559425279462,"5000":5.334235000224568,"100000":-1.545960510634632e-17,"-100000":0,"-5000":0,"-801":0},"regeneration_rule":"drive-tone menu = Δn difference tones of the ACTIVE flag set (any count); refit this script after any stack change (3rd/5th cycle)","status":"JOINT WORLD SHIPPED (--joint --write): the two impulse kicks from the joint equality-constrained fit, the drive tone retired at amplitude 0 (plan 06 D7 follow-up); phases/epochs/T0/Q remain the Stage-1/3 convention. Default-ON.","impulse_consistent":true},
31
- DT_STACK: {"bond":{"lattice_n":1830,"period_yr":1465.8666666666666,"cos_coeff_s":165.17852694965433,"sin_coeff_s":329.7237072368537,"raw_at_j2000_s":139.42470773904614,"amplitude_s":368.78404097692743,"phase_deg":63.39094331476465,"source":"Stage D anchored fit (USNO LOD constraint active)","joint_mode":true},"hallstatt":{"lattice_n":1104,"period_yr":2429.8333333333335,"cos_coeff_s":-63.68849357995361,"sin_coeff_s":48.4125581385265,"raw_at_j2000_s":-71.63007485262531,"amplitude_s":80,"phase_deg":142.75986135238932,"target_amp_source":"CAPPED from anchored quad-fit free amp 100.73 s → 80 s prior","joint_mode":true},"jose5":{"lattice_n":2989,"period_yr":897.469387755102,"cos_coeff_s":-41.090618540470736,"sin_coeff_s":28.487910909042153,"raw_at_j2000_s":22.691082853696596,"amplitude_s":50.00000000000001,"phase_deg":145.26663270646682,"target_amp_source":"CAPPED from anchored quad-fit free amp 86.44 s → 50 s prior","joint_mode":true},"jose4":{"lattice_n":3749,"period_yr":715.5337423312883,"cos_coeff_s":38.2917424385587,"sin_coeff_s":-32.15186559158088,"raw_at_j2000_s":41.578586872059155,"amplitude_s":50.00000000000001,"phase_deg":-40.018678859355795,"target_amp_source":"unconstrained: quad-fit free amp 47.06 s (below 50 s prior — no cap applied)","joint_mode":true}},
28
+ CLIMATE_FORMULA_COEFFS: {"config":{"L1_lines":[{"family":"climatic precession","label":"p+g4","arcsecPerYr":68.20497787152276,"periodKyr":19.001545641452537,"relAmp":0.6717464199951804},{"family":"climatic precession","label":"p+g3","arcsecPerYr":67.65690623723043,"periodKyr":19.15547239857139,"relAmp":0.460782442830978},{"family":"climatic precession","label":"p+g2","arcsecPerYr":57.7403835908232,"periodKyr":22.44529598528639,"relAmp":0.8620464713605362},{"family":"climatic precession","label":"p+g1","arcsecPerYr":55.878226162522175,"periodKyr":23.19329171671584,"relAmp":0.19921489972571554},{"family":"climatic precession","label":"p+g5","arcsecPerYr":54.545319108164605,"periodKyr":23.76005899662999,"relAmp":1},{"family":"obliquity","label":"p+s7","arcsecPerYr":47.5266588616995,"periodKyr":27.268906147417248,"relAmp":0.10427252954025028},{"family":"obliquity","label":"p+s1","arcsecPerYr":44.93382267460193,"periodKyr":28.842415865333038,"relAmp":0.5416339451073867},{"family":"obliquity","label":"p+ζ14","arcsecPerYr":44.682272102244546,"periodKyr":29.004791811714906,"relAmp":0.14236226024182447},{"family":"obliquity","label":"p+ζ9","arcsecPerYr":43.75831773152924,"periodKyr":29.617226328291668,"relAmp":0.1009465170347195},{"family":"obliquity","label":"p+s2","arcsecPerYr":43.47655501190643,"periodKyr":29.8091695546043,"relAmp":0.47895780932341964},{"family":"obliquity","label":"p+s4","arcsecPerYr":32.76361239097522,"periodKyr":39.55607777721681,"relAmp":0.4849220480959469},{"family":"obliquity","label":"p+ζ4","arcsecPerYr":32.21533378282217,"periodKyr":40.2292898387119,"relAmp":0.3238058217329259},{"family":"obliquity","label":"p+s3","arcsecPerYr":31.66848253096345,"periodKyr":40.923969082915576,"relAmp":1},{"family":"obliquity","label":"p+ζ7","arcsecPerYr":31.120489909346112,"periodKyr":41.644588622327085,"relAmp":0.17878079100604266},{"family":"obliquity","label":"p+s6","arcsecPerYr":24.171199812093143,"periodKyr":53.61752871496249,"relAmp":0.16050040214935987},{"family":"eccentricity","label":"g4−g5","arcsecPerYr":13.659658763358156,"periodKyr":94.8779191670953,"relAmp":0.7792461802378098},{"family":"eccentricity","label":"z6−g5","arcsecPerYr":13.381652320125703,"periodKyr":96.84902648762181,"relAmp":0.10995041848327905},{"family":"eccentricity","label":"g3−g5","arcsecPerYr":13.111587129065821,"periodKyr":98.8438689567201,"relAmp":0.5345215810740946},{"family":"eccentricity","label":"z5−g5","arcsecPerYr":12.831040163189634,"periodKyr":101.00506143827943,"relAmp":0.15474467548919818},{"family":"eccentricity","label":"z7−g5","arcsecPerYr":12.567419265426008,"periodKyr":103.12379754572216,"relAmp":0.10461932722318636},{"family":"eccentricity","label":"g4−g1","arcsecPerYr":12.326751709000584,"periodKyr":105.13718703798536,"relAmp":0.15523744965772213},{"family":"eccentricity","label":"g3−g1","arcsecPerYr":11.77868007470825,"periodKyr":110.0293064910417,"relAmp":0.1064846631749067},{"family":"eccentricity","label":"g4−g2","arcsecPerYr":10.464594280699554,"periodKyr":123.8461774280429,"relAmp":0.6717464199951804},{"family":"eccentricity","label":"g3−g2","arcsecPerYr":9.91652264640722,"periodKyr":130.69097366197656,"relAmp":0.460782442830978},{"family":"eccentricity","label":"z5−g2","arcsecPerYr":9.635975680531033,"periodKyr":134.49598078775747,"relAmp":0.13339710146729455},{"family":"eccentricity fundamental","label":"g₂−g₅","periodKyr":405.6256163323513,"arcsecPerYr":3.1950644826586005,"note":"the engine’s 20-Myr mean beat; the long-eccentricity metronome"},{"family":"climate-internal harmonic","label":"(g₂−g₅)/2","periodKyr":202.81280816617564,"note":"carbon-thermostat 2nd harmonic (doc 92 §3), not orbital forcing"},{"family":"climate-internal harmonic","label":"(g₂−g₅)/3","periodKyr":135.20853877745043,"note":"carbon-thermostat 3rd harmonic (doc 92 §3), not orbital forcing"}],"L1_source":"data/l1-physical-lines.json","L2_periods_kyr":{"405-kyr (fundamental)":404.5,"202-kyr (2nd harmonic)":202.25,"135-kyr (3rd harmonic)":134.83},"L3_transitions_ma":{"PETM":56,"EOT":34,"Mi-1":23,"MMCT":14,"iNHG":2.7,"MPT":1},"description":"Climate formula = intercept + L1 + L2 + L3 (in normalized units). De-normalize: y_raw = y_norm * y_std + y_mean + (trend_slope*t_kyr + trend_intercept)."},"regimes":{"lr04-post-mpt":{"label":"LR04 post-MPT","regime":"post-mpt","window_kyr":[0,1000],"n_samples":1001,"intercept":-0.006261599801050812,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.082432569026859,"b":-0.13304910582737045},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.055467205713348844,"b":0.036125403621177665},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.1356815395217974,"b":0.10397374581445296},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":0.004029541170622819,"b":-0.12019560019609504},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.17418905453714204,"b":-0.08946188630724133},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":0.0019230416069616063,"b":0.045651647891608305},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":-0.07772762434063019,"b":-0.2756250852104706},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":0.10714373913583963,"b":0.1647900025830038},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":-0.6220964418038535,"b":0.09708536990429989},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":0.3906413121270396,"b":-0.397425433031512},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":0.03287092051454721,"b":0.3182437726095808},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":-1.0063110076137878,"b":0.011863846564191899},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":-0.32312414242408694,"b":-1.136345395979474},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":0.5719591440543469,"b":0.2976615710688269},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":0.030139847024031358,"b":0.01771557720651296},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.02108847154972597,"b":-2.19551138151326},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.5991339544857626,"b":1.1476263766560002},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":1.1869253433369662,"b":0.31207343960571327},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":-0.21047050684922874,"b":-0.13274559347681283},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.6785313191175962,"b":0.8192726341367963},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.029443915700263487,"b":0.9936986491668811},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":-0.9979454733740254,"b":-0.20796044328115149},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.3841888407687438,"b":-0.1457354872697259},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.9854679028340256,"b":0.3880220645216982},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.25142886456814856,"b":-0.06535721911085138},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":-0.07967979956456855,"b":-0.047532666125553624},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.024237211304726045,"b":0.17942475404584923},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.68401721864114,"b":0.18329294138954288}],"L2":[],"L3":[],"denormalization":{"y_mean":1.5012965895430689e-15,"y_std":0.43131092949760913,"trend_slope":-0.00008678094360729054,"trend_intercept":4.192006855420027},"r2":{"l1_only":0.7804375067209136,"l1_l2":0.7804375067209136,"l1_l2_l3":0.7804375067209136,"delta_l2":0,"delta_l3":0}},"lr04-inhg-mpt":{"label":"LR04 inhg-MPT","regime":"inhg-mpt","window_kyr":[1000,2700],"n_samples":1701,"intercept":0.0005407945238550157,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.035038697900469776,"b":-0.09856233456883343},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.0050055873000230955,"b":0.07295450844777218},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.1189707336083613,"b":-0.061556481183347445},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.022417211678624593,"b":-0.07917860548424852},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.12822098008948085,"b":0.011726379273122145},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":0.019253583137398833,"b":-0.006811777303043942},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":-0.10407446438276668,"b":-0.1307970655195877},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":-0.004653228450289371,"b":-0.15758023790494996},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":0.19983427595294445,"b":-0.030365954887064533},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":0.12358880765404787,"b":0.10860240473230665},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":0.11660509555060611,"b":-0.2692086622401496},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":0.004438742288984998,"b":-0.2056720629293153},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":-0.5827733879668409,"b":-0.5191599231280841},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":0.22529730269500345,"b":0.017663100228184708},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":-0.22929202500409512,"b":0.10886523178026528},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.16091225627385192,"b":0.03756959488628836},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-0.05346309938007432,"b":1.3428060555145303},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.9532005030349247,"b":1.1984612690364072},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.06976557078692491,"b":0.18007593952402745},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":1.2361887687342203,"b":0.6242698241337999},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.2782500662455729,"b":0.7838810405427987},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.11819499898152587,"b":-0.2221892717784572},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.11106845333381837,"b":-0.0021299971398698186},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.04947901851561723,"b":-0.06668073514545314},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.44222786180672413,"b":-0.31488000222020074},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.1385945293920966,"b":0.08861358143487359},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.15224767486821475,"b":0.08152656948678338},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.24351423105434325,"b":0.5907889361502039}],"L2":[],"L3":[],"denormalization":{"y_mean":2.117321276827753e-15,"y_std":0.2533430989053228,"trend_slope":-0.00028446235786389366,"trend_intercept":4.264486402612575},"r2":{"l1_only":0.6089622611717074,"l1_l2":0.6089622611717074,"l1_l2_l3":0.6089622611717074,"delta_l2":0,"delta_l3":0}},"lr04-pre-inhg":{"label":"LR04 pre-iNHG","regime":"pre-inhg","window_kyr":[2700,5320],"n_samples":2621,"intercept":-0.01978128420246711,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":-0.03580507973907532,"b":-0.004163296038171838},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.029482146560380618,"b":-0.019598575387339112},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.02793561984412768,"b":-0.056285597003484567},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.03339344700332514,"b":-0.010057893440145294},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.04866558654249398,"b":-0.007003106339032228},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":0.014945206229944758,"b":-0.006013718029498849},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":0.03659352999829785,"b":-0.031848715912644376},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":-0.021945277796354024,"b":-0.014588070628483996},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":0.022945223074794158,"b":-0.014615341699566353},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":-0.03504174594236702,"b":0.07686265798004002},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":-0.035834461164148707,"b":-0.16080639830211058},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":-0.01574863690392035,"b":-0.10018327768000293},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":-0.38923561668464834,"b":-0.3592128864512913},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":0.0666644162931373,"b":0.12301623264822864},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":-0.18560482759086044,"b":0.20084798554298505},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.20725858472850203,"b":-0.13573555478071403},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-1.0161864008771713,"b":-0.37916952305916485},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":0.5889243526694297,"b":2.026043894219197},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.674179064635289,"b":-2.447521913872399},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-1.9392786388870076,"b":0.8411384140330604},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.5702933503358304,"b":0.6882833795705612},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.16670723937186288,"b":-0.157327138899017},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.028563986340683856,"b":0.032547454212518846},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.03721523736581127,"b":-0.3364571543706422},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.16585357364556103,"b":1.5399798343428315},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.27416217667042886,"b":0.1232463684579172},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.028572513361765937,"b":-0.06634153361168266},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-1.1531696833038918,"b":-0.6431516714664054}],"L2":[],"L3":[],"denormalization":{"y_mean":2.2229875746786803e-16,"y_std":0.1419188719967453,"trend_slope":-0.0001616384823512257,"trend_intercept":3.7150997304817532},"r2":{"l1_only":0.45466691777331913,"l1_l2":0.45466691777331913,"l1_l2_l3":0.45466691777331913,"delta_l2":0,"delta_l3":0}},"lr04-full":{"label":"LR04 full","regime":"lr04-full","window_kyr":[0,5320],"n_samples":5321,"intercept":-0.0017594442067554764,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.030653248828978838,"b":-0.05942350042079483},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.007132467646760274,"b":0.00889346045248779},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.08099544126604592,"b":-0.015104023210019024},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.0022687884125290325,"b":-0.06635740004795854},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.07546493808551995,"b":-0.031559806535336785},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":0.014044611584100156,"b":0.0067116130949529396},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":0.018156070504627007,"b":-0.05769209107673573},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":-0.016937892903193467,"b":-0.04998100183225644},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":0.0022108299667193652,"b":-0.014471741599317106},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":-0.025563882575889194,"b":0.030997389732802638},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":-0.019174276513080974,"b":-0.16670301535160126},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":-0.046332620172037334,"b":-0.10915920384492028},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":-0.41722734354102786,"b":-0.3045429714864705},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":0.13911640253566376,"b":0.07908102204296569},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":-0.11982484735154347,"b":0.1075601512063676},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.07815149309609569,"b":-0.26561311217061434},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-0.07259701223776335,"b":-0.030963823278142608},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.17395536780158055,"b":0.0007920877657910108},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":-0.09381457474099936,"b":-0.030909390200411946},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.08438228103346493,"b":0.07861984239215711},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":-0.10328419278380341,"b":-0.005340015475780911},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.05724257014471312,"b":0.003286266021403028},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.07900004842300087,"b":0.12103628420135798},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.07725354094784148,"b":-0.04256825456998332},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.05454973179068978,"b":0.1200357372085461},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.09355780768106586,"b":0.0491005306751859},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.015315361983286493,"b":0.060095183483304365},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.134874128816246,"b":0.03848362052622878}],"L2":[],"L3":[{"label":"iNHG","t_kyr":2700,"beta":-0.18331459595720692},{"label":"MPT","t_kyr":1000,"beta":0.07582824645011141}],"denormalization":{"y_mean":8.786640107689267e-16,"y_std":0.26728652336026737,"trend_slope":-0.0002890388734746666,"trend_intercept":4.253595893576046},"r2":{"l1_only":0.32538277595053355,"l1_l2":0.32538277595053355,"l1_l2_l3":0.3329107046316774,"delta_l2":0,"delta_l3":0.007527928681143825}},"cenogrid-d18o":{"label":"CENOGRID δ¹⁸O","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":-0.000017153189963441282,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.0041133563757953726,"b":0.0006122983124506615},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.0012149238468332543,"b":-0.0009668638659978924},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":0.001271474975558205,"b":-0.0002880835940532768},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.0006778305944323756,"b":-0.005621586695796224},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":-0.0015154728839008066,"b":-0.0020688961615997646},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":-0.0025838705308555013,"b":-0.005343337153924464},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":0.0020378113308972034,"b":-0.004964761212448048},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":0.00015190071101328032,"b":-0.004300567138597734},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":-0.0006289738284916266,"b":-0.0011571215814992946},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":-0.0010285392327511055,"b":0.005153146635298594},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":-0.001866579735495099,"b":-0.009381223027510955},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":-0.011305875483692452,"b":0.0028442994919008584},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":-0.009463768159600965,"b":-0.014712775901222155},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":0.004221879395797408,"b":0.0017683663051216685},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":-0.0025427431745709064,"b":0.011125457232795979},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.008877268834356383,"b":-0.030348507200221336},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.002058209296970645,"b":-0.010238014497041124},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.013651379318455887,"b":0.026204106335075465},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.0016749516949839862,"b":0.003233024729202968},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.00452072476296185,"b":0.00789334014868309},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":-0.00903930523210411,"b":-0.0033745117991191027},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.01254228306792841,"b":0.007438162399727605},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.008945881544730524,"b":0.02456014359917774},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.007764308761380718,"b":-0.012566547694615883},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.005043263446453649,"b":-0.010094265773878905},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.04455260970399607,"b":-0.04012838466748332},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.0031281720790908413,"b":0.005403791627168142},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.00407789816964086,"b":0.005390573907260856}],"L2":[],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.9399569133341423},{"label":"EOT","t_kyr":34000,"beta":-1.6915666426837683},{"label":"Mi-1","t_kyr":23000,"beta":1.3791514319762492},{"label":"MMCT","t_kyr":14000,"beta":-0.5726719293808323},{"label":"iNHG","t_kyr":2700,"beta":-0.9437043782356765},{"label":"MPT","t_kyr":1000,"beta":0.9558147944349952}],"denormalization":{"y_mean":3.1388799311243884e-16,"y_std":0.5138368170014185,"trend_slope":-0.000060475169948230774,"trend_intercept":3.5886100819307556},"r2":{"l1_only":0.003982293170482154,"l1_l2":0.003982293170482154,"l1_l2_l3":0.6165984200404458,"delta_l2":0,"delta_l3":0.6126161268699637}},"cenogrid-d13c":{"label":"CENOGRID δ¹³C","regime":"cenogrid","window_kyr":[0,67000],"n_samples":13401,"intercept":0.000029171728885359142,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":0.0009091320399139437,"b":-0.00022115928548263435},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.0036110811186118646,"b":-0.0013639908854225027},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.0035936996494176513,"b":-0.0005757456806313066},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":0.0017764391388285852,"b":0.00028609196921533693},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.0032087864912957284,"b":-0.005815994175685588},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":-0.0034613398621327444,"b":-0.0038007916055494088},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":-0.002880030481366175,"b":-0.0007184357446750403},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":-0.00222924550740814,"b":-0.005993305851952227},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":-0.0045122307992258226,"b":-0.002182774632434506},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":-0.002911752724172761,"b":0.00443735412417718},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":0.004970040842946216,"b":0.007303213638112271},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":-0.005537469385975506,"b":-0.007230261221794727},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":0.016532276911093206,"b":0.005746291082190887},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":-0.00202261648778182,"b":-0.003241192550382815},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":0.008930111444512818,"b":-0.004090929946156231},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":0.00928235281110003,"b":-0.0038456358179925565},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.0031487257084246633,"b":0.001019046575856615},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.006504925311475366,"b":0.02207049946408811},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.005252438822833155,"b":0.010723725703556185},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":0.015463040483976124,"b":-0.007890682816031471},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":-0.006704077568200228,"b":-0.004724118051800087},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.01513520161974935,"b":0.004363577757359086},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":0.00043530659007362527,"b":0.007735868213717512},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.003434795162201869,"b":-0.01548160717282774},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":-0.002674843271039882,"b":-0.01965653360618317},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.04090553415162765,"b":-0.08954032654679996},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.006897984812984875,"b":-0.0012436402634086845},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":0.0010627090126314764,"b":-0.007315110344460395}],"L2":[],"L3":[{"label":"PETM","t_kyr":56000,"beta":1.2940570636469433},{"label":"EOT","t_kyr":34000,"beta":-0.651938379643522},{"label":"Mi-1","t_kyr":23000,"beta":-0.7981219419366887},{"label":"MMCT","t_kyr":14000,"beta":0.875197090932599},{"label":"iNHG","t_kyr":2700,"beta":1.3323528555767734},{"label":"MPT","t_kyr":1000,"beta":-1.335182279280602}],"denormalization":{"y_mean":-1.6966918546618317e-16,"y_std":0.5116419176812778,"trend_slope":0.000014091551862757799,"trend_intercept":0.17563680335949733},"r2":{"l1_only":0.006340691329060011,"l1_l2":0.006340691329060011,"l1_l2_l3":0.34855578574981616,"delta_l2":0,"delta_l3":0.34221509442075615}},"epica-co2":{"label":"EPICA CO₂","regime":"epica-co2","window_kyr":[0,800],"n_samples":801,"intercept":0.04772250565346167,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":-0.05757052391935907,"b":-0.09305698714821553},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":0.09859259619848049,"b":-0.029102368881593788},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.007485074899471478,"b":-0.07760949021966575},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.09094210739116673,"b":0.12567998232492333},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.1129816995567211,"b":0.04658363645006909},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":0.0008573046772781812,"b":-0.08271460205364659},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":-0.13418427589390933,"b":-0.3065802210556564},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":0.30264371068997126,"b":0.372269555996678},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":-0.10400040514362394,"b":0.06071412030976109},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":0.07674807125272162,"b":0.08742294868218459},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":0.25267469088322486,"b":-0.21264732735656397},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":0.1985065673388669,"b":0.32022925390857215},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":0.33407907444977286,"b":0.07638772763941364},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":-0.18111984141723292,"b":0.19412014579724163},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":-0.102421483378701,"b":0.07238187610949562},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.6218471138338892,"b":1.1004457556552618},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":-0.2362041415387267,"b":-0.01716911823443268},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":-0.2772633452327795,"b":-0.3987515044009958},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":-0.21762888581514123,"b":-0.3914542724050446},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":0.0028810008532560716,"b":-0.3340823690226681},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.2468045673913495,"b":-0.36243987669955635},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":0.5954725578323181,"b":-0.6282748203534358},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":0.31357278944415057,"b":-0.8333137268990354},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":0.21264050907592402,"b":-0.3953396925919381},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.32440609087814,"b":0.1512223862227542},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.27155662596449115,"b":0.10051237650574972},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":0.2223336292381805,"b":-0.14842010272579745},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":0.39588643435898874,"b":0.28785664530604516}],"L2":[],"L3":[],"denormalization":{"y_mean":2.980553797944989e-14,"y_std":25.51737494167102,"trend_slope":-0.006455378442643299,"trend_intercept":227.89326737247322},"r2":{"l1_only":0.723825049396513,"l1_l2":0.723825049396513,"l1_l2_l3":0.723825049396513,"delta_l2":0,"delta_l3":0},"carbon_amplification_ratios":{"19.0015":{"period_kyr":19.001545641452537,"lr04_post_mpt_amp":0.15651579152862083,"epica_amp":0.10942562808342772,"ratio":0.699134745540471,"label":"climatic precession p+g4"},"19.1555":{"period_kyr":19.15547239857139,"lr04_post_mpt_amp":0.06619407599203991,"epica_amp":0.1027980928795714,"ratio":1.5529802529751038,"label":"climatic precession p+g3"},"22.4453":{"period_kyr":22.44529598528639,"lr04_post_mpt_amp":0.1709386439214186,"epica_amp":0.07796960509331242,"ratio":0.4561262643990288,"label":"climatic precession p+g2"},"23.1933":{"period_kyr":23.19329171671584,"lr04_post_mpt_amp":0.12026312613825264,"epica_amp":0.1551319594859149,"ratio":1.2899378593200512,"label":"climatic precession p+g1"},"23.7601":{"period_kyr":23.76005899662999,"lr04_post_mpt_amp":0.19581944699695486,"epica_amp":0.12220842695836241,"ratio":0.6240872846518806,"label":"climatic precession p+g5"},"27.2689":{"period_kyr":27.268906147417248,"lr04_post_mpt_amp":0.045692133286174004,"epica_amp":0.08271904474909511,"ratio":1.8103563742804079,"label":"obliquity p+s7"},"28.8424":{"period_kyr":28.842415865333038,"lr04_post_mpt_amp":0.28637522794913195,"epica_amp":0.33465930711651803,"ratio":1.1686042452525351,"label":"obliquity p+s1"},"29.0048":{"period_kyr":29.004791811714906,"lr04_post_mpt_amp":0.1965592169991406,"epica_amp":0.47976852537672665,"ratio":2.440834536794193,"label":"obliquity p+ζ14"},"29.6172":{"period_kyr":29.617226328291668,"lr04_post_mpt_amp":0.6296265178297925,"epica_amp":0.12042544861874531,"ratio":0.19126489308904876,"label":"obliquity p+ζ9"},"29.8092":{"period_kyr":29.8091695546043,"lr04_post_mpt_amp":0.5572679872024051,"epica_amp":0.11633158813194598,"ratio":0.20875340196007566,"label":"obliquity p+s2"},"39.5561":{"period_kyr":39.55607777721681,"lr04_post_mpt_amp":0.31993686286555395,"epica_amp":0.3302474606182808,"ratio":1.032226976473979,"label":"obliquity p+s4"},"40.2293":{"period_kyr":40.2292898387119,"lr04_post_mpt_amp":1.0063809392570864,"epica_amp":0.3767646909352054,"ratio":0.37437582155851873,"label":"obliquity p+ζ4"},"40.9240":{"period_kyr":40.923969082915576,"lr04_post_mpt_amp":1.1813932750701814,"epica_amp":0.3427009088390781,"ratio":0.29008198715090855,"label":"obliquity p+s3"},"41.6446":{"period_kyr":41.644588622327085,"lr04_post_mpt_amp":0.6447787786198793,"epica_amp":0.2654939320574878,"ratio":0.4117597242045805,"label":"obliquity p+ζ7"},"53.6175":{"period_kyr":53.61752871496249,"lr04_post_mpt_amp":0.03496072159426824,"epica_amp":0.1254164911270599,"ratio":3.587354190870642,"label":"obliquity p+s6"},"94.8779":{"period_kyr":94.8779191670953,"lr04_post_mpt_amp":2.1956126593701737,"epica_amp":1.2639915720143144,"ratio":0.5756896903559022,"label":"eccentricity g4−g5"},"96.8490":{"period_kyr":96.84902648762181,"lr04_post_mpt_amp":1.2946071974982711,"epica_amp":0.23682731071604635,"ratio":0.18293372010730122,"label":"eccentricity z6−g5"},"98.8439":{"period_kyr":98.8438689567201,"lr04_post_mpt_amp":1.2272659053208135,"epica_amp":0.4856724460701151,"ratio":0.39573530395041645,"label":"eccentricity g3−g5"},"101.0051":{"period_kyr":101.00506143827943,"lr04_post_mpt_amp":0.2488357426916047,"epica_amp":0.44788255081583905,"ratio":1.7999124481522881,"label":"eccentricity z5−g5"},"103.1238":{"period_kyr":103.12379754572216,"lr04_post_mpt_amp":1.0637727201187808,"epica_amp":0.33409479112628293,"ratio":0.3140659511262687,"label":"eccentricity z7−g5"},"105.1372":{"period_kyr":105.13718703798536,"lr04_post_mpt_amp":0.9941347743278315,"epica_amp":0.438491914072792,"ratio":0.44107894160454386,"label":"eccentricity g4−g1"},"110.0293":{"period_kyr":110.0293064910417,"lr04_post_mpt_amp":1.019383496922233,"epica_amp":0.865630878043006,"ratio":0.8491709750614527,"label":"eccentricity g3−g1"},"123.8462":{"period_kyr":123.8461774280429,"lr04_post_mpt_amp":0.41090132345975183,"epica_amp":0.8903592879945408,"ratio":2.166844537023625,"label":"eccentricity g4−g2"},"130.6910":{"period_kyr":130.69097366197656,"lr04_post_mpt_amp":1.059107223123218,"epica_amp":0.4488980492703841,"ratio":0.42384570652499337,"label":"eccentricity g3−g2"},"134.4960":{"period_kyr":134.49598078775747,"lr04_post_mpt_amp":0.2597846031387007,"epica_amp":0.3579211112713804,"ratio":1.377761064154691,"label":"eccentricity z5−g2"},"405.6256":{"period_kyr":405.6256163323513,"lr04_post_mpt_amp":0.09278051954830373,"epica_amp":0.28956128701201084,"ratio":3.1209276303012983,"label":"eccentricity fundamental g₂−g₅"},"202.8128":{"period_kyr":202.81280816617564,"lr04_post_mpt_amp":0.18105436966901248,"epica_amp":0.2673214723574539,"ratio":1.4764707023981098,"label":"climate-internal harmonic (g₂−g₅)/2"},"135.2085":{"period_kyr":135.20853877745043,"lr04_post_mpt_amp":0.7081496012572424,"epica_amp":0.4894767789755957,"ratio":0.6912053302107113,"label":"climate-internal harmonic (g₂−g₅)/3"}}},"cenco2pip":{"label":"CenCO2PIP CO₂ (deep-time)","regime":"cenco2pip","window_kyr":[0,66000],"n_samples":661,"intercept":0.012710823332535535,"L1":[{"period_kyr":19.001545641452537,"label":"climatic precession p+g4","a":-0.0020338617801976266,"b":0.00022208633139098044},{"period_kyr":19.15547239857139,"label":"climatic precession p+g3","a":-0.0026329706784686893,"b":-0.0010668787332187707},{"period_kyr":22.44529598528639,"label":"climatic precession p+g2","a":-0.0005773515330844987,"b":0.00003291307390918333},{"period_kyr":23.19329171671584,"label":"climatic precession p+g1","a":-0.0009279217927520931,"b":0.00043826337409753457},{"period_kyr":23.76005899662999,"label":"climatic precession p+g5","a":0.0003935664632165048,"b":-0.00013247538208650822},{"period_kyr":27.268906147417248,"label":"obliquity p+s7","a":-0.00034673240956895274,"b":0.0004492328879011475},{"period_kyr":28.842415865333038,"label":"obliquity p+s1","a":-0.0003814047506930234,"b":0.00024647169666917456},{"period_kyr":29.004791811714906,"label":"obliquity p+ζ14","a":-0.0006561438457021104,"b":-0.000009234244011747765},{"period_kyr":29.617226328291668,"label":"obliquity p+ζ9","a":-0.0007415078762596315,"b":0.00048539168484503263},{"period_kyr":29.8091695546043,"label":"obliquity p+s2","a":-0.00032575297135806897,"b":-0.0002768928850926805},{"period_kyr":39.55607777721681,"label":"obliquity p+s4","a":-0.0005578089164868538,"b":0.000002532301888910431},{"period_kyr":40.2292898387119,"label":"obliquity p+ζ4","a":-0.0005369607748816922,"b":-0.00018901440570610276},{"period_kyr":40.923969082915576,"label":"obliquity p+s3","a":-0.0005310699479013138,"b":-0.00047953946468817354},{"period_kyr":41.644588622327085,"label":"obliquity p+ζ7","a":-0.00016030653793037454,"b":-0.00045444969546296066},{"period_kyr":53.61752871496249,"label":"obliquity p+s6","a":-0.0033519053865770287,"b":-0.0032382954142333026},{"period_kyr":94.8779191670953,"label":"eccentricity g4−g5","a":-0.03132542098776035,"b":-0.03179411879600634},{"period_kyr":96.84902648762181,"label":"eccentricity z6−g5","a":0.031647295012709374,"b":0.03578118100828458},{"period_kyr":98.8438689567201,"label":"eccentricity g3−g5","a":0.20006403256246674,"b":-0.16437243706923396},{"period_kyr":101.00506143827943,"label":"eccentricity z5−g5","a":0.08062540387177358,"b":0.09521995627738682},{"period_kyr":103.12379754572216,"label":"eccentricity z7−g5","a":-0.02491796986013184,"b":-0.014039062779737035},{"period_kyr":105.13718703798536,"label":"eccentricity g4−g1","a":0.012133958115513273,"b":0.03860990013383617},{"period_kyr":110.0293064910417,"label":"eccentricity g3−g1","a":-0.002137273435450621,"b":-0.015874644486902144},{"period_kyr":123.8461774280429,"label":"eccentricity g4−g2","a":-0.00046859356446693305,"b":0.0007067808363629786},{"period_kyr":130.69097366197656,"label":"eccentricity g3−g2","a":-0.00011035789585776747,"b":0.0017566689342053362},{"period_kyr":134.49598078775747,"label":"eccentricity z5−g2","a":0.0004433859046877901,"b":0.00035608509416867537},{"period_kyr":405.6256163323513,"label":"eccentricity fundamental g₂−g₅","a":0.00010765685191621403,"b":-0.00009531205076887192},{"period_kyr":202.81280816617564,"label":"climate-internal harmonic (g₂−g₅)/2","a":-0.0005633780713438881,"b":0.0001369956977748804},{"period_kyr":135.20853877745043,"label":"climate-internal harmonic (g₂−g₅)/3","a":-0.0013808240665499367,"b":0.0017651150118173323}],"L2":[],"L3":[{"label":"PETM","t_kyr":56000,"beta":-2.2502408814529162},{"label":"EOT","t_kyr":34000,"beta":1.5689079946773803},{"label":"Mi-1","t_kyr":23000,"beta":-0.21259643895733238},{"label":"MMCT","t_kyr":14000,"beta":-0.3699202105260202},{"label":"iNHG","t_kyr":2700,"beta":-0.24227399068087263},{"label":"MPT","t_kyr":1000,"beta":0.24998745524516897}],"denormalization":{"y_mean":-2.091425032821257e-13,"y_std":209.18154000668048,"trend_slope":0.013251639299066168,"trend_intercept":214.15971983891893},"r2":{"l1_only":0.047324371008972466,"l1_l2":0.047324371008972466,"l1_l2_l3":0.6918021804874894,"delta_l2":0,"delta_l3":0.644477809478517}}},"meta":{"script":"export_climate_formula_browser.py","consumer":"src/script.js — Climate Formula Explorer modal","stitched_lr04_r2":0.9214009610608173,"stitched_lr04_note":"R² of the three-regime stitched curve (post-MPT / iNHG-MPT / pre-iNHG blocks) against the raw gridded LR04 stack, 0-5320 kyr"}},
29
+ DT_ANCHOR: {"deltaTStartSeconds":56.07581799402068,"usnoTargetLodSeconds":86400.0012},
30
+ DT_RESONATOR: {"display_name":"Core-mantle swing","driver":"Resonator","functional_class":"episode (2-kick IMPULSE-CONSISTENT windowed damped oscillation — sin-only kicks, displacement-continuous; zero before first kick)","kick_epochs_year":[-1600,1600],"kick_coefficients_s":[{"cos":0,"sin":621.6253091372357},{"cos":0,"sin":1.2850007806442048}],"T0_lattice_n":685,"T0_yr":3916.1109489051096,"Q":1.8,"drive_tones":[{"pair":"bond-hallstatt","dn":726,"period_yr":3694.9531680440773,"phi_locked_rad":-0.4616152283022974,"amp_s":0,"phase_convention":"cos(2π·dn/8H·y − φ_locked), kick-1-envelope-shared","retired":"RETIRED (plan 06 D7 follow-up, 2026-09): shipped at amplitude 0 — measured to buy nothing once the GIA channel became the lagged response (kicks-only 11.89 / 21.04 s vs all three 12.04 / 21.34 s); dn/phase kept as the convention for the diagnostic column (DT_RESONATOR_COMPONENTS)."}],"rms_s":21.41469844571876,"raw_at_j2000_s":-83.11960900896855,"lod_raw_at_j2000_s_per_day":0.0004964512181330436,"deep_time_checks_s":{"900":-245.8439379884609,"2000":-82.32559425279462,"5000":5.334235000224568,"100000":-1.545960510634632e-17,"-100000":0,"-5000":0,"-801":0},"regeneration_rule":"drive-tone menu = Δn difference tones of the ACTIVE flag set (any count); refit this script after any stack change (3rd/5th cycle)","status":"JOINT WORLD SHIPPED (--joint --write): the two impulse kicks from the joint equality-constrained fit, the drive tone retired at amplitude 0 (plan 06 D7 follow-up); phases/epochs/T0/Q remain the Stage-1/3 convention. Default-ON.","impulse_consistent":true},
31
+ DT_STACK: {"bond":{"lattice_n":1830,"period_yr":1465.8666666666666,"cos_coeff_s":165.17830836273438,"sin_coeff_s":329.72368120425097,"raw_at_j2000_s":139.42483205973076,"amplitude_s":368.7839197964807,"phase_deg":63.39097186679068,"source":"Stage D anchored fit (USNO LOD constraint active)","joint_mode":true},"hallstatt":{"lattice_n":1104,"period_yr":2429.8333333333335,"cos_coeff_s":-63.68853392916495,"sin_coeff_s":48.41250505761507,"raw_at_j2000_s":-71.6300451611975,"amplitude_s":80,"phase_deg":142.75990910530456,"target_amp_source":"CAPPED from anchored quad-fit free amp 100.73 s → 80 s prior","joint_mode":true},"jose5":{"lattice_n":2989,"period_yr":897.469387755102,"cos_coeff_s":-41.0905713231876,"sin_coeff_s":28.487979014560363,"raw_at_j2000_s":22.691156700635617,"amplitude_s":49.99999999999999,"phase_deg":145.26653774170026,"target_amp_source":"CAPPED from anchored quad-fit free amp 86.44 s → 50 s prior","joint_mode":true},"jose4":{"lattice_n":3749,"period_yr":715.5337423312883,"cos_coeff_s":38.291732965080044,"sin_coeff_s":-32.15187687415778,"raw_at_j2000_s":41.578595054682985,"amplitude_s":50,"phase_deg":-40.018695741432126,"target_amp_source":"unconstrained: quad-fit free amp 47.06 s (below 50 s prior — no cap applied)","joint_mode":true}},
32
32
  MEEUS_DISTANCE_TERMS: {"meanKm":385000.56,"terms":[[0,0,1,0,-20905355],[2,0,-1,0,-3699111],[2,0,0,0,-2955968],[0,0,2,0,-569925],[0,1,0,0,48888],[0,0,0,2,-3149],[2,0,-2,0,246158],[2,-1,-1,0,-152138],[2,0,1,0,-170733],[2,-1,0,0,-204586],[0,1,-1,0,-129620],[1,0,0,0,108743],[0,1,1,0,104755],[2,0,0,-2,10321],[0,0,1,2,0],[0,0,1,-2,79661],[4,0,-1,0,-34782],[0,0,3,0,-23210],[4,0,-2,0,-21636],[2,1,-1,0,24208],[2,1,0,0,30824],[1,0,-1,0,-8379],[1,1,0,0,-16675],[2,-1,1,0,-12831],[2,0,2,0,-10445],[4,0,0,0,-11650],[2,0,-3,0,14403],[0,1,-2,0,-7003],[2,0,-1,2,0],[2,-1,-2,0,10056],[1,0,1,0,6322],[2,-2,0,0,-9884],[0,1,2,0,5751],[0,2,0,0,0],[2,-2,-1,0,-4950],[2,0,1,-2,4130],[2,0,0,2,0],[4,-1,-1,0,-3958],[0,0,2,2,0],[3,0,-1,0,3258],[2,1,1,0,2616],[4,-1,-2,0,-1897],[0,2,-1,0,-2117],[2,2,-1,0,2354],[2,1,-2,0,0],[2,-1,0,-2,0],[4,0,1,0,-1423],[0,0,4,0,-1117],[4,-1,0,0,-1571],[1,0,-2,0,-1739],[2,1,0,-2,0],[0,0,2,-2,-4421],[1,1,1,0,0],[3,0,-2,0,0],[4,0,-3,0,0],[2,-1,2,0,0],[0,2,1,0,1165],[1,1,-1,0,0],[2,0,3,0,0],[2,0,-1,-2,8752]]},
33
33
  MEEUS_LATITUDE_TERMS: [[0,0,0,1,5128122],[0,0,1,1,280602],[0,0,1,-1,277693],[2,0,0,-1,173237],[2,0,-1,1,55413],[2,0,-1,-1,46271],[2,0,0,1,32573],[0,0,2,1,17198],[2,0,1,-1,9266],[0,0,2,-1,8822],[2,-1,0,-1,8216],[2,0,-2,-1,4324],[2,0,1,1,4200],[2,1,0,-1,-3359],[2,-1,-1,1,2463],[2,-1,0,1,2211],[2,-1,-1,-1,2065],[0,1,-1,-1,-1870],[4,0,-1,-1,1828],[0,1,0,1,-1794],[0,0,0,3,-1749],[0,1,-1,1,-1565],[1,0,0,1,-1491],[0,1,1,1,-1475],[0,1,1,-1,-1410],[0,1,0,-1,-1344],[1,0,0,-1,-1335],[0,0,3,1,1107],[4,0,0,-1,1021],[4,0,-1,1,833],[0,0,1,-3,777],[4,0,-2,1,671],[2,0,0,-3,607],[2,0,2,-1,596],[2,-1,1,-1,491],[2,0,-2,1,-451],[0,0,3,-1,439],[2,0,2,1,422],[2,0,-3,-1,421],[2,1,-1,1,-366],[2,1,0,1,-351],[4,0,0,1,331],[2,-1,1,1,315],[2,-2,0,-1,302],[0,0,1,3,-283],[2,1,1,-1,-229],[1,1,0,-1,223],[1,1,0,1,223],[0,1,-2,-1,-220],[2,1,-1,-1,-220],[1,0,1,1,-185],[2,-1,-2,-1,181],[0,1,2,1,-177],[4,0,-2,-1,176],[4,-1,-1,-1,166],[1,0,1,-1,-164],[4,0,1,-1,132],[1,0,-1,-1,-119],[4,-1,0,-1,115],[2,-2,0,1,107]],
34
34
  MEEUS_LONGITUDE_TERMS: [[0,0,1,0,6288774],[2,0,-1,0,1274027],[2,0,0,0,658314],[0,0,2,0,213618],[0,1,0,0,-185116],[0,0,0,2,-114332],[2,0,-2,0,58793],[2,-1,-1,0,57066],[2,0,1,0,53322],[2,-1,0,0,45758],[0,1,-1,0,-40923],[1,0,0,0,-34720],[0,1,1,0,-30383],[2,0,0,-2,15327],[0,0,1,2,-12528],[0,0,1,-2,10980],[4,0,-1,0,10675],[0,0,3,0,10034],[4,0,-2,0,8548],[2,1,-1,0,-7888],[2,1,0,0,-6766],[1,0,-1,0,-5163],[1,1,0,0,4987],[2,-1,1,0,4036],[2,0,2,0,3994],[4,0,0,0,3861],[2,0,-3,0,3665],[0,1,-2,0,-2689],[2,0,-1,2,-2602],[2,-1,-2,0,2390],[1,0,1,0,-2348],[2,-2,0,0,2236],[0,1,2,0,-2120],[0,2,0,0,-2069],[2,-2,-1,0,2048],[2,0,1,-2,-1773],[2,0,0,2,-1595],[4,-1,-1,0,1215],[0,0,2,2,-1110],[3,0,-1,0,-892],[2,1,1,0,-810],[4,-1,-2,0,759],[0,2,-1,0,-713],[2,2,-1,0,-700],[2,1,-2,0,691],[2,-1,0,-2,596],[4,0,1,0,549],[0,0,4,0,537],[4,-1,0,0,520],[1,0,-2,0,-487],[2,1,0,-2,-399],[0,0,2,-2,-381],[1,1,1,0,351],[3,0,-2,0,-340],[4,0,-3,0,330],[2,-1,2,0,327],[0,2,1,0,-323],[1,1,-1,0,299],[2,0,3,0,294]],
@@ -39,7 +39,7 @@
39
39
  export const CONSTANTS_HASH = "da713fc2d846767d";
40
40
 
41
41
  /** Model version label — single source: public/input/model-version.json (§10 two-axis scheme). */
42
- export const MODEL_VERSION = "v27.1";
42
+ export const MODEL_VERSION = "v27.2";
43
43
 
44
44
  /** Canonical preprint DOI — single source: public/input/model-version.json. */
45
45
  export const PREPRINT_DOI = "10.21203/rs.3.rs-8758810/v4";
@@ -90,6 +90,7 @@ function createCoRotatingAnchoredModeSum(modes, anchor) {
90
90
  * axialPrecessionYearsAtYearFn?: (year: number) => number,
91
91
  * solarTorqueShareJ2000?: number,
92
92
  * dynamicalEllipticityRatioAtYearFn?: (year: number) => number,
93
+ * spinCheckpoints?: { spacingYr: number, checkpoints: ReadonlyArray<{t: number, s: number[]}> },
93
94
  * }} deps — mode tables from the governed deep artifact (choose the ζ tier
94
95
  * per consumer: era = its own 8-term extraction, deep = the 16-term
95
96
  * table; NEVER a slice); anchors from the chain artifact's one home; the
@@ -115,6 +116,14 @@ function createDeepOrbitalHistory({
115
116
  axialPrecessionYearsJ2000, obliquityJ2000Deg,
116
117
  axialPrecessionYearsAtYearFn,
117
118
  solarTorqueShareJ2000, dynamicalEllipticityRatioAtYearFn,
119
+ // PLAN 24 — the checkpoint bank: the walk's exact state (ŝ, t) every `spacingYr`
120
+ // from J2000 over the model's domain, written by the continuous walk
121
+ // (tools/verify/spin-axis-bank.js, data/spin-axis-checkpoints.json). A build
122
+ // seats its walk on the nearest checkpoint on the near side of the query and
123
+ // walks at most one spacing — the same step sequence as the continuous walk,
124
+ // so every node is bit-identical (the purity gate's bank row). Absent, the
125
+ // walk runs from S0 as before.
126
+ spinCheckpoints,
118
127
  }) {
119
128
  const D2R = Math.PI / 180, R2D = 180 / Math.PI;
120
129
 
@@ -551,23 +560,91 @@ function createDeepOrbitalHistory({
551
560
  };
552
561
  }
553
562
 
554
- /** The factory's walks, one per step size — see build(). @type {Map<number, { grid: Map<number, any>, frontier: Record<number, { s: number[], t: number }> }>} */
563
+ // ── THE STEP SCHEDULE — ONE place, the generator's and every runtime's (plan 24) ──
564
+ // 5-yr RK4 inside ±50 kyr (the certified-precision zone, unchanged). Beyond:
565
+ // the largest divisor of 1000 up to 50 yr that keeps ≥ 100 steps per
566
+ // precession cycle of the torque period at the 1000-yr cell's near edge —
567
+ // 50 yr over the whole ±500-Myr validity domain and to ~3.5 Ga (T_p ≥ 5 kyr),
568
+ // shrinking toward genesis (T_p 598 yr at 4.4 Ga → 5-yr steps). Constant per
569
+ // 1000-yr cell and an integer, so the walk lands exactly on every grid node
570
+ // (1000, 5000) and on the bank's (250 kyr), and t stays exact.
571
+ // MEASURED (plan 24, 2026-10): the former fixed 250-yr step was outside RK4's
572
+ // asymptotic regime beyond a few Myr — against a 50-yr walk the obliquity
573
+ // parted by 0.8″ at 5 Ma, 318″ at 100 Ma, 0.12° at 500 Ma, 2° at 2.46 Ga, and
574
+ // at 4 Ga the axis had collapsed onto the orbit normal (ε 0.07°); the equinox
575
+ // phase by 9° at 100 Ma. The 50-yr walk IS converged: 0.10″ / 10″ at 100 Ma
576
+ // against a 10-yr walk (ratios 3,000–30,000 where fourth order predicts 625).
577
+ // STRICT < so the walk switches AT the ±50,000 boundary (a grid node).
578
+ const STEP_CANDIDATES = [50, 25, 20, 10, 5, 4, 2, 1];
579
+ let stepCellKey = NaN, stepCellH = 5;
580
+ const hStepAt = (/** @type {number} */ t) => {
581
+ const a = Math.abs(t);
582
+ if (a < 50000) return 5;
583
+ const cellKey = (t < 0 ? -1 : 1) * Math.floor(a / 1000) * 1000;
584
+ if (cellKey === stepCellKey) return stepCellH;
585
+ const Tp = axialPrecessionYearsAtYearFn ? axialPrecessionYearsAtYearFn(2000 + cellKey) : axialPrecessionYearsJ2000;
586
+ let h = 1;
587
+ for (const c of STEP_CANDIDATES) if (c * 100 <= Tp) { h = c; break; }
588
+ stepCellKey = cellKey; stepCellH = h;
589
+ return h;
590
+ };
591
+ /** One RK4 walk from (s, t) to tEnd (|tEnd| ≥ |t|, same side of J2000), the schedule's steps
592
+ * — or a FIXED step for a diagnostic (the generator's convergence row); returns the end state.
593
+ * @param {number[]} s @param {number} t @param {number} tEnd @param {number} [fixedStepYr]
594
+ * @returns {{ s: number[], t: number }} */
595
+ function walkFrom(s, t, tEnd, fixedStepYr) {
596
+ const dir = tEnd < t ? -1 : 1;
597
+ while (dir < 0 ? t > tEnd : t < tEnd) {
598
+ const h = fixedStepYr ?? hStepAt(t);
599
+ s = rk4(s, t, dir * h);
600
+ t += dir * h;
601
+ }
602
+ return { s, t };
603
+ }
604
+ /** The continuous walk's states at every multiple of spacingYr from J2000 to tEndYr (one
605
+ * direction) — the bank generator's instrument; no grid is built.
606
+ * @param {number} tEndYr @param {number} spacingYr @returns {Array<{t: number, s: number[]}>} */
607
+ function recordStates(tEndYr, spacingYr) {
608
+ const dir = tEndYr < 0 ? -1 : 1;
609
+ /** @type {Array<{t: number, s: number[]}>} */ const out = [];
610
+ let s = S0A, t = 0;
611
+ while (dir < 0 ? t > tEndYr : t < tEndYr) {
612
+ const h = hStepAt(t);
613
+ s = rk4(s, t, dir * h);
614
+ t += dir * h;
615
+ if (t % spacingYr === 0) out.push({ t, s: s.slice() });
616
+ }
617
+ return out;
618
+ }
619
+ // The bank, indexed by t (years from J2000; both directions).
620
+ /** @type {Map<number, number[]> | null} */
621
+ const bank = spinCheckpoints && spinCheckpoints.checkpoints ? new Map(spinCheckpoints.checkpoints.map((/** @type {{t: number, s: number[]}} */ c) => [c.t, c.s])) : null;
622
+ const bankSpacing = spinCheckpoints && bank ? spinCheckpoints.spacingYr : 0;
623
+
624
+ /** The factory's walks, one per grid step: the shared node grid and, per direction, the
625
+ * COVERED SEGMENTS — contiguous node ranges [from, to] (|t|) each with the live frontier
626
+ * state at `to` (plan 24: a frontier per direction became segments, so a seated walk can
627
+ * start anywhere and a later nearer query fills its own gap).
628
+ * @typedef {{ from: number, to: number, s: number[], t: number }} Seg
629
+ * @type {Map<number, { grid: Map<number, any>, segs: Record<number, Seg[]> }>} */
555
630
  const walks = new Map();
556
631
  /**
557
- * Integrate once over [min(t0,t1,0), max(t0,t1,0)] and return a sampler
558
- * on a stepYr grid (linear interpolation; angles interpolated on the
559
- * wrapped difference). t in years from J2000, negative = past.
632
+ * Return a sampler on a stepYr grid over [min(t0,t1,0), max(t0,t1,0)]:
633
+ * the nodes around the far ends are built now (linear interpolation of the
634
+ * scalars, C1 on the angles); any node the sampler meets missing is built on
635
+ * demand. t in years from J2000, negative = past.
560
636
  * @param {number} t0Yr @param {number} t1Yr @param {number} stepYr
561
637
  */
562
638
  function build(t0Yr, t1Yr, stepYr) {
563
639
  const tMin = Math.min(t0Yr, t1Yr, 0), tMax = Math.max(t0Yr, t1Yr, 0);
564
- // D1 stepping contract: a build reaching beyond the ±50-kyr fine zone
565
- // integrates at 250-yr steps there, so its grid must be 250-aligned or
566
- // at() would meet missing keys. Fail loud, not subtly coarse.
567
- if (Math.max(Math.abs(tMin), Math.abs(tMax)) > 50000 && stepYr % 250 !== 0) {
568
- throw new Error(`deep-orbital-history: builds beyond ±50 kyr need stepYr % 250 === 0 (got ${stepYr})`);
640
+ // The stepping contract: beyond the ±50-kyr fine zone the walk steps on
641
+ // STEP_CANDIDATES, every one a divisor of 100, so a grid there must be
642
+ // 100-aligned (the samplers' 1000/5000, the series generator's 500-yr seam
643
+ // probe) or at() would meet missing keys. Fail loud, not subtly coarse.
644
+ if (Math.max(Math.abs(tMin), Math.abs(tMax)) > 50000 && stepYr % 100 !== 0) {
645
+ throw new Error(`deep-orbital-history: builds beyond ±50 kyr need stepYr % 100 === 0 (got ${stepYr})`);
569
646
  }
570
- // ONE WALK PER STEP SIZE, EXTENDED, NEVER RESTARTED (plan 13 A1, measured):
647
+ // ONE WALK PER GRID STEP, EXTENDED, NEVER RESTARTED (plan 13 A1, measured):
571
648
  // every caller's tier routing asked for `build(span, -span, step)` and
572
649
  // rebuilt from J2000 whenever a deeper epoch arrived, so the four deep
573
650
  // fixture anchors (380…2460 Ma) walked ~49 million RK4 steps — 14 of the
@@ -575,56 +652,68 @@ function createDeepOrbitalHistory({
575
652
  // ~5 million. The walk is a pure function of t from the fixed J2000 state
576
653
  // S0, so continuing a stored walk from its last (s, t) yields the SAME
577
654
  // step sequence as a fresh walk to the farther end: bit-identical nodes
578
- // (the sampler-order-purity gate pins this). The grid and the two
579
- // direction frontiers live on the factory, keyed by stepYr; a returned
580
- // sampler reads the shared grid, which only ever gains nodes.
655
+ // (the sampler-order-purity gate pins this). PLAN 24: the same purity lets
656
+ // a walk start from a BANKED state — a checkpoint IS the continuous walk's
657
+ // state at that t — so a query seats on the nearest checkpoint on its near
658
+ // side and walks at most one spacing (250 kyr: ~5,000 steps) instead of
659
+ // from J2000 (−4.43 Gyr: 17.7 million steps at the former step, ~90
660
+ // million at this one).
581
661
  let w = walks.get(stepYr);
582
662
  const S0 = S0A;
583
- // D1-revised adaptive stepping: 5-yr RK4 near the era (the certified-
584
- // precision zone), 250-yr beyond ±50 kyr — still 103 steps per
585
- // precession cycle and ≥196 samples of the fastest ζ mode (49 kyr), so
586
- // the integration stays deep in RK4's convergence regime while ±500 Myr
587
- // becomes a seconds-class one-time build (measured: coarse-vs-fine
588
- // agree to <1e-4° at ±1 Myr — the generator's regression gate).
589
- // STRICT < so the walk switches AT the ±50,000 boundary (50,000 is
590
- // 250-aligned; switching one fine-step later would leave the coarse walk
591
- // permanently off-grid — measured: every key beyond ±50 kyr missing).
592
- const hStepAt = (/** @type {number} */ t) => (Math.abs(t) < 50000 ? 5 : 250);
593
663
  if (!w) {
594
- w = { grid: new Map(), frontier: { [-1]: { s: S0, t: 0 }, [1]: { s: S0, t: 0 } } };
664
+ w = { grid: new Map(), segs: { [-1]: [], [1]: [] } };
595
665
  walks.set(stepYr, w);
596
666
  }
597
667
  const grid = w.grid;
598
- for (const dir of [-1, +1]) {
599
- const end = dir < 0 ? tMin : tMax;
600
- const front = w.frontier[dir];
601
- if (dir < 0 ? end >= front.t : end <= front.t) continue; // already walked this far
602
- let s = front.s, t = front.t;
603
- // Each stored node also carries the equinox-node RATE (deg/yr) from a
604
- // ±2.5-yr central difference on the integrator's own state — the C1
605
- // (Hermite) interpolation input. Linear interpolation of the node
606
- // longitude made the realized equinox rate PIECEWISE-CONSTANT per
607
- // grid cell — the report's per-year precession column showed flat
608
- // centuries with steps at the 1700/1800/1900/2000 cell edges
609
- // (measured; the levels were the real wobble at 100-yr resolution,
610
- // the staircase was this interpolation order).
611
- // The perihelion longitude of date gets the same C1 treatment (2026-09,
612
- // owner-found): linear interpolation of periOfDateDeg made the
613
- // movement's year-over-year apsidal rate — the anomalistic year, the
614
- // Prec. cell — a staircase of ±0.1 s across the 100-yr cells, reading
615
- // 365.2596375 d at 2000.0 and 365.2596390 d at 2000.5, and the panel's
616
- // apsidal beat 111,494 where the registry read 111,548.
617
- const storeWithRate = (/** @type {number} */ key, /** @type {number[]} */ sv, /** @type {number} */ tv) => {
618
- const smp = sampleAt(sv, tv);
619
- const hR = 2.5;
620
- const lp = eqLonsOnlyDeg(rk4(sv, tv, +hR), tv + hR);
621
- const lm = eqLonsOnlyDeg(rk4(sv, tv, -hR), tv - hR);
622
- smp.equinoxLonRateDegPerYr = (((lp.proj - lm.proj + 540) % 360) - 180) / (2 * hR);
623
- smp.generalPrecessionLonRateDegPerYr = (((lp.general - lm.general + 540) % 360) - 180) / (2 * hR);
624
- smp.periOfDateRateDegPerYr = (((lp.peri - lm.peri + 540) % 360) - 180) / (2 * hR);
625
- grid.set(key, smp);
626
- };
627
- if (t === 0 && !grid.has(0)) storeWithRate(0, s, 0);
668
+ // Each stored node also carries the equinox-node RATE (deg/yr) from a
669
+ // ±2.5-yr central difference on the integrator's own state — the C1
670
+ // (Hermite) interpolation input. Linear interpolation of the node
671
+ // longitude made the realized equinox rate PIECEWISE-CONSTANT per
672
+ // grid cell — the report's per-year precession column showed flat
673
+ // centuries with steps at the 1700/1800/1900/2000 cell edges
674
+ // (measured; the levels were the real wobble at 100-yr resolution,
675
+ // the staircase was this interpolation order).
676
+ // The perihelion longitude of date gets the same C1 treatment (2026-09,
677
+ // owner-found): linear interpolation of periOfDateDeg made the
678
+ // movement's year-over-year apsidal rate — the anomalistic year, the
679
+ // Prec. cell — a staircase of ±0.1 s across the 100-yr cells, reading
680
+ // 365.2596375 d at 2000.0 and 365.2596390 d at 2000.5, and the panel's
681
+ // apsidal beat 111,494 where the registry read 111,548.
682
+ const storeWithRate = (/** @type {number} */ key, /** @type {number[]} */ sv, /** @type {number} */ tv) => {
683
+ const smp = sampleAt(sv, tv);
684
+ const hR = 2.5;
685
+ const lp = eqLonsOnlyDeg(rk4(sv, tv, +hR), tv + hR);
686
+ const lm = eqLonsOnlyDeg(rk4(sv, tv, -hR), tv - hR);
687
+ smp.equinoxLonRateDegPerYr = (((lp.proj - lm.proj + 540) % 360) - 180) / (2 * hR);
688
+ smp.generalPrecessionLonRateDegPerYr = (((lp.general - lm.general + 540) % 360) - 180) / (2 * hR);
689
+ smp.periOfDateRateDegPerYr = (((lp.peri - lm.peri + 540) % 360) - 180) / (2 * hR);
690
+ grid.set(key, smp);
691
+ };
692
+ if (!grid.has(0)) storeWithRate(0, S0, 0);
693
+ /** Make the nodes up to |t| = need exist in direction dir: a covering segment, or a walk
694
+ * seated on the nearest start on the near side — an existing segment's frontier or a bank
695
+ * checkpoint, whichever is nearer — storing nodes at exact grid multiples on the way.
696
+ * @param {1|-1} dir @param {number} need */
697
+ const cover = (dir, need) => {
698
+ if (need === 0) return;
699
+ const segs = w.segs[dir];
700
+ for (const sg of segs) if (sg.from <= need && need <= sg.to) return;
701
+ /** @type {{ a: number, s: number[], t: number, seg: Seg | null }} */
702
+ let start = { a: 0, s: S0, t: 0, seg: null };
703
+ for (const sg of segs) if (sg.to <= need && sg.to > start.a) start = { a: sg.to, s: sg.s, t: sg.t, seg: sg };
704
+ if (bank) {
705
+ for (let a = Math.floor(need / bankSpacing) * bankSpacing; a > start.a; a -= bankSpacing) {
706
+ const cs = bank.get(dir * a);
707
+ if (cs) { start = { a, s: cs, t: dir * a, seg: null }; break; }
708
+ }
709
+ }
710
+ let s = start.s, t = start.t;
711
+ const end = dir * need;
712
+ // A seat on a bank checkpoint IS a walk state at an exact t: when that t is a grid
713
+ // multiple its node must be stored too — a query at the checkpoint itself (need ===
714
+ // the seat; the loop below then takes no step) found no node otherwise (measured:
715
+ // the fixture recorder at +250 kyr and the docs writer at −1 Myr threw).
716
+ if (start.seg === null && start.a > 0 && Math.abs(t - Math.round(t / stepYr) * stepYr) < 1e-6 && !grid.has(Math.round(t / stepYr) * stepYr)) storeWithRate(Math.round(t / stepYr) * stepYr, s, t);
628
717
  while (dir < 0 ? t > end : t < end) {
629
718
  const H_STEP = hStepAt(t);
630
719
  s = rk4(s, t, dir * H_STEP);
@@ -632,19 +721,40 @@ function createDeepOrbitalHistory({
632
721
  // Store ONLY at EXACT step multiples: an off-grid sample under a
633
722
  // ROUNDED key collides with (or shifts) a real grid node (measured
634
723
  // during C-3: build(+200, …, 1000) stored ε(+200) under key 0,
635
- // clobbering the t = 0 sample by 94″; and the D1 variable step made
636
- // the old |t % stepYr| < H_STEP/2 window store 250-yr samples under
637
- // 100-yr keys, 50 yr off). Exact alignment is guaranteed by the
638
- // guard below (coarse builds use 250-aligned grids; the 50,000-yr
639
- // zone boundary is itself 250-aligned, so the walk stays on-grid).
724
+ // clobbering the t = 0 sample by 94″). Exact alignment is guaranteed
725
+ // by the schedule (integer divisors of 100 beyond the 50,000-yr zone
726
+ // boundary, itself a grid node) and the guard above.
640
727
  if (Math.abs(t - Math.round(t / stepYr) * stepYr) < 1e-6) storeWithRate(Math.round(t / stepYr) * stepYr, s, t);
641
728
  }
642
- w.frontier[dir] = { s, t };
729
+ const to = Math.abs(t);
730
+ let seg = start.seg;
731
+ if (seg) { seg.to = to; seg.s = s; seg.t = t; } else { seg = { from: start.a, to, s, t }; segs.push(seg); }
732
+ // merge the segments this walk reached (their nodes are the same nodes)
733
+ for (let i = segs.length - 1; i >= 0; i--) {
734
+ const o = segs[i];
735
+ if (o === seg || o.from > seg.to || o.to < seg.from) continue;
736
+ if (o.to > seg.to) { seg.to = o.to; seg.s = o.s; seg.t = o.t; }
737
+ if (o.from < seg.from) seg.from = o.from;
738
+ segs.splice(i, 1);
739
+ }
740
+ };
741
+ for (const dir of /** @type {Array<1|-1>} */ ([-1, 1])) {
742
+ const end = dir < 0 ? tMin : tMax;
743
+ if (end !== 0) cover(dir, Math.abs(end));
643
744
  }
745
+ /** The two grid nodes around tYr, built on demand. @param {number} k0 @param {number} k1 */
746
+ const ensureNodes = (k0, k1) => {
747
+ for (const k of [k0, k1]) {
748
+ if (k === 0 || grid.has(k)) continue;
749
+ if (Math.abs(k) > Math.max(Math.abs(tMin), Math.abs(tMax)) + stepYr) continue; // beyond the built range: the throw below says so
750
+ cover(k < 0 ? -1 : 1, Math.abs(k));
751
+ }
752
+ };
644
753
  return {
645
754
  /** @param {number} tYr */
646
755
  at(tYr) {
647
756
  const k0 = Math.floor(tYr / stepYr) * stepYr, k1 = k0 + stepYr;
757
+ ensureNodes(k0, k1);
648
758
  const a = grid.get(k0), b = grid.get(k1) ?? a;
649
759
  if (!a) throw new Error(`deep-orbital-history: ${tYr} outside the built range`);
650
760
  const f = (tYr - k0) / stepYr;
@@ -685,6 +795,14 @@ function createDeepOrbitalHistory({
685
795
 
686
796
  return {
687
797
  build,
798
+ // PLAN 24 — the bank generator's instruments: the continuous walk's states at a spacing,
799
+ // a pure walk from a given state (the seat-and-resume self-check; a fixed step for the
800
+ // convergence row), the step the schedule takes at t, and the state the walk starts from.
801
+ recordStates,
802
+ walkFrom,
803
+ stepYearsAt: hStepAt,
804
+ stateJ2000: S0A,
805
+ bankLoaded: bank !== null,
688
806
  alphaArcsecPerYr: ALPHA * R2D * 3600, // the injected GENERAL-anchor form (input echo, unchanged semantics)
689
807
  // D4e diagnostics: the self-anchored lunisolar rate actually integrated.
690
808
  alphaLunisolarArcsecPerYr: ALPHA * K_LUNI * R2D * 3600,
package/src/index.js CHANGED
@@ -200,7 +200,7 @@ export { createEclipseFinders } from './eclipse/finders.cjs';
200
200
  * even though the body is empty.
201
201
  *
202
202
  * @param {Constants} [constants]
203
- * @param {{ laws?: { eccentricityAt?: (year: number) => number, eccentricityRateAt?: (year: number) => number, perihelionLongitudeDegAt?: (year: number) => number }, secularSeriesArtifact?: any, giaEllipticityOfDate?: boolean }} [opts]
203
+ * @param {{ laws?: { eccentricityAt?: (year: number) => number, eccentricityRateAt?: (year: number) => number, perihelionLongitudeDegAt?: (year: number) => number }, secularSeriesArtifact?: any, giaEllipticityOfDate?: boolean, spinCheckpointsArtifact?: any }} [opts]
204
204
  * `laws` — research overrides for Earth's orbit laws (doc 109 §7); absent = the shipped laws, bit-identical. Not part of the hash.
205
205
  * @returns {Model}
206
206
  */
@@ -251,8 +251,18 @@ export const createModel = (constants = GENERATED, opts = {}) => {
251
251
  // opts.giaEllipticityOfDate — false builds the one-source history on the
252
252
  // orbital forcing alone (no ice-driven J₂(t) factor): the T1 line derivation
253
253
  // (see assembleModel). Default true = the shipped physics. Never part of the hash.
254
+ // opts.spinCheckpointsArtifact — plan 24: the spin-axis checkpoint bank
255
+ // (data/spin-axis-checkpoints.json, parsed), the walk's exact state every
256
+ // 250 kyr; a deep POINT read then walks at most one spacing (a cumulative
257
+ // lunar table still integrates from J2000). Never part of the
258
+ // hash: it is the governed artifact of the walk this context runs, and the
259
+ // nodes it yields are bit-identical to the full walk's (the purity gate).
260
+ // The bank is the SHIPPED context's walk: under altered constants (a counterfactual) or
261
+ // research law overrides α(t) differs and the walk must be its own — the bank is ignored
262
+ // there by construction, never trusted to the caller.
263
+ const bankAllowed = hash === CONSTANTS_HASH && !(opts.laws && Object.keys(opts.laws).length) && opts.giaEllipticityOfDate !== false;
254
264
  const surfaces = assembleModel(ctx, FITTED, opts.laws ?? {}, opts.secularSeriesArtifact ?? null,
255
- { giaEllipticityOfDate: opts.giaEllipticityOfDate !== false });
265
+ { giaEllipticityOfDate: opts.giaEllipticityOfDate !== false, spinCheckpointsArtifact: bankAllowed ? (opts.spinCheckpointsArtifact ?? null) : null });
256
266
 
257
267
  return {
258
268
  constants: ctx,
@@ -24,7 +24,10 @@
24
24
  * FORCING alone. The T1 exporter derives the climate lines' obliquity rate on it, so the lines
25
25
  * cannot depend on their own fit (v23.0; measured 3e-5 of the rate, 2–3 yr of period). Default true =
26
26
  * the shipped physics.
27
- * @typedef {{ giaEllipticityOfDate?: boolean }} Options
27
+ * `spinCheckpointsArtifact` (plan 24): the parsed spin-axis checkpoint bank — the walk's exact state
28
+ * every 250 kyr; a deep read then walks at most one spacing, bit-identical to the full walk. Null =
29
+ * the full walk from J2000.
30
+ * @typedef {{ giaEllipticityOfDate?: boolean, spinCheckpointsArtifact?: { spacingYr: number, checkpoints: ReadonlyArray<{t: number, s: number[]}> } | null }} Options
28
31
  */
29
32
 
30
33
  /**
@@ -12,7 +12,7 @@ import { CHAIN_ARTIFACT } from '../planets/chain-artifact.js';
12
12
  export function assembleOneSourceMovement(ctx) {
13
13
  const {
14
14
  C, options, secularSeriesArtifact, EPOCH_PARAMS, alphaGia, certifiedAxialPrecessionJ2000Years, dayLengthSeconds,
15
- deepLod, dtCycleLodCorrectionSum, meanSolarYearDays, startmodelYear, yearToTMa,
15
+ deepLod, dtCycleLodCorrectionSum, meanSolarYearDays, yearToTMa,
16
16
  } = ctx;
17
17
  // The cardinal INSTANTS are the crossings of the one Sun the scene renders
18
18
  // and the eclipse chain certifies (cardinal-instants.js); the cardinal
@@ -74,7 +74,12 @@ export function assembleOneSourceMovement(ctx) {
74
74
  // The CONSTANT's scaling (the torque period), not the published rate of date: the
75
75
  // integration's own ŝ·n̂ carries the obliquity's cosine, so the cited mean obliquity's
76
76
  // factor must not enter twice.
77
- axialPrecessionYearsAtYearFn: (yr) => deepLod.lunisolarTorquePeriodYearsAtAge((startmodelYear - yr) / 1e6) ?? axial0,
77
+ // The age is yearToTMa(yr) — the ONE mapping (J2000 = 2000.0 on the engine year axis,
78
+ // as the factory's own t and the browser's and tools/lib's twins read it). Plan 24
79
+ // measured the former (startmodelYear − yr)/1e6, a 0.5-yr offset, as a twin split of
80
+ // 1e-6″ at −100 kyr / 7e-6″ at −1 Myr in ε — invisible to every gate until the bank,
81
+ // walked by the tools/lib twin, had to be bit-identical to this walk.
82
+ axialPrecessionYearsAtYearFn: (yr) => deepLod.lunisolarTorquePeriodYearsAtAge(yearToTMa(yr)) ?? axial0,
78
83
  // THE PRECESSION OF DATE: on top of the secular law above, the solar
79
84
  // torque at the eccentricity of date and the oblateness of date from
80
85
  // the GIA channel — both exactly 1 at J2000, so the J2000 anchor is
@@ -84,6 +89,10 @@ export function assembleOneSourceMovement(ctx) {
84
89
  solarTorqueShareJ2000: EPOCH_PARAMS.precessionSolarShareJ2000,
85
90
  // options.giaEllipticityOfDate === false: the orbital forcing alone (the T1 line derivation).
86
91
  dynamicalEllipticityRatioAtYearFn: options.giaEllipticityOfDate === false ? undefined : alphaGia.j2RatioAt,
92
+ // PLAN 24 — the spin-axis checkpoint bank (data/spin-axis-checkpoints.json, loaded by the
93
+ // API and the Node scene beside the series; never part of the hash): a deep jump walks at
94
+ // most one spacing from the nearest banked state, bit-identical to the continuous walk.
95
+ spinCheckpoints: options.spinCheckpointsArtifact ?? undefined,
87
96
  });
88
97
  // PER-TIER ROUTING (the anomalistic-contamination fix): one sampler PER
89
98
  // grid tier, built on first entry and KEPT — a query always reads the
@@ -2,7 +2,7 @@
2
2
  // The fitted coefficients' shapes for TypeScript consumers (§2g); values live
3
3
  // in coefficients.js, emitted VERBATIM from the fit artifacts under data/.
4
4
 
5
- export declare const COEFFICIENTS_HASH: "1d7ef7b022b91f6c";
5
+ export declare const COEFFICIENTS_HASH: "a1e5567e03d1936e";
6
6
 
7
7
  export declare const FITTED_COEFFICIENTS: {
8
8
  readonly BALANCE_PRESETS: Array<Array<number | string>>;
@@ -310,7 +310,7 @@ export declare const FITTED_COEFFICIENTS: {
310
310
  "ratio": number;
311
311
  "label": string;
312
312
  };
313
- "39.5560": {
313
+ "39.5561": {
314
314
  "period_kyr": number;
315
315
  "lr04_post_mpt_amp": number;
316
316
  "epica_amp": number;
@@ -324,7 +324,7 @@ export declare const FITTED_COEFFICIENTS: {
324
324
  "ratio": number;
325
325
  "label": string;
326
326
  };
327
- "40.9239": {
327
+ "40.9240": {
328
328
  "period_kyr": number;
329
329
  "lr04_post_mpt_amp": number;
330
330
  "epica_amp": number;
@@ -15,6 +15,7 @@
15
15
  * axialPrecessionYearsAtYearFn?: (year: number) => number,
16
16
  * solarTorqueShareJ2000?: number,
17
17
  * dynamicalEllipticityRatioAtYearFn?: (year: number) => number,
18
+ * spinCheckpoints?: { spacingYr: number, checkpoints: ReadonlyArray<{t: number, s: number[]}> },
18
19
  * }} deps — mode tables from the governed deep artifact (choose the ζ tier
19
20
  * per consumer: era = its own 8-term extraction, deep = the 16-term
20
21
  * table; NEVER a slice); anchors from the chain artifact's one home; the
@@ -34,7 +35,7 @@
34
35
  * factors on the precession constant (see alphaAtGeneral below); absent,
35
36
  * the constant is the secular law alone, bit-identical.
36
37
  */
37
- export function createDeepOrbitalHistory({ zModes, zetaModes, zetaSeries, zSeries, anchorE, anchorPeriEclipticDeg, anchorInclEclipticDeg, anchorAscNodeEclipticDeg, axialPrecessionYearsJ2000, obliquityJ2000Deg, axialPrecessionYearsAtYearFn, solarTorqueShareJ2000, dynamicalEllipticityRatioAtYearFn, }: {
38
+ export function createDeepOrbitalHistory({ zModes, zetaModes, zetaSeries, zSeries, anchorE, anchorPeriEclipticDeg, anchorInclEclipticDeg, anchorAscNodeEclipticDeg, axialPrecessionYearsJ2000, obliquityJ2000Deg, axialPrecessionYearsAtYearFn, solarTorqueShareJ2000, dynamicalEllipticityRatioAtYearFn, spinCheckpoints, }: {
38
39
  zModes: ReadonlyArray<{
39
40
  omegaRadPerYr: number;
40
41
  re: number;
@@ -66,6 +67,13 @@ export function createDeepOrbitalHistory({ zModes, zetaModes, zetaSeries, zSerie
66
67
  axialPrecessionYearsAtYearFn?: (year: number) => number;
67
68
  solarTorqueShareJ2000?: number;
68
69
  dynamicalEllipticityRatioAtYearFn?: (year: number) => number;
70
+ spinCheckpoints?: {
71
+ spacingYr: number;
72
+ checkpoints: ReadonlyArray<{
73
+ t: number;
74
+ s: number[];
75
+ }>;
76
+ };
69
77
  }): {
70
78
  build: (t0Yr: number, t1Yr: number, stepYr: number) => {
71
79
  /** @param {number} tYr */
@@ -85,6 +93,17 @@ export function createDeepOrbitalHistory({ zModes, zetaModes, zetaSeries, zSerie
85
93
  generalPrecessionLonRateDegPerYr: number;
86
94
  };
87
95
  };
96
+ recordStates: (tEndYr: number, spacingYr: number) => Array<{
97
+ t: number;
98
+ s: number[];
99
+ }>;
100
+ walkFrom: (s: number[], t: number, tEnd: number, fixedStepYr?: number) => {
101
+ s: number[];
102
+ t: number;
103
+ };
104
+ stepYearsAt: (t: number) => number;
105
+ stateJ2000: number[];
106
+ bankLoaded: boolean;
88
107
  alphaArcsecPerYr: number;
89
108
  alphaLunisolarArcsecPerYr: number;
90
109
  axialPrecessionYearsLunisolarJ2000: number;
package/types/index.d.ts CHANGED
@@ -31,6 +31,7 @@ export function createModel(constants?: Constants, opts?: {
31
31
  };
32
32
  secularSeriesArtifact?: any;
33
33
  giaEllipticityOfDate?: boolean;
34
+ spinCheckpointsArtifact?: any;
34
35
  }): Model;
35
36
  export type Constants = Record<string, unknown> & {
36
37
  hash?: string;
@@ -16,9 +16,19 @@ export type Laws = {
16
16
  * FORCING alone. The T1 exporter derives the climate lines' obliquity rate on it, so the lines
17
17
  * cannot depend on their own fit (v23.0; measured 3e-5 of the rate, 2–3 yr of period). Default true =
18
18
  * the shipped physics.
19
+ * `spinCheckpointsArtifact` (plan 24): the parsed spin-axis checkpoint bank — the walk's exact state
20
+ * every 250 kyr; a deep read then walks at most one spacing, bit-identical to the full walk. Null =
21
+ * the full walk from J2000.
19
22
  */
20
23
  export type Options = {
21
24
  giaEllipticityOfDate?: boolean;
25
+ spinCheckpointsArtifact?: {
26
+ spacingYr: number;
27
+ checkpoints: ReadonlyArray<{
28
+ t: number;
29
+ s: number[];
30
+ }>;
31
+ } | null;
22
32
  };
23
33
  /**
24
34
  * The forward bindings — what an early slice reads at call time from a later one. Typed by the