Lab · Open-data check · updated 25 September 2026

Biondi and Malanga's SAR tested on the known chambers

I rebuilt Filippo Biondi and Corrado Malanga's SAR Doppler tomography method from the public documents and tested it on the chambers of the Great Pyramid of Khufu that we already know, using Capella Space open radar data. Here are the rules fixed before looking, the results, the figures, the code, and what this test does not say.

In short

Left, the Khufu tomogram published in the 2022 paper; right, my section computed from Capella open data
Left, a figure from the 2022 paper (Biondi and Malanga, Remote Sensing, CC BY 4.0 licence). Right, my section of Khufu, computed from Capella open data with the rebuilt chain.

The story of the paper

Filippo Biondi and Corrado Malanga published the method in Remote Sensing on 19 October 2022. The journal retracted it on 10 August 2026 for serious methodological flaws and statistical errors, without saying which. The authors disagree with the retraction.

The review report published by the journal shows how it got there. On the first version a reviewer asked for axes in metres and for the known structures as a control experiment, and wrote that the overlays with the pyramid sketch gave the impression of having been adjusted by eye. On the second version, read by three other reviewers, one writes that validation is missing, Lawrence Conyers calls it well done but says he cannot assess the equations, and Gaetano Ranieri calls it rigorous and adds that its validity can only be checked by excavation or geophysical methods. On 31 August 2026, speaking to Retraction Watch, Conyers said the method does not work.

A test of that kind, looking with the method for the structures we already know, is the one you find below.

The method, as they explain it

At a conference in Spoleto, Biondi describes it this way. The Earth's surface always vibrates a little. A single radar image can be unpacked into a sequence, like a film, and those vibrations are extracted from it. Where there is a void underneath the vibration is missing, and in their sections that void is blue.

To turn vibrations into metres of depth you need two numbers, the speed of sound in the stone and a frequency. The satellite measures neither. In Spoleto Malanga says "let's assume, we don't know, that this stuff is granite, 4,000 metres per second". In their book Khnum-Khufu the authors write that with frequencies close to 4.32 Hz and its multiples "things went better". And in their documents the resulting scale changes. In the 2022 preprint it is 6,000 metres per second divided by 12,500 Hz, that is 0.48 metres. In the published version it becomes 0.24 metres, because the calculation is written with 25,000 Hz while stating 12,500. In the patent it is 6,600 divided by 22,000, that is 0.30 metres.

On the Symposium Podcast, on 15 July 2026, Biondi also says that they threw many tests away because they made no sense, "very often we were inverting noise", and kept the ones that worked.

The test on the known chambers

The chain

Biondi's program is not public. I rebuilt it from the 2022 paper, the patent and the public documents of the BiondiProtocol project, which describes the recipe with the directions attributed to Biondi. In short, 50 pairs of sub-images taken a moment apart are extracted from the radar image, the shift of every point between the two is measured to one hundredth of a pixel, the disturbance common to the whole scene is removed, and a depth profile is derived from the sequence of shifts. Part of the parameters comes from BiondiProtocol, which is an anonymous project. I say so because it matters.

The data

Capella Space and Umbra are the two open data sources named by the Khafre Project in its statement of 16 March 2025. In this test I used 2 Capella passes over Khufu, of 16 September and 4 October 2024, downloaded from the Capella open data registry.

The rules, fixed beforehand

Protocol and code were sealed on 23 September 2026 at 13.17.29 UTC, with a digital fingerprint of every file, after the checks on synthetic data and before opening the radar images. The log shows that image processing starts a few seconds later. The fingerprint of the seal file is d74fb2f593ca74bf627fe785848230ec7cf2e1b81914eeea8a328e266803da71, and anyone downloading the files below can recompute it.

Section of the Great Pyramid computed from the Capella pass of 4 October 2024, with the real chambers marked in white
The section of Khufu from the 4 October 2024 pass, with the scale calibrated on the King's Chamber. The white boxes are the real chambers, at their own height. The vertical axis is the distance from the base.
The same image with three different scales, the King's Chamber falls in three different places
The same image with three scales. The box is the King's Chamber. Change the scale and the place where you have to look for it moves up or down. That is why the scale is calibrated on a known chamber and then locked for all the others.
Chart of the 41 scales tested with the number of positions beaten by the King's Chamber
The 41 scales tested. For each, how many of the 24 nearby positions the King's Chamber beats. To count as found it needs all 24. The best reaches 15. The dotted lines are the values used in their documents.

The result

PassChamberOutcomePositions beaten
4 Oct 2024King (calibration)does not stand out15 of 24
4 Oct 2024Queenfails, sign opposite to calibration20 of 24
4 Oct 2024Grand Galleryfails3 of 16
4 Oct 2024Subterraneanfails, opposite sign8 of 21
16 Sep 2024Kingno value at the chambernot assessable
16 Sep 2024Queenno value at the chambernot assessable
16 Sep 2024Grand Galleryno value at the chambernot assessable
16 Sep 2024Subterraneanfails15 of 23

No chamber shows up. The protocol counts the 3 tests without a value as not found, but I list them separately because they are not measured failures. At those points the calculation produces nothing to compare.

Grid of 25 positions with the King's Chamber in the middle, ranked tenth
The King's Chamber, in the middle, against the 24 nearby positions, with the scale chosen for it. The number is the ranking of how much each position stands out. The chamber ranks 10th of 25.

Why nothing shows up

The pairs of sub-images compared by the recipe share 95 percent of the spectrum and are almost identical. On the 4 October pass, with the main bank of pairs, 97.3 percent of the shifts measured along the flight direction are exactly zero, and along the other direction 226,792 readings out of 226,800 are. With the second bank of pairs zeros reach 99.8 to 100 percent. The non-zero values are 1 to 4 hundredths of a pixel, the smallest step the estimator can read. The depth profile is built on this rounding, not on measured vibrations.

Map of the shifts measured on one image pair, almost all black because zero
One pair of sub-images, 4,536 points of the pyramid. Black means zero shift. The few coloured points are 1 to 4 hundredths of a pixel.
Histogram of all readings, only steps of one hundredth of a pixel
All readings from both passes, log scale. Only whole steps of one hundredth of a pixel, nothing in between.

And with a finer instrument

To rule out that the limit was only precision, I added a second test, sealed on 23 September at 13.49 UTC, with an estimator ten times finer, one thousandth of a pixel. Zeros drop to 13 percent, but the values have no coherence between nearby non-overlapping points, a correlation between 0.003 and 0.023 in one direction and a checkerboard pattern in the other. The best calibration gets the King's Chamber to beat 22 positions out of 24. The Queen's Chamber on 4 October reaches 23 of 24, the case closest to the threshold, but on the 16 September pass it is weak and of opposite sign, and the King's Chamber itself, with the calibration locked, comes out with the opposite sign. The result does not repeat. Again, no chamber.

All the tests, 3 to 23 September

The test on the chambers of 23 September is the last of a series. From 3 to 23 September I ran 101 tests on the method, and you will find them all here, including the ones I withdrew and the ones that gave results in favour. 44 are on real radar data, 22 on synthetic data, 15 are code and calculation checks, 20 are readings of the sources. In 45 of them the rule for success was written down before seeing the results.

The variants of their method I tried

The results in favour of the method

I list them because they exist. The first step of the method, measuring small movements from the satellite, gives a hint near the power stations at the Mosul dam. On the pyramid the order of the sub-images carries information, with a chance probability of 0.002, but the same test also responds on a hill with no cavity and not on the body of the dam where the tunnel is, so that information comes from the shape of the surface. In the computer models the positive controls succeed. In mid-September some favourable results came out on the Grand Gallery and the subterranean chamber, but a later check showed they were artefacts of the calculation, and I withdrew them. In the test at one thousandth of a pixel the Queen's Chamber reaches 23 out of 24, below the threshold and not repeated. No test recognised the chambers in a repeatable way on the two dates, and no test shows that the cavities they talk about do not exist.

The tests, phase by phase

Open a phase to see the tests, with the variant used and the outcome. The full entries, with the numbers, the criteria and the corrections made afterwards, are in the downloadable catalogue below (in Italian).

Phase 1 · 3 September 2026 · First replication on open data, chain from the phase (14 tests)
DateTestVariantOutcome
3 SepP01 Geolocation and layoverRPC on the SLCGeometry read correctly, confirmed
3 SepP02 Theoretical calculationsPaper formulas and physicsPartly withdrawn on 4 Sep
3 SepP03 Desert versus KhufuTomogram from the phaseIndistinguishable, later superseded
3 SepP04 Paired null testsTomogram from the phaseRatio 1.008, criterion withdrawn
3 SepP05 Injection into Capella dataChain from the phaseAmplitude only, shape not recovered
3 SepP06 Repeatability across two datesTomogram from the phaseThe desert repeats too
3 SepP07 Sub-aperture decorrelationPhase noise versus brightnessAlmost entirely angular decorrelation
3 SepP08 Umbra null testTomogram from the phaseRatio 0.995, criterion withdrawn
3 SepP09 Umbra CPHD micro-DopplerSpectrum from the raw dataIdentical curves, cause not demonstrated
3 SepP10 Mosul first stageBlock coregistration, blindPeaks near the power stations
3 SepP11 Mosul turbinesMatched filter on the CPHD49 Hz peak does not hold
3 SepP12 Mosul dam bodyTomogram from the phaseDam identical to the ground
3 SepP13 Codex blind replicationPixel tracking, pseudoinverse, magnitudeNo information on the subsurface
3 SepP14 Shuffling control testTwo shufflingsPassed, not to be used again
Phase 2 · 3-4 September 2026 · Everything redone from the magnitude (scripts 80-85) (8 tests)
DateTestVariantOutcome
3-4 SepP15 Test battery from the magnitudeabs(Y) minus mean, surrogateNever 3 times, surrogate
3-4 SepP16 The blueEnergy versus brightness0.892, brightness a strong confounder
3 SepP17 Chambers versus masonrySurrogate, interior elevation0.99, test later invalidated
3 SepP18 KhafreSurrogate from the magnitudeSame picture as Khufu
3-4 SepP19 Synthetic brightness plus spectrumNoise through the same chainReproduces columns and bands
4 SepP20 Shuffling with 499 permutationsSurrogate with p-valuep = 0.002, order matters
4 SepP21 Hill versus tunnelSurrogate with p-valueResponds to the relief, not to cavities
4 SepP22 Codex reviewAudit with recalculationsSurrogate, not a replication; corrections
Phase 3 · 4 September 2026 · First independent validations after the Codex review (10 tests)
DateTestVariantOutcome
4 SepP23 Audit of paper, video, patentReading the sourcesContradictory parameters, no validation
4 SepP24 Audit of the bookReading the sourcesFrequency chosen by eye
4 SepP25 All-granite caseTheoretical calculationResolution and depth incompatible
4 SepP26 Staged protocolTracking on magnitude, affine line fitHoldout failed, wrong geometry
4 SepP27 Overfitting stress testDeliberate post hoc search0 variants pass everything
4 SepP28 Radar positive controlVibration in the phase, SPOTWorks in the ideal case
4 SepP29 Capella metadata auditMetadataVariable PRF, usage corrections
4 SepP30 Active acoustics in 2DFDTD with a known sourceCavity can be located with an active source
4 SepP31 Synthetic 3D reconstructionAcoustic forward model and inversionNeeds a source 1e8 times stronger
4 SepP32 Real data inventoryCatalogsNot concluded, procedure proposed
Phase 4 · Night of 4-5 September 2026 · Rebuilding their chain, first pieces (15 tests)
DateTestVariantOutcome
4 SepP33 CPHD window resolutionProcessor PSFShort windows, decametric resolution
4 SepP34 Audit of the old chamber testsCode and PetrieWrong coordinates, historical tests
4 SepP35 CPHD versus SICDBackprojection of the raw dataCorrect focusing, 0.948
4 SepP36 Reflector injected into the CPHDPhase estimation5 Hz recovered down to the threshold
4 SepP37 Conditional scalePaper formula on UmbraAbout 31.5 m, not metric
4 SepP38 Capella PFA timingMetadataWrong SF factor in the metadata
4 SepP39 Tracking on CPHD sub-aperturesAmplitude pixel tracking5 Hz recovered, gain 0.73
4 SepP40 Reproducibility of the CPHD controlsHashes and recalculationsNo discrepancies
5 SepP41 Target geometry v2Primary sourcesCoordinates corrected, H0 open
5 SepP42 PFA front end, 17 looksCapella complex sub-aperturesNumerically stable extraction
5 SepP43 Audit of the public operatorTwo readings of KzScale depends on the reading
5 SepP44 PFA positive controlSynthetic point, trackerPassed, 5.00 Hz
5 SepP45 Dense front end and guard bands513 looks, strip 1024Cropping not negligible
5 SepP46 Inversion on a point targetPseudoinverse on a point with no cavityMaxima even without a cavity
5 SepP47 Chambers, power criterionTracking, ridge, 9 frequenciesNo variant passes the screening
Phase 5 · 5 September 2026 · Final Capella check and Fourier test (12 tests)
DateTestVariantOutcome
5 SepP48 Full width, 6 looksFFT over the whole SLCShifts change by 5-15%
5 SepP49 Deficit signatureShell/box magnitude0 cases out of 8
5 SepP50 Full-range front end513 looks per branchNumerical equivalence passed
5 SepP51 Holdout geometriesPrimary sourcesGG and SC can be probed
5 SepP52 Physics and dagger auditAlgebra and recalculationsPseudoinverse fixed, then disputed
5 SepP53 Final check on King's and Queen's ChambersTracking, complex Y, pseudoinverseNot recognized, not repeatable
5 SepP54 Known point in phaseCoherent synthetic fitPassed 6 out of 6
5 SepP55 Holdout GG, SC, Big VoidLocked choicesInconclusive due to coverage
5 SepP56 Scene identitySIFT and RANSAC0 matches, not concluded
5 SepP57 Fourier testFourier sum on complex YNot recognized, not repeatable
5 SepP58 Spoleto, time and distanceMathematical counterexampleThe time-to-delay step is missing
5 SepP59 Two new videosReading the sourcesNo complete specification
Phase 6 · 5-7 September 2026 · Parallel physical branch and real observable (11 tests)
DateTestVariantOutcome
5 SepP60 FEM elasticityEigenmodes with the chambersSmall signature in the model
5 SepP61 Poisson and stiffness fitTwo homogeneous parametersSignature remains at 94%
5 SepP62 Variable materialStiffness fieldsPartly mimics the signature
5 SepP63 Projection toward the satelliteMode shapes in LOSNearly identical shapes, under 1 degree
5 SepP64 HVSR measurements 2026Reading the sourceQualitative constraint, not a calibration
6 SepP65 Targets and limitsReading the sourcesBig Void and NFC excluded
6 SepP66 Sources for 2.3 and 110 HzReading the sources117 Hz Reid, cannot be calibrated
6 SepP67 Forward model run_01Base, deformation, phaseFalse positives when the grid changes
6 SepP68 Common correctionCorrection from the solid modelsHolds only with minimal noise
7 SepP69 Real observable run_01CPHD extractorInterrupted, serialization error
7 SepP70 Real observable run_02Umbra CPHD phase histories0 out of 12 real signals
Phase 7 · 12-13 September 2026 · Positive control on the Grand Gallery and the Subterranean Chamber (15 tests)
DateTestVariantOutcome
12 SepP71 GG and SC coveragePrimary and diagnostic pseudoinverseDiagnostic deficit, later withdrawn
12 SepP72 Big Void and NFC draftDraft protocolNever run
12 SepP73 Shape and frequency draftPreregistrationFrequency does not predict the target
12 SepP74 Null plane of the demeaningGeometryDoes not explain everything on its own
12 SepP75 Raw 6250 Hz cross-checkPseudoinverse without mean removalGG deficit, later withdrawn
12 SepP76 Shape and angular scanShape statisticsShape not repeatable
13 SepP77 Artificial signaturesSynthetic injected into the inversionsSampling shifts the angle
13 SepP78 Sampled estimatorGaussian templates444 out of 444 within the margin
13 SepP79 Shape transferSynthetic injected into the inversionsPreserved in two branches
13 SepP80 Angular stabilityOrder of the sumsSignature stable, constant not
13 SepP81 Gaussian fit at 150 degreesEstimator on the real cubesRight angle, later withdrawn
13 SepP82 Gaussian versus rationalTwo profilesAngle does not discriminate, withdrawn
13 SepP83 Fourier on GG and SCFourier sumR greater than 1, fluctuations
13 SepP84 Height scanFourier, shifted heightsKnown height never the maximum
13 SepP85 Re-reading the sourcesReading the sourcesY = range + i azimuth, documented
Phase 8 · 14-15 September 2026 · The displacement estimator, the Claude audit and the first stage (7 tests)
DateTestVariantOutcome
14 SepP86 Test A, ZNCCCorrelator on synthetic dataNone meets the requirement
14 SepP87 Test A2, Fourier 1/256Correlator on synthetic dataPassed, 4 groups out of 4
14 SepP88 Test B1, oscillating pointSAR forward model and A20 detections out of 64
14-15 SepP89 Online searchReading the sourcesNo complete original case
14 SepP90 Claude auditRecalculations on real arraysFavorable pseudoinverse results are artifacts
14 SepP91 Codex correctionAuditPseudoinverse results withdrawn
15 SepP92 First stage, split bandCorrelator on synthetic dataInterrupted, criterion unreachable
Phase 9 · 22-23 September 2026 · After the retraction (9 tests)
DateTestVariantOutcome
22 SepP93 Codex planPlanning6 tests, 1 partly
22 SepP94 T1 scale invarianceAlgebra on the operatorExact invariance, criterion poorly set
22 SepP95 T2-T4 parametersSources with a sealed ruleDepth in meters chosen by the operator
23 SepP96 Lambda in KzReading the sourcesNot distinguishable, conclusion unchanged
23 SepP97 COSMO-SkyMed dataAccess conditionsA university partner is needed
23 SepP98 Third-party replicationsSurveyNobody replicates chambers or shafts
23 SepP99 Biondi-style chambersBiondiProtocol recipe0 chambers out of 7
23 SepP100 1/1000 pixel appendixFiner registration0 out of 7, not repeatable
23 SepP101 Peer reviewReading the sourcesCheck requested in 2022, negative
Full catalogue of the 101 tests (Italian) All the reports (zip, 0.5 MB) All the figures (zip, 50 MB)

Others who tried

I am not the only one. Other independent researchers, meaning outside Biondi and Malanga's group, tested the method with their own reconstructions, different from one another, and published their code and results. None of them finds the structures.

WhoWhat they didWhere
HassanforemanRebuilt from the paper and the patent on Umbra and Capella data, 6 sites. Gets on Giza the same peak, at the same depth in resolution cells, as on an open-pit mine in Utah and on central Cairo.github.com/Hassanforeman/subsurface-sar-tomo
ResonarSatFull chain, including the patent version. The tracking does not recover a fake vibration injected on purpose.github.com/teoAmico/ResonarSat
Simone PomposiPyramid against desert over 240 runs, and the pyramid does not emerge in any of them.Zenodo, 10.5281/zenodo.19574701
ejhongKnown synthetic scenes and a few real ones, and no validated depth reconstruction.github.com/ejhong/sar

Two more names circulate. Jashua Luna published his own version of the program, but that it does not get the same results is reported only by press articles. Emmanuel Pio Pastore analysed the Vesuvius case and argues that some negative replications are not equivalent to the published method, because they lack displacement tracking and image pairs. The chain on this page has both.

The Gran Sasso and the demonstrations

In Spoleto Biondi says that when they tested the method on the Gran Sasso mountain, they already knew about the laboratory inside and wanted to see if it could be seen from space. The point is one of method. A test where you already know what to look for and where is not an independent check, because in this method the slice to look at and the depth scale are chosen by whoever runs the calculation. And those data are not public, so nobody can check them again. I knew where Khufu's chambers were too. The difference is that I fixed and sealed the rules before opening the images, and compared each chamber with the positions around it.

What this test does not say

The request to Biondi

I wrote to Filippo Biondi asking for his data and his program. If he sends them, I will run the test again with those and publish it here, whatever the result.

The first tests of 4 September, and why I withdrew them

A first set of tests, published here on 4 September 2026, used a simplified version of the chain, without the displacement tracking the paper describes. An independent review of my work found errors in some conclusions of that page. Comparing the 23 nanometres of seismic noise with the 0.41 millimetres of sensitivity set two different quantities side by side, and the theoretical margin, in the most favourable case, is about 4 times, not 17,826. The criterion "the true order must beat the shuffled one by 3 times" had no basis. And the shuffle test, redone with 999 permutations, did pass the check of the simplified version on one Khufu scene, a result that instrumental effects can also explain and that says nothing about the subsurface. For this reason on 12 September I took the page down and redid the test from scratch, with the rules fixed beforehand. The 4 September report and the independent replication can still be downloaded below for transparency, with this warning.

Data, code, files

Sealed protocol Test outcome Appendix, 1/1000 estimator Python code

The protocol and outcome files are in Italian; the numbers and the code are language-independent.

FileContents
PROTOCOLLO.mdThe rules of the test, written before opening the images.
SIGILLO.jsonSeal time and digital fingerprints of protocol and code.
ESITO.md, ESITO.jsonFull results, all 164 calibrations tried, the values of the control positions.
APPENDICE_1000.md, SIGILLO_APPENDICE_1000.json, ESITO_APPENDICE_1000.jsonThe second test with the one-thousandth-of-a-pixel estimator.
run.logThe log with the order of operations and the times.
codice_prova_camere.zipThe code of the chain, the scoring and the checks. It uses some Capella data readers from my archive, which are not included.
rapporto_sar_giza.pdf, replica_indipendente_codex.pdfThe 4 September report and the independent replication. Superseded, see above.

Sources