# metric: candidate wall-clock ms over 8 scenes (lower_is_better)
# guard: PSNR>=baseline-0.1 (=27.601) AND diff grad finite&nonzero AND peak_mem<=baseline(2200MB)
# baseline: PoseEstimator 200-step AdamW + masked-L1/LPIPS = 27.701 PSNR / 30018ms / 2200MB (NOT differentiable)
iteration	commit	time_ms	psnr	speedup	guard	status	description
0	a1e6045	30018	27.701	1.00	ref	baseline	PoseEstimator 200-step AdamW + LPIPS (reference; not differentiable)
1	4c3e3ed	5568	27.719	5.39	PASS	keep	seed: Adam 100 steps lr5e-3 L2 full-res + IFT differentiable
2	a1e6045	2785	27.615	10.78	PASS	keep	steps 100->50 (Adam at accuracy floor, +0.014)
3	95beef6	1448	27.720	20.73	PASS	keep	LBFGS quasi-Newton (max_iter20, strong-wolfe): 2x faster AND full accuracy
4	-	1670	27.699	17.97	PASS	discard	LM damped-GN 6 steps: accurate but FD renders (7/step) slower than LBFGS
5	-	835	27.705	35.97	PASS	keep	LM 3 steps: GN converges fast near GT
6	-	558	27.707	53.78	PASS	keep	LM 2 steps
7	619ebbb	280	27.664	107.24	PASS	keep	LM 1 step (7 fwd renders): -0.037 dB, 107x
8	48ff172	244	27.664	123.20	PASS	keep	batched FD renders (1 gsplat call/step); diff-BA cost 164->83ms/scene
9	-	244	27.664	123.06	PASS	discard	bmm normal eqs == einsum (both tiny-output GEMM, ~13ms, <5% GPU occ). null result -> motivates Triton
10	d59b6b7	131	27.664	229.24	PASS	keep	Triton JtJ/Jtr reduction (13.7->0.06ms); fwd render-bound. diff-BA 53ms/scene
11	f827b76	34	27.676	875.83	PASS	keep	analytic image-warp Jacobian (1 render/step vs 7); validated cos~0.95 vs FD. 303MB
12	8ed1969	33	27.676	~890	PASS	keep	+ift_jacobian knob; default fd (faithful grad). analytic-IFT option = diff-BA 43->22ms/scene (2x)
13	HEAD	31	27.676	957.54	PASS	keep	fused Triton analytic-normal-eq (image-warp J rows -> H,g in 1 pass, NO J materialised; rel err 0.0). 281MB. CHAMPION. render-bound (~65%)
