{
 "study": "How heavy are three.js showcase websites?",
 "generated_at": "2026-10-23T10:41:14Z",
 "lighthouse_version": "12.8.2",
 "form_factor": "mobile",
 "throttling_method": "simulate",
 "n_sites_in_sample": 230,
 "n_results": 192,
 "n_failed": 33,
 "n_broken_result_files": 0,
 "n_manually_excluded": 5,
 "manually_excluded": [
  {
   "domain": "codepen.dev",
   "reason": "CodePen live-preview host (a sandbox, same as the excluded codepen.io)"
  },
  {
   "domain": "orpetron.com",
   "reason": "web-design awards gallery page that lists the project (austensor.com), not the project"
  },
  {
   "domain": "socket.io",
   "reason": "socket.io library homepage, credited in the DISCBALL3D post; the project is discball3d.com"
  },
  {
   "domain": "wdobbie.com",
   "reason": "third-party reference site credited in the 'Highly Efficient PDF Renderer' post; the project is soadzoor.github.io"
  },
  {
   "domain": "webgpu.report",
   "reason": "WebGPU capability-report site referenced in the 'Quake 3 in WebGPU' post, not the showcased project"
  }
 ],
 "failed_reasons": {
  "NOFILE": 21,
  "RUNTIME_ERROR NO_FCP": 4,
  "RUNTIME_ERROR PAGE_HUNG": 3,
  "RUNTIME_ERROR ?": 3,
  "TIMEOUT after 300s (NOFILE": 2
 },
 "broken": [],
 "units": {
  "bytes": "transfer size on the wire (compressed)",
  "MB": "1,000,000 bytes",
  "time": "milliseconds unless formatted",
  "percentiles": "linear interpolation"
 },
 "metrics": {
  "perf_score": {
   "label": "Performance score (0-100)",
   "n": 192,
   "min": 6,
   "median": 46.0,
   "mean": 50.463541666666664,
   "p75": 65.0,
   "p90": 85.0,
   "max": 100
  },
  "fcp_ms": {
   "label": "First Contentful Paint",
   "n": 192,
   "min": 783.3560000000001,
   "median": 2755.4675,
   "mean": 4191.890466840184,
   "p75": 4739.935875,
   "p90": 7871.0293,
   "max": 77562.60599999983
  },
  "lcp_ms": {
   "label": "Largest Contentful Paint",
   "n": 192,
   "min": 863.8344999999999,
   "median": 6004.802749999999,
   "mean": 12271.525874400182,
   "p75": 13516.495267500002,
   "p90": 30146.011625000003,
   "max": 124062.11128064766
  },
  "tbt_ms": {
   "label": "Total Blocking Time",
   "n": 192,
   "min": 0.0,
   "median": 19834.8305,
   "mean": 58306.784056085766,
   "p75": 124663.50675,
   "p90": 150935.81274999998,
   "max": 334266.5
  },
  "cls": {
   "label": "Cumulative Layout Shift",
   "n": 192,
   "min": 0.0,
   "median": 9.589647914501746e-05,
   "mean": 0.023384984060345435,
   "p75": 0.011072252693648203,
   "p90": 0.05312741585982218,
   "max": 0.4211535540704739
  },
  "speed_index_ms": {
   "label": "Speed Index",
   "n": 192,
   "min": 1049.890684867096,
   "median": 8041.363251523271,
   "mean": 13315.874186520354,
   "p75": 18400.557809306054,
   "p90": 31619.68917226842,
   "max": 77562.60599999983
  },
  "tti_ms": {
   "label": "Time to Interactive",
   "n": 192,
   "min": 1047.3509999999999,
   "median": 38457.904375000006,
   "mean": 71623.3743331077,
   "p75": 140032.684875,
   "p90": 170216.70780000003,
   "max": 341511.167
  },
  "total_transfer_bytes": {
   "label": "Total transfer",
   "n": 192,
   "min": 29600,
   "median": 1154629.0,
   "mean": 5659351.515625,
   "p75": 4613208.0,
   "p90": 13850940.900000004,
   "max": 147276575
  },
  "js_bytes": {
   "label": "JavaScript transfer",
   "n": 192,
   "min": 0,
   "median": 391299.0,
   "mean": 586865.078125,
   "p75": 717687.25,
   "p90": 1243576.7000000004,
   "max": 4267402
  },
  "image_bytes": {
   "label": "Image transfer",
   "n": 192,
   "min": 0,
   "median": 77633.0,
   "mean": 1585009.2135416667,
   "p75": 590537.0,
   "p90": 3696999.9000000022,
   "max": 79613263
  },
  "font_bytes": {
   "label": "Font transfer",
   "n": 192,
   "min": 0,
   "median": 54904.5,
   "mean": 112688.875,
   "p75": 99603.25,
   "p90": 186530.40000000002,
   "max": 3318629
  },
  "asset3d_bytes": {
   "label": "3D asset transfer (URL rule)",
   "n": 192,
   "min": 0,
   "median": 0.0,
   "mean": 2223185.5208333335,
   "p75": 8821.5,
   "p90": 5835471.300000001,
   "max": 64554286
  },
  "wasm_bytes": {
   "label": "WASM transfer",
   "n": 192,
   "min": 0,
   "median": 0.0,
   "mean": 74106.3125,
   "p75": 0.0,
   "p90": 0.0,
   "max": 8289048
  },
  "request_count": {
   "label": "Requests",
   "n": 192,
   "min": 2,
   "median": 27.5,
   "mean": 56.880208333333336,
   "p75": 59.5,
   "p90": 119.50000000000003,
   "max": 887
  },
  "largest_request_bytes": {
   "label": "Largest single request",
   "n": 192,
   "min": 11920,
   "median": 351850.5,
   "mean": 1879902.15625,
   "p75": 1256951.75,
   "p90": 5449825.200000002,
   "max": 40731099
  },
  "mainthread_ms": {
   "label": "Main-thread work (lab, SwiftShader)",
   "n": 192,
   "min": 288.82400000000007,
   "median": 45293.653999999944,
   "mean": 88362.51595833378,
   "p75": 175564.69200000344,
   "p90": 177532.19080000021,
   "max": 354620.23199999967
  }
 },
 "shares": {
  "over_3MB": 0.3125,
  "over_5MB": 0.23958333333333334,
  "over_10MB": 0.140625,
  "over_20MB": 0.06770833333333333,
  "under_1MB": 0.4375,
  "lcp_over_4s": 0.6354166666666666,
  "lcp_under_2_5s": 0.21875,
  "perf_under_50": 0.5208333333333334,
  "perf_90_or_more": 0.08333333333333333,
  "tbt_over_600ms": 0.7239583333333334,
  "cls_over_0_25": 0.03125,
  "js_over_1MB": 0.140625,
  "has_3d_assets": 0.265625,
  "has_wasm": 0.08854166666666667,
  "over_100_requests": 0.11979166666666667
 },
 "bytes_by_category": {
  "document": {
   "aggregate_share": 0.022383729917392046,
   "median_site_share": 0.00551730852122164,
   "median_bytes": 6523.0
  },
  "js": {
   "aggregate_share": 0.10369829060886468,
   "median_site_share": 0.3495165171779433,
   "median_bytes": 391299.0
  },
  "css": {
   "aggregate_share": 0.003800710599488398,
   "median_site_share": 0.006542299708194774,
   "median_bytes": 11444.0
  },
  "image": {
   "aggregate_share": 0.2800690519338811,
   "median_site_share": 0.05322213941977942,
   "median_bytes": 77633.0
  },
  "font": {
   "aggregate_share": 0.01991197660878201,
   "median_site_share": 0.019340528573367148,
   "median_bytes": 54904.5
  },
  "media": {
   "aggregate_share": 0.10135583564647795,
   "median_site_share": 0.0,
   "median_bytes": 0.0
  },
  "other": {
   "aggregate_share": 0.46878040468511384,
   "median_site_share": 0.005003358559232169,
   "median_bytes": 4691.0
  },
  "asset3d_crosscut": {
   "aggregate_share": 0.39283396952730404,
   "median_site_share": 0.0,
   "median_bytes": 0.0
  },
  "wasm_crosscut": {
   "aggregate_share": 0.013094488351783526,
   "median_site_share": 0.0,
   "median_bytes": 0.0
  }
 },
 "three_detected": {
  "yes": 67,
  "unknown": 125,
  "note": "URL-based only; bundled three.js is invisible, so 'unknown' is not 'no'",
  "yes_subset_medians": {
   "perf_score": 37,
   "fcp_ms": 3619.6599999999994,
   "lcp_ms": 6840.322,
   "tbt_ms": 67141.0,
   "cls": 5.2418919563361436e-05,
   "speed_index_ms": 11387.830670751122,
   "tti_ms": 88982.93600000002,
   "total_transfer_bytes": 1944969,
   "js_bytes": 529566,
   "image_bytes": 44982,
   "font_bytes": 49887,
   "asset3d_bytes": 0,
   "wasm_bytes": 0,
   "request_count": 41,
   "largest_request_bytes": 493484,
   "mainthread_ms": 166457.14800000045
  }
 },
 "lightest10": [
  {
   "domain": "gamaccho.github.io",
   "total_transfer_bytes": 29600,
   "lcp_ms": 7881.838,
   "perf_score": 26,
   "request_count": 3,
   "site_url": "https://gamaccho.github.io/Trans-Liquid/lite/",
   "topic_url": "https://discourse.threejs.org/t/hex-tide-lite-interactive-fluid-simulation-in-three-js-optimized-for-smooth-mobile-performance/95358"
  },
  {
   "domain": "incredible-space.com",
   "total_transfer_bytes": 32646,
   "lcp_ms": 1321.7560000000012,
   "perf_score": 99,
   "request_count": 8,
   "site_url": "https://www.incredible-space.com/",
   "topic_url": "https://discourse.threejs.org/t/impossible-spaces-procedural-architecture-moving-mechanisms-and-surreal-worlds/95501"
  },
  {
   "domain": "tiki-dash.com",
   "total_transfer_bytes": 48150,
   "lcp_ms": 1723.2939999999999,
   "perf_score": 99,
   "request_count": 5,
   "site_url": "https://tiki-dash.com/?utm_source=threejs-discourse&utm_medium=forum&utm_campaign=2026-09",
   "topic_url": "https://discourse.threejs.org/t/tiki-dash-tropical-endless-runner/94620"
  },
  {
   "domain": "pixelwareportfolio.blogspot.com",
   "total_transfer_bytes": 68796,
   "lcp_ms": 2793.6904999999997,
   "perf_score": 94,
   "request_count": 9,
   "site_url": "https://pixelwareportfolio.blogspot.com/",
   "topic_url": "https://discourse.threejs.org/t/pix3lware-a-pixel-art-portfolio-with-an-interactive-three-js-car-viewer/94339"
  },
  {
   "domain": "wazo3d.com",
   "total_transfer_bytes": 101526,
   "lcp_ms": 1047.3509999999999,
   "perf_score": 85,
   "request_count": 8,
   "site_url": "https://wazo3d.com/",
   "topic_url": "https://discourse.threejs.org/t/wazo3d-a-3d-editor-based-on-threejs/95004"
  },
  {
   "domain": "aksites.pl",
   "total_transfer_bytes": 101917,
   "lcp_ms": 2622.185,
   "perf_score": 92,
   "request_count": 16,
   "site_url": "https://aksites.pl/",
   "topic_url": "https://discourse.threejs.org/t/from-a-point-cloud-car-to-html-navigation-three-js-webgl/94892"
  },
  {
   "domain": "masterblaster.se",
   "total_transfer_bytes": 129815,
   "lcp_ms": 2485.6764200000002,
   "perf_score": 95,
   "request_count": 16,
   "site_url": "https://masterblaster.se/?ref=threejsforum&utm_source=threejsforum&utm_medium=community&utm_campaign=first_players&utm_content=showcase",
   "topic_url": "https://discourse.threejs.org/t/master-blaster-browser-arena-shooter-with-grappling-and-destructible-towers/95005"
  },
  {
   "domain": "exo-view.com",
   "total_transfer_bytes": 134484,
   "lcp_ms": 1886.106,
   "perf_score": 100,
   "request_count": 17,
   "site_url": "https://exo-view.com/",
   "topic_url": "https://discourse.threejs.org/t/free-the-milky-way-as-we-know-it-3d-view-in-browser/95025"
  },
  {
   "domain": "terrainlab.netlify.app",
   "total_transfer_bytes": 150297,
   "lcp_ms": 1269.512,
   "perf_score": 72,
   "request_count": 6,
   "site_url": "https://terrainlab.netlify.app/",
   "topic_url": "https://discourse.threejs.org/t/terrain-generation-lab-10-procedural-terrain-generation-erosion-algorithms/95345"
  },
  {
   "domain": "company-named.com",
   "total_transfer_bytes": 197340,
   "lcp_ms": 3226.7439999999997,
   "perf_score": 86,
   "request_count": 6,
   "site_url": "https://meep.company-named.com/",
   "topic_url": "https://discourse.threejs.org/t/shade-webgpu-graphics/66969"
  }
 ],
 "heaviest10": [
  {
   "domain": "hardroad.xyz",
   "total_transfer_bytes": 147276575,
   "lcp_ms": 896.0245,
   "perf_score": 61,
   "request_count": 155,
   "site_url": "https://hardroad.xyz/",
   "topic_url": "https://discourse.threejs.org/t/infinite-procedural-post-apocalyptic-winter-driving-game/93196"
  },
  {
   "domain": "brisbane.exposed",
   "total_transfer_bytes": 65900504,
   "lcp_ms": 124062.11128064766,
   "perf_score": 27,
   "request_count": 39,
   "site_url": "https://brisbane.exposed/",
   "topic_url": "https://discourse.threejs.org/t/brisbane-explorer/94509"
  },
  {
   "domain": "nova-defender.expo.app",
   "total_transfer_bytes": 55152156,
   "lcp_ms": 6658.166,
   "perf_score": 37,
   "request_count": 70,
   "site_url": "https://nova-defender.expo.app/",
   "topic_url": "https://discourse.threejs.org/t/nova-defender-a-space-shooter-built-with-three-js/95042"
  },
  {
   "domain": "monsteriademo.netlify.app",
   "total_transfer_bytes": 49126594,
   "lcp_ms": 1548.4845,
   "perf_score": 65,
   "request_count": 7,
   "site_url": "https://monsteriademo.netlify.app/?utm_source=gemini",
   "topic_url": "https://discourse.threejs.org/t/for-those-who-miss-the-classic-game-boy-pokemon-era-i-made-a-browser-based-rpg-monsteria/94749"
  },
  {
   "domain": "flightobserver3d.org",
   "total_transfer_bytes": 41485007,
   "lcp_ms": 2605.3740000000003,
   "perf_score": 53,
   "request_count": 115,
   "site_url": "https://flightobserver3d.org/earth-3d-tile/",
   "topic_url": "https://discourse.threejs.org/t/flightobserver-3d-live-flight-tracker-on-a-fully-3d-eart/94721"
  },
  {
   "domain": "chatgpt.site",
   "total_transfer_bytes": 35109808,
   "lcp_ms": 1239.479,
   "perf_score": 65,
   "request_count": 44,
   "site_url": "https://vesper.mansgullberg.chatgpt.site/",
   "topic_url": "https://discourse.threejs.org/t/vesper-a-three-js-adventure-where-light-is-health-ammunition-and-currency/94464"
  },
  {
   "domain": "ryoccom.com",
   "total_transfer_bytes": 33936150,
   "lcp_ms": 1637.588,
   "perf_score": 59,
   "request_count": 32,
   "site_url": "https://music.ryoccom.com/between-light-and-shadow/",
   "topic_url": "https://discourse.threejs.org/t/between-light-and-shadow-three-js-music-film/95284"
  },
  {
   "domain": "prodiam.co.za",
   "total_transfer_bytes": 32532690,
   "lcp_ms": 68226.75900000006,
   "perf_score": 41,
   "request_count": 21,
   "site_url": "https://www.prodiam.co.za/oldest/",
   "topic_url": "https://discourse.threejs.org/t/deep-time-diamond-a-scroll-driven-rough-to-brilliant-morph-with-three-js/95561"
  },
  {
   "domain": "graveyard-pinball.vercel.app",
   "total_transfer_bytes": 25489860,
   "lcp_ms": 86395.09900000023,
   "perf_score": 25,
   "request_count": 189,
   "site_url": "https://graveyard-pinball.vercel.app/",
   "topic_url": "https://discourse.threejs.org/t/free-game-graveyard-pinball/95034"
  },
  {
   "domain": "discball3d.com",
   "total_transfer_bytes": 24486957,
   "lcp_ms": 25008.19999999999,
   "perf_score": 25,
   "request_count": 87,
   "site_url": "https://discball3d.com/",
   "topic_url": "https://discourse.threejs.org/t/discball3d-multiplayer-soccer/95207"
  }
 ],
 "self": [
  {
   "requested_url": "https://thebaileyperspective.com/",
   "final_url": "https://thebaileyperspective.com/",
   "fetch_time": "2026-10-23T06:08:35.802Z",
   "lighthouse_version": "12.8.2",
   "form_factor": "mobile",
   "throttling_method": "simulate",
   "max_wait_for_load_ms": 45000,
   "benchmark_index": 1399.5,
   "perf_score": 38,
   "fcp_ms": 1028.5695,
   "lcp_ms": 6323.5695,
   "tbt_ms": 137847.0,
   "cls": 4.333864433837612e-06,
   "speed_index_ms": 18834.525736317344,
   "tti_ms": 163353.6695,
   "mainthread_ms": 179347.67999999956,
   "bootup_ms": 9358.771999999977,
   "server_response_ms": 2.975999999999999,
   "dom_size": 199.0,
   "lh_total_byte_weight": 4452324.0,
   "total_transfer_bytes": 4452324,
   "total_resource_bytes": 7350643,
   "document_bytes": 10760,
   "js_bytes": 759597,
   "css_bytes": 14595,
   "image_bytes": 1709829,
   "font_bytes": 52935,
   "media_bytes": 0,
   "other_bytes": 1904608,
   "wasm_bytes": 0,
   "asset3d_bytes": 1904006,
   "request_count": 43,
   "js_request_count": 15,
   "image_request_count": 20,
   "font_request_count": 2,
   "wasm_request_count": 0,
   "asset3d_request_count": 1,
   "unfinished_request_count": 0,
   "three_detected": "unknown",
   "three_evidence": null,
   "largest_request_url": "https://thebaileyperspective.com/models/sun.glb",
   "largest_request_bytes": 1904006,
   "largest_request_type": "Fetch",
   "run_warnings": "The page loaded too slowly to finish within the time limit. Results may be incomplete.",
   "domain": "thebaileyperspective.com",
   "percentile_rank_bytes": 0.7447916666666666,
   "percentile_rank_lcp": 0.5052083333333334
  },
  {
   "requested_url": "https://thebaileyperspective.com/cityview/",
   "final_url": "https://thebaileyperspective.com/cityview/",
   "fetch_time": "2026-10-23T06:18:20.513Z",
   "lighthouse_version": "12.8.2",
   "form_factor": "mobile",
   "throttling_method": "simulate",
   "max_wait_for_load_ms": 45000,
   "benchmark_index": 1125,
   "perf_score": 25,
   "fcp_ms": 12106.67,
   "lcp_ms": 16686.792499999996,
   "tbt_ms": 88121.0,
   "cls": 0.0,
   "speed_index_ms": 45875.5824674076,
   "tti_ms": 101435.26999999999,
   "mainthread_ms": 178309.0440000011,
   "bootup_ms": 21592.456000000537,
   "server_response_ms": 9.381999999999998,
   "dom_size": 197.0,
   "lh_total_byte_weight": 3559205.0,
   "total_transfer_bytes": 3559205,
   "total_resource_bytes": 4608583,
   "document_bytes": 45038,
   "js_bytes": 335385,
   "css_bytes": 1228,
   "image_bytes": 3126430,
   "font_bytes": 50522,
   "media_bytes": 0,
   "other_bytes": 602,
   "wasm_bytes": 0,
   "asset3d_bytes": 0,
   "request_count": 47,
   "js_request_count": 2,
   "image_request_count": 39,
   "font_request_count": 2,
   "wasm_request_count": 0,
   "asset3d_request_count": 0,
   "unfinished_request_count": 0,
   "three_detected": "yes",
   "three_evidence": "https://thebaileyperspective.com/cityview/vendor/three.module.min.js",
   "largest_request_url": "https://thebaileyperspective.com/cityview/logos/mano.png",
   "largest_request_bytes": 442992,
   "largest_request_type": "Image",
   "run_warnings": "The page loaded too slowly to finish within the time limit. Results may be incomplete.",
   "domain": "thebaileyperspective.com_cityview",
   "percentile_rank_bytes": 0.7239583333333334,
   "percentile_rank_lcp": 0.7916666666666666
  }
 ],
 "lab_flags": {
  "results_from_retry_90s": 4,
  "results_hit_load_window": 88,
  "note": "retry = attempt 1 ended in a Lighthouse runtime error, attempt 2 used --max-wait-for-load=90000; load window = Lighthouse stopped waiting before the page went quiet, so its bytes are a lower bound"
 }
}