3 views
bilawalsidhu/gods-eye-view
A spy satellite simulator in your browser, except the data is real. Live open source spatial intelligence on a photorealistic 3D globe.
JavaScript★ 55,732+1,961 that day#2 on trending
C62.2/100
Duplication73
3.9% in javascript, bash, perl, python, sqlDead code84
1.8%Complexity39
67.5% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
3.52%duplicated code · 10,539 of 299,103 lines
645clones in code
1,062code files of 1,712 scanned
3.86%duplicated over all files · 1,535 clones
Most complex files
- src/voice/gevActions.js1361 cx
- scripts/qa-radio.mjs1342 cx
- scripts/track-regression.mjs1110 cx
- src/data/bhoteKoshiEvent.js948 cx
- scripts/qa-l9-matrix.mjs878 cx
- src/voice/gevActions.test.mjs727 cx
- src/voice/gevRealtime.test.mjs684 cx
- scripts/qa-cockpit-utility.mjs632 cx
- src/overlays/worldOverlay.js615 cx
- src/data/manager.test.mjs579 cx
Dead code 1.85% unused · 162 findings
- scripts/qa-l9-matrix.mjsunused-file
- scripts/qa-cctv-v2.mjsunused-file
- scripts/qa-height-datum.mjsunused-file
- scripts/precompute-cctv-heights.mjsunused-file
- scripts/qa-attribution-b12.mjsunused-file
- src/layers/recentImagery/testDoubles.mjsunused-file
- scripts/qa-weather-teardown.mjsunused-file
- scripts/qa-transit-recovery.mjsunused-file
- scripts/qa-weather-swap.mjsunused-file
- src/testSupport/googleStreetViewFakes.mjsunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 203 lines in 2 placesjavascript809 tokens
491 colorBlendAmount: flightState._irBoost ? 1.0 : spec.blendAmount, 492 customShader: flightState._irBoost 493 ? flightState._IR_UNLIT_SHADER 494 : undefined, 495 id: icao24, // so scene.pick returns the icao for click-to-track 496 }); 497} catch { 498 // asset/decode fail — stay billboard. Only touch this lifecycle's state if still current 499 // (a destroy/re-init may have swapped the globals while this load was in flight). 500 if (epoch === flightState._modelEpoch) {First 10 of 203 lines.
- 32 lines in 6 placesjavascript108 tokensscripts/qa-cctv-v2.mjs:101–132scripts/qa-enrich-ambient.mjs:86–112scripts/qa-heading-b3.mjs:116–145scripts/qa-labels.mjs:49–79scripts/qa-sprites-b5.mjs:63–89and 1 more
101const SHOTS_DIR = path.join(REPO_ROOT, 'qa-shots', 'cctv-v2'); 102 103const CHROME_EXECUTABLE_CANDIDATES = [ 104 process.env.PUPPETEER_EXECUTABLE_PATH, 105 // Prefer puppeteer's version-pinned Chrome-for-Testing over the system 106 // Chrome: /Applications auto-updates underneath the harnesses, and its 107 // software-GL behavior shifts across majors (system Chrome 150 blew the 108 // tile-gated drain budget under SwiftShader on 2026-07-30 — six 109 // false-negative qa-cctv-v2 runs against a healthy build). A deterministic 110 // pinned browser beats the newest one for regression harnesses.First 10 of 32 lines.
- 119 lines in 2 placesjavascript514 tokens
798); 799flightState._trackedModel.scale = trackedModelScaleForPixelCap({ 800 baseScale: spec.scale, 801 nativeRadiusM: spec.nativeRadiusM, 802 rangeM: Cesium.Cartesian3.distance( 803 flightState._viewer.camera.positionWC, 804 displayPos, 805 ), 806 viewportHeightPx: flightState._viewer.scene.canvas.clientHeight, 807 fovyRad: flightState._viewer.camera.frustum.fovy,First 10 of 119 lines.
7 more
- 46 lines in 4 placesjavascript164 tokens
- 138 lines in 2 placesjavascript490 tokens
- 78 lines in 2 placesjavascript472 tokens
- 17 lines in 4 placesjavascript149 tokens
- 100 lines in 2 placesjavascript426 tokens
- 134 lines in 2 placesjavascript407 tokens
- 115 lines in 2 placesjavascript369 tokens
Largest clones over all files, tests and data included
- 203 lines in 2 placesjavascript809 tokens
491 colorBlendAmount: flightState._irBoost ? 1.0 : spec.blendAmount, 492 customShader: flightState._irBoost 493 ? flightState._IR_UNLIT_SHADER 494 : undefined, 495 id: icao24, // so scene.pick returns the icao for click-to-track 496 }); 497} catch { 498 // asset/decode fail — stay billboard. Only touch this lifecycle's state if still current 499 // (a destroy/re-init may have swapped the globals while this load was in flight). 500 if (epoch === flightState._modelEpoch) {First 10 of 203 lines.
- 137 lines in 2 placesjavascripttests793 tokenssrc/annotations/hybridAnnotationRenderer.test.mjs:4–140src/annotations/screenAnnotationRenderer.test.mjs:4–140
4import { createHybridAnnotationRenderer } from './hybridAnnotationRenderer.js'; 5 6class FakeClassList { 7 constructor(owner) { 8 this.owner = owner; 9 this.names = new Set(); 10 } 11 12 reset(value) { 13 this.names = new Set(String(value || '').split(/\s+/).filter(Boolean));First 10 of 137 lines.
- 32 lines in 6 placesjavascript108 tokensscripts/qa-cctv-v2.mjs:101–132scripts/qa-enrich-ambient.mjs:86–112scripts/qa-heading-b3.mjs:116–145scripts/qa-labels.mjs:49–79scripts/qa-sprites-b5.mjs:63–89and 1 more
101const SHOTS_DIR = path.join(REPO_ROOT, 'qa-shots', 'cctv-v2'); 102 103const CHROME_EXECUTABLE_CANDIDATES = [ 104 process.env.PUPPETEER_EXECUTABLE_PATH, 105 // Prefer puppeteer's version-pinned Chrome-for-Testing over the system 106 // Chrome: /Applications auto-updates underneath the harnesses, and its 107 // software-GL behavior shifts across majors (system Chrome 150 blew the 108 // tile-gated drain budget under SwiftShader on 2026-07-30 — six 109 // false-negative qa-cctv-v2 runs against a healthy build). A deterministic 110 // pinned browser beats the newest one for regression harnesses.First 10 of 32 lines.
- 119 lines in 2 placesjavascript514 tokens
- 8 lines in 7 placesjavascripttests84 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| javascript | 1,047 | 297,469 | 640 | 10,390 | 3.49% |
| bash | 12 | 1,371 | 5 | 149 | 10.87% |
| perl | 1 | 168 | 0 | 0 | 0% |
| python | 1 | 84 | 0 | 0 | 0% |
| sql | 1 | 11 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| javascript | 1,577 | 477,094 | 1,422 | 18,669 | 3.91% |
| css | 28 | 17,279 | 92 | 902 | 5.22% |
| json | 16 | 13,953 | 9 | 434 | 3.11% |
| bash | 20 | 1,528 | 5 | 149 | 9.75% |
| markdown | 43 | 12,198 | 4 | 45 | 0.37% |
| markup | 16 | 1,585 | 2 | 20 | 1.26% |
| yaml | 4 | 275 | 1 | 13 | 4.73% |
| perl | 1 | 168 | 0 | 0 | 0% |
| txt | 1 | 112 | 0 | 0 | 0% |
| python | 1 | 84 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Oct 14, 2026 | #2 | 55,732 (+1,961) | 1,712 | 524,374 | 1,535 | 3.86% | 3.52% | C 62.2 | 132b9e9 |
| Oct 13, 2026 | #2 | 54,040 (+1,895) | 1,700 | 520,006 | 1,529 | 3.88% | 3.55% | C 62.1 | 8b8ccc9 |
| Oct 12, 2026 | #3 | 52,074 (+886) | 1,700 | 519,976 | 1,529 | 3.88% | 3.55% | C 62.1 | 591f299 |
| Sep 14, 2026 | #2 | 32,312 (+2,680) | 920 | 282,643 | 1,026 | 5.15% | 5.16% | — | a0a0128 |
| Sep 13, 2026 | #1 | 30,328 (+2,265) | 571 | 236,559 | 935 | 5.25% | 4.92% | — | 78199c2 |
| Sep 12, 2026 | #2 | 27,429 (+3,680) | 500 | 228,579 | 926 | 5.39% | 5.01% | — | aacfa06 |
| Sep 11, 2026 | #2 | 24,894 (+1,762) | 431 | 218,273 | 912 | 5.67% | 5.33% | — | a458d27 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.