[{"data":1,"prerenderedAt":648},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-Robbyant\u002Flingbot-map":244},[4,29,99,119,189],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"icon":6,"path":101,"stem":102,"children":103,"page":6},"Concepts","\u002Fconcepts","3.concepts",[104,109,114],{"title":105,"path":106,"stem":107,"icon":108},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":110,"path":111,"stem":112,"icon":113},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":115,"path":116,"stem":117,"icon":118},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":120,"icon":6,"path":121,"stem":122,"children":123,"page":6},"Reference","\u002Freference","4.reference",[124,129,134,139,176,181,185],{"title":125,"path":126,"stem":127,"icon":128},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":130,"path":131,"stem":132,"icon":133},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":135,"path":136,"stem":137,"icon":138},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":140,"icon":6,"path":141,"stem":142,"children":143},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[144,146,151,156,161,166,171],{"title":140,"path":141,"stem":142,"icon":145},"i-lucide-file-chart-column",{"title":147,"path":148,"stem":149,"icon":150},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":152,"path":153,"stem":154,"icon":155},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":157,"path":158,"stem":159,"icon":160},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":162,"path":163,"stem":164,"icon":165},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":167,"path":168,"stem":169,"icon":170},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":172,"path":173,"stem":174,"icon":175},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":177,"path":178,"stem":179,"icon":180},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":182,"path":183,"stem":184,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":186,"path":187,"stem":188,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":190,"icon":6,"path":191,"stem":192,"children":193,"page":6},"Project","\u002Fproject","5.project",[194,199,204,209,234,239],{"title":195,"path":196,"stem":197,"icon":198},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":200,"path":201,"stem":202,"icon":203},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":205,"path":206,"stem":207,"icon":208},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":210,"icon":6,"path":211,"stem":212,"children":213},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[214,216,221,225,230],{"title":210,"path":211,"stem":212,"icon":215},"i-lucide-gauge",{"title":217,"path":218,"stem":219,"icon":220},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":222,"path":223,"stem":224,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":226,"path":227,"stem":228,"icon":229},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":231,"path":232,"stem":233,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":235,"path":236,"stem":237,"icon":238},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":240,"path":241,"stem":242,"icon":243},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":245,"url":246,"appearances":247,"latest":263},"Robbyant\u002Flingbot-map","https:\u002F\u002Fgithub.com\u002FRobbyant\u002Flingbot-map",[248],{"date":249,"rank":250,"stars":251,"starsToday":252,"headSha":253,"sources":254,"lines":255,"clones":256,"duplicatedLines":257,"percentage":258,"codePercentage":259,"codeSources":260,"healthScore":261,"healthGrade":262},"2026-10-10",6,17789,110,"8fdf984a7f9caf391622ea5843a8410900d27ef2",118,33442,111,2815,8.42,8.89,94,52.4,"D",{"date":249,"generatedAt":264,"name":245,"url":246,"description":265,"language":266,"stars":251,"starsToday":252,"defaultBranch":267,"headSha":253,"durationMs":268,"total":269,"formats":273,"topClones":320,"code":461,"health":528,"complexity":557,"deadCode":603},"2026-10-10T05:30:09.856Z","[ECCV 2026 Best Paper Award Candidate] LingBot-Map: Geometric Context Transformer for Streaming 3D Reconstruction","Python","main",1143,{"sources":254,"lines":255,"tokens":270,"clones":256,"duplicatedLines":257,"duplicatedTokens":271,"percentage":258,"percentageTokens":272},209788,18241,8.69,[274,281,288,294,301,306,309,312,315,317],{"format":275,"sources":276,"lines":277,"clones":278,"duplicatedLines":279,"percentage":280},"python",81,28225,101,2686,9.52,{"format":282,"sources":283,"lines":284,"clones":285,"duplicatedLines":286,"percentage":287},"markdown",3,1950,5,55,2.82,{"format":289,"sources":290,"lines":291,"clones":283,"duplicatedLines":292,"percentage":293},"bash",15,1048,22,2.1,{"format":295,"sources":296,"lines":297,"clones":298,"duplicatedLines":299,"percentage":300},"yaml",9,242,2,52,21.49,{"format":302,"sources":303,"lines":304,"clones":305,"duplicatedLines":305,"percentage":305},"javascript",1,829,0,{"format":307,"sources":303,"lines":308,"clones":305,"duplicatedLines":305,"percentage":305},"css",477,{"format":310,"sources":303,"lines":311,"clones":305,"duplicatedLines":305,"percentage":305},"txt",201,{"format":313,"sources":303,"lines":314,"clones":305,"duplicatedLines":305,"percentage":305},"perl",168,{"format":316,"sources":283,"lines":252,"clones":305,"duplicatedLines":305,"percentage":305},"text",{"format":318,"sources":303,"lines":319,"clones":305,"duplicatedLines":305,"percentage":305},"cpp",89,[321,346,368,390,401,410,418,427,439,450],{"format":275,"lines":322,"tokens":323,"first":324,"others":328,"copies":298,"excerpt":333,"kind":345},287,1708,{"name":325,"start":326,"end":327},"lingbot_map\u002Fmodels\u002Fgct_stream_window.py",527,813,[329],{"name":330,"start":331,"end":332},"lingbot_map\u002Fmodels\u002Fgct_stream_window_v2.py",590,876,{"lines":334,"total":322},[335,336,337,338,339,340,341,342,343,344],"# Phase 1: Process scale frames together","# These frames get bidirectional attention among themselves via scale token","logger.info(f'Processing {scale_frames} scale frames...')","scale_images = images[:, :scale_frames].to(_model_device, non_blocking=True)","scale_output = self.forward(","    scale_images,","    num_frame_for_scale=scale_frames,","    num_frame_per_block=scale_frames,  # Process all scale frames as one block","    causal_inference=True,",")","code",{"format":275,"lines":347,"tokens":348,"first":349,"others":352,"copies":298,"excerpt":356,"kind":345},180,1411,{"name":325,"start":350,"end":351},820,999,[353],{"name":330,"start":354,"end":355},883,1062,{"lines":357,"total":347},[358,359,360,361,362,363,364,365,366,367],"# Scale from depth — aggregate across all paired keyframes in overlap.","s_ab = unit_s.clone()","da = prev_pred.get(\"depth\")","db = curr_pred.get(\"depth\")","if (da is not None and db is not None","        and int(prev_depth_idx.max().item()) \u003C da.shape[1]","        and int(curr_depth_idx.max().item()) \u003C db.shape[1]):","    s_ab = GCTStream._depth_ratio_scale(","        da[:, prev_depth_idx, ..., 0],","        db[:, curr_depth_idx, ..., 0],",{"format":275,"lines":369,"tokens":370,"first":371,"others":374,"copies":298,"excerpt":378,"kind":345},163,1293,{"name":325,"start":372,"end":373},346,508,[375],{"name":330,"start":376,"end":377},409,571,{"lines":379,"total":369},[380,381,382,383,384,385,386,387,388,389],"non-keyframe processing in keyframe-based streaming inference.","","Args:","    skip: If True, subsequent forward passes will not append KV to cache.","\"\"\"","if hasattr(self.aggregator, 'kv_cache') and self.aggregator.kv_cache is not None:","    self.aggregator.kv_cache[\"_skip_append\"] = skip","# FlashInfer manager","if hasattr(self.aggregator, 'kv_cache_manager') and self.aggregator.kv_cache_manager is not None:","    self.aggregator.kv_cache_manager._skip_append = skip",{"format":275,"lines":391,"tokens":392,"first":393,"others":397,"copies":298,"kind":345},241,1218,{"name":394,"start":395,"end":396},"lingbot_map\u002Fmodels\u002Fgct_stream.py",93,333,[398],{"name":325,"start":399,"end":400},112,352,{"format":275,"lines":402,"tokens":403,"first":404,"others":407,"copies":298,"kind":345},211,1190,{"name":325,"start":405,"end":406},1000,1210,[408],{"name":330,"start":355,"end":409},1272,{"format":275,"lines":411,"tokens":412,"first":413,"others":414,"copies":298,"kind":345},216,1110,{"name":394,"start":254,"end":396},[415],{"name":330,"start":416,"end":417},200,415,{"format":275,"lines":419,"tokens":420,"first":421,"others":424,"copies":298,"kind":345},113,845,{"name":325,"start":422,"end":423},25,137,[425],{"name":330,"start":426,"end":416},88,{"format":275,"lines":428,"tokens":429,"first":430,"others":434,"copies":298,"kind":345},36,286,{"name":431,"start":432,"end":433},"benchmark\u002Fdatasets\u002Fkitti.py",116,151,[435],{"name":436,"start":437,"end":438},"benchmark\u002Fdatasets\u002Fvbr.py",95,130,{"format":275,"lines":440,"tokens":441,"first":442,"others":446,"copies":298,"kind":345},24,284,{"name":443,"start":444,"end":445},"lingbot_map\u002Flayers\u002Fattention.py",326,349,[447],{"name":443,"start":448,"end":449},706,729,{"format":275,"lines":451,"tokens":452,"first":453,"others":457,"copies":298,"kind":345},50,273,{"name":454,"start":455,"end":456},"benchmark\u002Frun.py",35,84,[458],{"name":459,"start":460,"end":276},"benchmark\u002Frun_worker.py",32,{"sources":260,"lines":462,"tokens":463,"clones":464,"duplicatedLines":465,"duplicatedTokens":466,"percentage":259,"percentageTokens":467,"formats":468,"topClones":479,"generated":526},30056,183026,99,2671,17147,9.37,[469,473,476,477,478],{"format":275,"sources":470,"lines":471,"clones":464,"duplicatedLines":465,"percentage":472},79,28102,9.5,{"format":289,"sources":474,"lines":475,"clones":305,"duplicatedLines":305,"percentage":305},12,868,{"format":302,"sources":303,"lines":304,"clones":305,"duplicatedLines":305,"percentage":305},{"format":313,"sources":303,"lines":314,"clones":305,"duplicatedLines":305,"percentage":305},{"format":318,"sources":303,"lines":319,"clones":305,"duplicatedLines":305,"percentage":305},[480,486,492,498,502,506,510,514,518,522],{"format":275,"lines":322,"tokens":323,"first":481,"others":482,"copies":298,"excerpt":484,"kind":345},{"name":325,"start":326,"end":327},[483],{"name":330,"start":331,"end":332},{"lines":485,"total":322},[335,336,337,338,339,340,341,342,343,344],{"format":275,"lines":347,"tokens":348,"first":487,"others":488,"copies":298,"excerpt":490,"kind":345},{"name":325,"start":350,"end":351},[489],{"name":330,"start":354,"end":355},{"lines":491,"total":347},[358,359,360,361,362,363,364,365,366,367],{"format":275,"lines":369,"tokens":370,"first":493,"others":494,"copies":298,"excerpt":496,"kind":345},{"name":325,"start":372,"end":373},[495],{"name":330,"start":376,"end":377},{"lines":497,"total":369},[380,381,382,383,384,385,386,387,388,389],{"format":275,"lines":391,"tokens":392,"first":499,"others":500,"copies":298,"kind":345},{"name":394,"start":395,"end":396},[501],{"name":325,"start":399,"end":400},{"format":275,"lines":402,"tokens":403,"first":503,"others":504,"copies":298,"kind":345},{"name":325,"start":405,"end":406},[505],{"name":330,"start":355,"end":409},{"format":275,"lines":411,"tokens":412,"first":507,"others":508,"copies":298,"kind":345},{"name":394,"start":254,"end":396},[509],{"name":330,"start":416,"end":417},{"format":275,"lines":419,"tokens":420,"first":511,"others":512,"copies":298,"kind":345},{"name":325,"start":422,"end":423},[513],{"name":330,"start":426,"end":416},{"format":275,"lines":428,"tokens":429,"first":515,"others":516,"copies":298,"kind":345},{"name":431,"start":432,"end":433},[517],{"name":436,"start":437,"end":438},{"format":275,"lines":440,"tokens":441,"first":519,"others":520,"copies":298,"kind":345},{"name":443,"start":444,"end":445},[521],{"name":443,"start":448,"end":449},{"format":275,"lines":451,"tokens":452,"first":523,"others":524,"copies":298,"kind":345},{"name":454,"start":455,"end":456},[525],{"name":459,"start":460,"end":276},{"files":305,"minified":305,"sample":527},[],{"score":261,"grade":262,"size":529,"dimensions":531},{"lines":462,"files":260,"class":530},"M",[532,543,551],{"id":533,"source":534,"value":535,"adjusted":536,"lines":465,"halfLife":537,"formats":538,"excluded":539,"weight":303,"score":542},"duplication","jscpd",8.9,8.6,8.5,[275,289,302,313,318],[540,316,541],"markup","data",49.8,{"id":544,"source":534,"value":545,"adjusted":285,"lines":546,"halfLife":547,"coverage":548,"weight":549,"score":550},"dead-code",5.1,1484,7.5,96.3,0.963,63,{"id":552,"source":534,"value":553,"adjusted":554,"lines":555,"halfLife":451,"weight":303,"score":556},"complexity",58,55.6,17419,46.2,{"total":558,"mean":559,"files":560},3874,41.2,[561,565,569,574,578,582,586,591,594,598],{"path":562,"complexity":444,"lines":563,"bytes":564},"benchmark\u002Fviewer.py",2000,82652,{"path":566,"complexity":567,"lines":304,"bytes":568},"benchmark\u002Fbenchmark\u002Freport\u002Ftemplates\u002Fapp.js",267,30093,{"path":570,"complexity":571,"lines":572,"bytes":573},"lingbot_map\u002Fvis\u002Fpoint_cloud_viewer.py",215,1443,58434,{"path":330,"complexity":575,"lines":576,"bytes":577},195,1349,56615,{"path":325,"complexity":579,"lines":580,"bytes":581},178,1274,53660,{"path":583,"complexity":399,"lines":584,"bytes":585},"benchmark\u002Fbenchmark\u002Fcore\u002Floader.py",549,21085,{"path":587,"complexity":588,"lines":589,"bytes":590},"benchmark\u002Fbenchmark\u002Fcore\u002Fsaver.py",102,433,18741,{"path":443,"complexity":592,"lines":449,"bytes":593},100,35600,{"path":595,"complexity":260,"lines":596,"bytes":597},"lingbot_map\u002Fvis\u002Fsky_segmentation.py",510,18720,{"path":599,"complexity":600,"lines":601,"bytes":602},"preprocess\u002Foxford.py",91,838,31836,{"percentage":604,"findings":605,"files":437,"byCategory":606,"largest":616},5.13,43,[607,609,611,613],{"category":608,"count":303},"unused-file",{"category":610,"count":283},"unused-export",{"category":612,"count":303},"unused-symbol",{"category":614,"count":615},"unused-import",38,[617,618,623,627,630,634,637,639,643,645],{"category":608,"path":330,"name":381,"line":303,"lines":576},{"category":610,"path":619,"name":620,"line":621,"lines":622},"lingbot_map\u002Futils\u002Fload_fn.py","load_and_preprocess_images_square",16,86,{"category":612,"path":624,"name":625,"line":626,"lines":296},"lingbot_map\u002Futils\u002Fgeometry.py","_sqrt_positive_part",686,{"category":614,"path":628,"name":629,"line":621,"lines":303},"lingbot_map\u002Faggregator\u002Fstream.py","Block",{"category":614,"path":631,"name":632,"line":633,"lines":303},"lingbot_map\u002Fheads\u002Fcamera_head.py","math",7,{"category":614,"path":631,"name":635,"line":636,"lines":303},"np",8,{"category":614,"path":631,"name":638,"line":474,"lines":303},"F",{"category":614,"path":640,"name":641,"line":642,"lines":303},"lingbot_map\u002Fheads\u002Fdpt_head.py","os",11,{"category":614,"path":640,"name":644,"line":474,"lines":303},"Dict",{"category":614,"path":646,"name":647,"line":636,"lines":303},"lingbot_map\u002Fheads\u002Futils.py","nn",1791615326412]