[{"data":1,"prerenderedAt":269},["ShallowReactive",2],{"notebook-archive":3},[4,98,167,215],{"id":5,"title":6,"algorithms":7,"author":9,"body":10,"canonical_url":67,"description":58,"experiment_id":68,"extension":69,"kind":70,"languages":71,"maturity":73,"meta":74,"modified":75,"navigation":76,"path":77,"projects":78,"published":75,"relations":80,"repository_commit":84,"seo":85,"slug":86,"stem":87,"summary":88,"tags":89,"technologies":92,"topics":94,"__hash__":97},"notebook\u002Fnotebook\u002Fnormalizing-camera-coordinates.md","Normalize camera coordinates before blaming calibration",[8],"perspective-projection","Lucas Aruodore Adomi",{"type":11,"value":12,"toc":57},"minimark",[13,18,22,26,29,33,36,40,50,54],[14,15,17],"h2",{"id":16},"context","Context",[19,20,21],"p",{},"Reprojection error increased toward the edge of the frame. The initial hypothesis was that the intrinsic calibration had drifted.",[14,23,25],{"id":24},"observation","Observation",[19,27,28],{},"The predicted points were normalized pinhole coordinates. The observed points were distorted pixels. Their difference had no coherent geometric meaning.",[14,30,32],{"id":31},"experiment","Experiment",[19,34,35],{},"Undistorting the observations and converting both arrays into normalized camera coordinates removed the radial error pattern. The remaining residual was small and spatially unstructured.",[14,37,39],{"id":38},"questions","Questions",[41,42,43,47],"ul",{},[44,45,46],"li",{},"Should the residual interface encode its coordinate frame in the type name?",[44,48,49],{},"Is pixel-space reporting still useful after the optimization finishes?",[14,51,53],{"id":52},"next-steps","Next steps",[19,55,56],{},"Add coordinate-frame assertions at the projection boundary and plot both normalized and pixel residuals in the calibration report.",{"title":58,"searchDepth":59,"depth":59,"links":60},"",3,[61,63,64,65,66],{"id":16,"depth":62,"text":17},2,{"id":24,"depth":62,"text":25},{"id":31,"depth":62,"text":32},{"id":38,"depth":62,"text":39},{"id":52,"depth":62,"text":53},"https:\u002F\u002Fjournal.aruodore.com\u002Fnotebook\u002Fnormalizing-camera-coordinates","exp-2026-08-02-camera-01","md","bug",[72],"python","verified",{},"2026-08-02",true,"\u002Fnotebook\u002Fnormalizing-camera-coordinates",[79],"vision-geometry",[81],{"type":82,"target":83},"develops","blog:2026:geometry-of-image-formation",null,{"title":6,"description":58},"normalizing-camera-coordinates","notebook\u002Fnormalizing-camera-coordinates","A pixel-space residual looked like calibration drift, but the comparison mixed normalized and distorted coordinates.",[90,91],"camera-models","debugging",[93],"opencv",[95,96],"computer-vision","geometry","s--hFbit922dJHtD3TC6o1R6XcWzuHVLzXJzNw7-a8U",{"id":99,"title":100,"algorithms":101,"author":9,"body":102,"canonical_url":140,"description":58,"experiment_id":141,"extension":69,"kind":142,"languages":143,"maturity":73,"meta":144,"modified":145,"navigation":76,"path":146,"projects":147,"published":149,"relations":150,"repository_commit":84,"seo":153,"slug":154,"stem":155,"summary":156,"tags":157,"technologies":160,"topics":163,"__hash__":166},"notebook\u002Fnotebook\u002Fgpu-synchronization-changed-the-result.md","GPU synchronization changed the ranking",[],{"type":11,"value":103,"toc":134},[104,106,114,116,119,121,129,131],[14,105,17],{"id":16},[19,107,108,109,113],{},"Two inference paths were timed with ",[110,111,112],"code",{},"perf_counter_ns",". The supposedly faster path launched more asynchronous work.",[14,115,25],{"id":24},[19,117,118],{},"Without device synchronization, the benchmark mostly measured host dispatch. Synchronizing before and after each measured region reversed the ranking.",[14,120,39],{"id":38},[41,122,123,126],{},[44,124,125],{},"Should end-to-end latency and device-only latency appear as separate metrics?",[44,127,128],{},"Which synchronization overhead belongs to the real request path?",[14,130,53],{"id":52},[19,132,133],{},"Repeat with device events, preserve all samples, and document the measured boundary in the result manifest.",{"title":58,"searchDepth":59,"depth":59,"links":135},[136,137,138,139],{"id":16,"depth":62,"text":17},{"id":24,"depth":62,"text":25},{"id":38,"depth":62,"text":39},{"id":52,"depth":62,"text":53},"https:\u002F\u002Fjournal.aruodore.com\u002Fnotebook\u002Fgpu-synchronization-changed-the-result","exp-2026-07-18-gpu-03","benchmark-observation",[72],{},"2026-07-19","\u002Fnotebook\u002Fgpu-synchronization-changed-the-result",[148],"benchmark-protocol","2026-07-18",[151],{"type":82,"target":152},"blog:2026:reproducible-gpu-benchmarks",{"title":100,"description":58},"gpu-synchronization-changed-the-result","notebook\u002Fgpu-synchronization-changed-the-result","Adding synchronization reversed an apparent latency advantage between two inference paths.",[158,159],"gpu","benchmarking",[161,162],"pytorch","cuda",[164,165],"scientific-computing","ai-engineering","R4a44xKfaWSpy6uDVV6utN2f2ApuET3LQ6GTDvFj2Jo",{"id":168,"title":169,"algorithms":170,"author":9,"body":172,"canonical_url":194,"description":58,"experiment_id":195,"extension":69,"kind":196,"languages":197,"maturity":73,"meta":198,"modified":199,"navigation":76,"path":200,"projects":201,"published":199,"relations":203,"repository_commit":84,"seo":204,"slug":205,"stem":206,"summary":207,"tags":208,"technologies":211,"topics":212,"__hash__":214},"notebook\u002Fnotebook\u002Ffailed-half-precision-solver.md","Half precision made the solver look converged",[171],"conjugate-gradient",{"type":11,"value":173,"toc":189},[174,176,179,181,184,186],[14,175,17],{"id":16},[19,177,178],{},"The goal was to reduce memory traffic in a batched conjugate-gradient solve by storing state in half precision.",[14,180,25],{"id":24},[19,182,183],{},"The reported residual stopped changing, but a double-precision recomputation showed that the solution was not converged. The half-precision update direction had fallen below the representable scale of the accumulated state.",[14,185,53],{"id":52},[19,187,188],{},"Keep matrix products in reduced precision while accumulating the solution and residual norm in single precision. Treat a flat reported residual as a numerical warning rather than automatic convergence.",{"title":58,"searchDepth":59,"depth":59,"links":190},[191,192,193],{"id":16,"depth":62,"text":17},{"id":24,"depth":62,"text":25},{"id":52,"depth":62,"text":53},"https:\u002F\u002Fjournal.aruodore.com\u002Fnotebook\u002Ffailed-half-precision-solver","exp-2026-06-29-cg-02","failed-experiment",[72],{},"2026-06-29","\u002Fnotebook\u002Ffailed-half-precision-solver",[202],"iterative-solvers",[],{"title":169,"description":58},"failed-half-precision-solver","notebook\u002Ffailed-half-precision-solver","A residual plateau was mistaken for convergence after reduced precision erased the update direction.",[209,210],"floating-point","convergence",[161],[213,164],"numerical-methods","RxKmVew6NSk0u51AXExA2ETdZpNWn2sNwjCRWAygnnI",{"id":216,"title":217,"algorithms":218,"author":9,"body":219,"canonical_url":249,"description":58,"experiment_id":84,"extension":69,"kind":250,"languages":251,"maturity":252,"meta":253,"modified":254,"navigation":76,"path":255,"projects":256,"published":254,"relations":257,"repository_commit":84,"seo":258,"slug":259,"stem":260,"summary":261,"tags":262,"technologies":265,"topics":266,"__hash__":268},"notebook\u002Fnotebook\u002Freading-a-paper-backwards.md","Reading a method paper backwards",[],{"type":11,"value":220,"toc":244},[221,223,226,228,231,234,236],[14,222,17],{"id":16},[19,224,225],{},"Abstract-first reading made it too easy to adopt the paper's framing before understanding its evidence.",[14,227,25],{"id":24},[19,229,230],{},"Reading the limitations, evaluation protocol, tables, and ablations first gives a more concrete question: what changed, under which conditions, and compared with what?",[19,232,233],{},"The introduction becomes more useful afterward because its claims can be checked against the experiment that actually ran.",[14,235,39],{"id":38},[41,237,238,241],{},[44,239,240],{},"Does this order still work for theory papers where the proof is the primary evidence?",[44,242,243],{},"What minimum extraction template would make paper summaries comparable?",{"title":58,"searchDepth":59,"depth":59,"links":245},[246,247,248],{"id":16,"depth":62,"text":17},{"id":24,"depth":62,"text":25},{"id":38,"depth":62,"text":39},"https:\u002F\u002Fjournal.aruodore.com\u002Fnotebook\u002Freading-a-paper-backwards","research-note",[],"working",{},"2026-06-11","\u002Fnotebook\u002Freading-a-paper-backwards",[],[],{"title":217,"description":58},"reading-a-paper-backwards","notebook\u002Freading-a-paper-backwards","Starting with evaluation details and failure cases can expose a paper's actual contribution faster than reading from the abstract forward.",[263,264],"papers","evaluation",[],[267,165],"research-practice","BuwExy76nBkCkWQNqzUWNRloSmBCBLLuC730lkfSG8Y",1785815463683]