Skip to content

feat(bench,physics): finalize reference benchmarks and connected-body collision control - #732

Merged
Exoridus merged 28 commits into
nextfrom
bench/reference-arms-and-push-scope
Sep 12, 2026
Merged

Exoridus merged 28 commits into
nextfrom
bench/reference-arms-and-push-scope

Conversation

@Exoridus

Copy link
Copy Markdown
Owner

Finalizes the reference benchmarks and their page, and lands the physics work the page's own numbers turned up: a collideConnected option on every joint, and a fix for a revolute-chain solver defect the benchmark's seam contacts had been masking. One branch, one PR, as agreed; nothing in it is split out.

1. Benchmark and reference architecture

Adds the Nape-JS arm, the ui-layout-update and fx-blur arms, one definition of which archetypes an arm covers, the reference-run scope with its push gates, a bordered run summary, and a README that reads as a guide. Two reference profiles are published: rtx-5070-ti-windows-11-chromium and m3-max-macos-27-beta-webkit, each pooled from three runs, both re-measured on the current arms.

2. Benchmark site: redesign and final polish

One page, rendering and physics together, built at build time from the profiles under packages/exojs-bench/results/ and from nothing else. Six rendering and four physics scenarios open each section, fixed in bench-cards.ts before any run happens - the rendering six in three editorial pairs (a scene that never changes beside one where everything does, text beside tiles, an effect beside clipping) so the top of the page can never become a selection of whatever ExoJS won. The rows of a comparable load read quickest first, because the section says lower is better; ExoJS is found by its colour. A withheld row keeps the canonical order, since it publishes no ranking.

The axis is the browser, not the machine. Chromium | WebKit, Chromium first as an editorial choice. Switching machines changes CPU, GPU, OS, driver and engine at once, which is not an A/B of anything a reader can name. It is still not a browser benchmark while each browser is measured on its own machine: the machine is printed beside every set of figures as provenance, nothing is averaged across profiles, and one browser with several machines links to the measurements page instead of growing a second row of buttons.

Three depths, one data source. /benchmarks/ is the overview; /benchmarks/full/ ("All measurements") is every row with spread, p95, mechanism and omissions; /benchmarks/methodology/ is how the numbers are made. The old page carried all three stacked.

On a phone the scenarios are sections of one card per domain: label and time on one line, the bar full width beneath, one inset separator, no outer contour. Same markup, same data, same per-scenario detail. The light theme's card surfaces sit a step above the canvas instead of white on near-white - scoped to this page rather than retuned in the theme.

Each card opens its own detail, rendered from that load's comparisons, so the load, backend and profile a reader sees are the ones the numbers were read out of by construction. A figure past the 16.7 ms frame budget is drawn as the same figure in amber - same box, same alignment, no glyph - and is the control that opens the note explaining it; one legend on the page says what amber means and that the measurement is valid. Fixed arm naming (Nape-JS), proportional bars with no minimum width, a shared time column per card, selection marked by weight and ground as well as hue, the global .panel rule kept out of the card.

3. Measurement and timer correctness

An unmeasured comparison was published as 0.00 ms. A physics arm the clock could not separate stores a zero, and the card drew it with a bar - the fastest figure on the page for the arm that produced nothing, while the same cell's detail said not comparable. publishedMs withholds a figure the cell never established; a bar is a duration, so a pair the clock could not separate keeps its times and loses only the factor and the winner, stated once per row and read off the actual outcome. formatMs prints <0.001 rather than rounding a positive value to zero, and drops the trailing zeros the significant-figure rule reached for.

The table showed a different load than the card. Rows are now keyed on archetype and load, with a load column; the global "measured at N nodes" note that printed 0 nodes is gone.

A clock that was never observed read as a perfect one. physicsClock() returned resolutionMs: 0, which the batch sizing and the coarse-timing note read as the finest clock on record. It is null now and every consumer says "not observed". The note no longer prints Infinity% quantisation for a sample the clock returned as zero, and names the batch size instead of asserting why the target was missed.

The GPU line claimed something the profile does not record - the frame bracket, hardware timer or present cadence, with no mark saying which - and is no longer printed under that name.

4. Connected-body collision: API, lifecycle, CCD

JointOptions.collideConnected, shared by Distance, Revolute, Weld, Prismatic and Wheel, public and readonly. Default true - the behaviour every joint has had - as a compatibility choice; the reason it had to stay true is gone (section 5) and the default is free to be revisited. false takes the pair out of collision before the narrow phase through a pair-keyed, reference-counted map on the world: not a category/mask filter, which cannot say "this pair and no other". No hot-path allocation; the key is numeric and the lookup sits behind a size check. CCD applies the same map, so a swept bullet is not stopped by the neighbour the discrete path may not collide it with. enabled stays independent: disabling a joint suspends its constraint and does not hand a ragdoll's limbs to the contact solver.

Lifecycle: a body's teardown removes its incident joints and releases their pair claims (a joint left behind is prepared, warm-started and solved against a destroyed body every step, and holds a claim nothing can release); addJoint refuses a joint on one body or a destroyed one immediately and, at the deferred point where membership is settled, one whose body belongs to another world - while the private unattached anchor a MouseJoint stands in for its second body stays legal. Duplicate add and duplicate remove leave the count where it was.

Every rule has a test, and the CCD one was falsified: with the sweep's filter removed it is the one test that fails.

5. Revolute-chain stability fix

A hanging revolute chain of seven or more equal links, left to itself, gained speed without bound along its own axis: 8 links reached ~1760 px/s inside 100 steps, 12 diverged, while 2 to 6 settled and slept. The figures were identical at 1, 10, 100 and 1125 chains, so it was one chain's behaviour and not a scaling effect, and |ω|max stayed at zero throughout - the links stretched and over-corrected, they did not swing. With collideConnected: true the same chains held still: the seam contacts were damping the defect, not causing it.

Two causes, each load-bearing. The point constraint solved every sub-step against the anchor error measured at frame start, so each sub-step re-corrected an error the previous one had already taken out; it now rotates its arms by the body's accumulated sub-step rotation and re-derives the anchor error from the accumulated deltas, the way the contact solver always has, and its effective mass follows the live arms. And the rigid joint path applied that correction through an unscaled Baumgarte bias (0.2 / h, mass scale 1, impulse scale 0) that relaxed none of the impulse it accumulated; the rigid path now takes the solver's own soft factors, derived from twice the contact stiffness, which is the formulation the contacts already use. Reverting either half alone fails a test: the first breaks an existing soft-joint test, the second the new chain tests.

After the fix every length from 2 to 16 links and the benchmark's full 1125-chain scene settle to rest and sleep, hanging within a few pixels of where they were built. The regression test runs 7-, 8- and 12-link chains for 600 steps and asserts invariants rather than numbers: finite, within 8 px of the rest position, peak speed below the settling motion, at rest at the end, and asleep. Distance, Weld and Wheel take the same rigid softness; the whole physics suite, the allocation gate and the perf gate are green.

6. Benchmark definition and reference profiles

The joint scene's connected-body semantics is now set explicitly on every arm (collideConnected=false on ExoJS and Planck, setContactsEnabled(false) on Rapier, Constraint.ignore=true on Nape-JS; Matter.js has no per-constraint switch and is documented as running at its defaults, where it produces none). A small diagnostic run on this machine has all five arms at zero contacts.

The published profiles predate that alignment and were not regenerated. The joints row therefore stays Not comparable on the page - every arm's time visible, no bar, no factor, no winner - with the reason stated on the card, in its details, in the measurements table and in the methodology: the arms were not doing the same work when the profiles were measured, the harness now configures them to, and the comparison returns with the next reference measurement. No other benchmark definition changed, and no profile was touched for a UI fix.

Verification

Physics: 557 tests including the chain regression, allocation gate, perf gate - one run of thirteen reported a single failure that did not name itself and did not reproduce in the twelve others, all of which passed clean. Site: 160 tests including the invalid-value rules against the published profiles, astro check, full build. Bench: typecheck and lint. Root typecheck. eslint --max-warnings=0 everywhere. Driven in a browser: markers open their note by pointer and by Enter, the only state chip the profiles produce is Timing-limited, switching profiles leaves exactly one stamp and one panel visible, a card switched to another load opens a detail naming that load. Screenshots at 1440x1000 and 390x844, dark and light, all three routes.

Dima Giesler and others added 28 commits September 12, 2026 02:56
WebKit's WebGPU adapter substitution reports `apple apple apple apple`.
`dropLeadingNoise` keeps a last part rather than reducing to the empty
string, so that survived as the bare vendor word `apple` - which the
category-word check accepted, because `apple` is a vendor rather than a
category. The adapter preference then chose it over the WebGL2 stamp's
`Apple GPU`, and one machine's runs published as
`apple-macos-27-beta-webkit.json` instead of falling back to the CPU
model and overwriting `m3-max-macos-27-beta-webkit.json`. That is how
the same Mac came to hold two profiles.

A part made only of vendor and product-line words now identifies no
machine, for the same reason a category word does not. The superseded
physics-only profile for that machine is removed with it.
A push carrying only a published benchmark profile rebuilt `dist` and ran
all four gate groups - nine typechecks, ten lints, the sync and site
groups - to validate a JSON file none of them opens. The one check that
does read it, `verify:bench-results`, sits inside the lint group and was
reached last.

`scripts/ci/push-scope.ts` classifies the pushed range instead: a range
that changes no tracked file verifies nothing, one carrying published
profiles alone runs only their own gate, and anything else - including a
range whose scope cannot be determined - takes the full path unchanged.
The hook stays a convenience rather than an authority, so narrowing here
is safe: CI re-runs its own selection on every push regardless.
The exclusion rested on a 45 % pixel difference against Pixi and on ExoJS
issuing twenty draw calls to Pixi's three. The draw count was fixed upstream;
the picture difference turned out to be two mistakes in this arm, not in either
filter.

`BlurFilter.strength` is the spacing between taps, not a standard deviation -
the weights are a fixed table that already is a sigma-2 kernel - so handing it
the archetype's sigma blurred the Pixi arm about twice as far as the contract
asks. And the two filters derive their reach from different multiples of the
blur they were given, which left a band a few pixels deep at the filtered
region's border.

With both corrected the arms agree to within 18 of 255 on the worst channel of
the worst pixel at every rung, over 98 % of pixels inside 8. Evidence, including
the numbers before each correction, is in the private workspace.

Phaser stays out: its blur is an iterative step filter on a camera, with no
kernel to configure to the shared contract.
The per-cell summary was `key=value` runs padded by hand, so two arms of one
scenario could not be compared without parsing a line first - and they were
printed arm-major, which put them nowhere near each other. Now one table,
grouped by scenario and load, in both domains.

The README was 748 lines of contract with the commands at the top. The contract
moves to docs/harness.md unchanged; the README becomes what someone needs to run
a benchmark, read what it printed, and contribute their machine's numbers - and
says how to do that last part, which nothing pointed at before.

`results/README.md` still documented a three-run recipe per domain; the harness
has measured both domains in one `bench:reference` invocation for a while.
…ed table

`coversArchetype` existed twice - once in each adapter, once in the driver's
capability list - and only the driver's copy decides which cells are built. A
clause present in an adapter alone therefore changed nothing: the cell was
created anyway and `buildScene` fell through to the ordinary sprite scene.

Two rows were being published that way. The Excalibur arm implements neither hit
testing nor a particle system, and was measured on both: `interaction-picking`
and the particle scenarios were sprite counts under a name that promised
something else. Its tilemap clause had drifted the same way, as had the culled
Pixi arm's.

The predicates move to `coverage.ts` and both sides import them.

The summary table is bordered now, with a rule between scenarios so the arms of
one row read as a group.
…row publish

Three pooled `bench:reference` runs on the RTX 5070 Ti, Chromium. The profile
gains the seven rendering scenarios it never carried, plus `fx-blur` and
`ui-layout-update`.

`ui-layout-update` did not reach the table on the first attempt. The mechanism
rule reads zero draw calls on both arms as a cell that failed to render its
scene, which was true of every archetype until this one: it measures a box-tree
solve and its leaves have no painted surface, so drawing nothing is the correct
behaviour and the zeros are the evidence. A drawless archetype now keeps its
counters and says so in its mechanism sentence.

`fx-blur` publishes a loss: Pixi leads it by 1.3x on WebGPU and 1.4x on WebGL2.
The page falls back to the raw archetype id when it has no title, so the new row
would have shipped as `ui-layout-update` beside `Hit testing` and `Blur effect`.
The fallback stays - the page has to render a profile from a newer harness than
it knows - and a test now keeps the repository's own profiles away from it.
…scenario

The archetype had a catalog entry, a ladder and no arm, so every reference run
resolved 23 of 24 scenarios and nothing said so. The suite-plan test skipped
any catalogued scenario without an archetype ladder, which is exactly the shape
of that gap; it now asserts the ids instead.

ExoJS lays the tree out through `Stack`, Pixi through `@pixi/layout` over Yoga.
Phaser 4 and Excalibur 0.32 ship no layout engine at all and sit the archetype
out, so this is a published two-arm comparison.

The harness checks the resolved rectangles against a closed-form model of the
shared definition rather than against the other arm, and the structural probe's
"a non-empty scene must draw" self-check is exempted here: this is the one
scene that submits nothing by design.

Found on the way: a nested `Stack` was pinned to an explicit box the first time
its parent laid it out, because the parent wrote back a size the child already
had. It then stopped sizing itself to its content for the rest of its life.
Not everyone installs from npm, and nothing on the landing page pointed at the
release bundles. The link targets `/releases/latest` rather than a tag built
from the package version: GitHub resolves it to whatever is newest, while the
version in `package.json` is the one being developed and is ahead of the last
release for most of a cycle.
…able ZIP name

A squash commit's body is the pull request description, and the changelog put
all of it under the bullet. Fifteen of those end to end made the v0.17.0 release
page several thousand words of unbroken prose - the entries stopped being
scannable, which is the one thing release notes are for. An entry now leads with
its opening paragraph and keeps the rest in a `<details>` fold: nothing is lost,
neither on the release page nor in `CHANGELOG.md`.

The release also uploads a second copy of the Full ZIP under a version-less
name. GitHub serves the newest release's assets at
`/releases/latest/download/<asset>`, which is a permanent direct-download URL
only for a name that does not move with the version - so the site's download
button can link the archive itself rather than the release page.
@codecov

codecov Bot commented Sep 12, 2026 •

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 19.56MB (60.55%) ⬆️⚠️, exceeding the configured threshold of 5%.

Bundle name Size Change
exo-esm-esm 1.24MB 45 bytes (0.0%) ⬆️
exo-esm-modules-esm 3.57MB 106 bytes (0.0%) ⬆️
exo-iife-min-Exo-iife 1.24MB 45 bytes (0.0%) ⬆️
site-server-esm 33.85MB 19.55MB (136.71%) ⬆️⚠️
exo-full-iife-Exo-iife 5.39MB 6.12kB (0.11%) ⬆️
exojs-physics-esm 270.49kB 6.03kB (2.28%) ⬆️
exo-iife-Exo-iife 3.46MB 108 bytes (0.0%) ⬆️
exo-full-iife-min-Exo-iife 1.96MB 2.01kB (0.1%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: exo-esm-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
exo.esm.js 45 bytes 1.24MB 0.0%
view changes for bundle: exojs-physics-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
PhysicsWorld.js 2.51kB 43.07kB 6.2% ⚠️
PhysicsBody.js 658 bytes 19.5kB 3.49%
ContactGraph.js 1.02kB 12.23kB 9.06% ⚠️
joints/WheelJoint.js 72 bytes 9.18kB 0.79%
joints/PrismaticJoint.js 34 bytes 8.67kB 0.39%
joints/RevoluteJoint.js 430 bytes 7.97kB 5.7% ⚠️
joints/WeldJoint.js 99 bytes 6.39kB 1.57%
joints/DistanceJoint.js 72 bytes 5.7kB 1.28%
joints/MouseJoint.js 8 bytes 4.52kB 0.18%
joints/Joint.js 1.12kB 1.97kB 133.14% ⚠️
view changes for bundle: exo-esm-modules-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
ui/Stack.js 106 bytes 7.2kB 1.5%
view changes for bundle: site-server-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
chunks/_astro_data-layer-content_Dc70ZAtl.mjs (New) 7.67MB 7.67MB 100.0% 🚀
chunks/example-sources_D1xhuWWb.mjs (New) 1.58MB 1.58MB 100.0% 🚀
chunks/cpp_CPDmpxAH.mjs (New) 837.87kB 837.87kB 100.0% 🚀
chunks/emacs-lisp_Dv0hCzlu.mjs (New) 792.54kB 792.54kB 100.0% 🚀
chunks/wasm_CLRKp8VF.mjs (New) 622.55kB 622.55kB 100.0% 🚀
chunks/bench-profiles_BvPmwbfM.mjs (New) 353.91kB 353.91kB 100.0% 🚀
_astro/vendor-monaco.D6-58Mxn.css (New) 308.24kB 308.24kB 100.0% 🚀
chunks/shiki-theme_BYrySdxo.mjs (New) 303.06kB 303.06kB 100.0% 🚀
chunks/jsx-runtime_1tdYssgZ.mjs (New) 281.08kB 281.08kB 100.0% 🚀
chunks/wolfram_CcZPfnLd.mjs (New) 266.98kB 266.98kB 100.0% 🚀
prerender-entry.B_h1O574.mjs (New) 232.96kB 232.96kB 100.0% 🚀
chunks/vue-vine_BwEx5Hbl.mjs (New) 201.21kB 201.21kB 100.0% 🚀
chunks/backend-comparison_p9Nr0gX3.mjs (New) 199.19kB 199.19kB 100.0% 🚀
chunks/angular-ts_Go_sxgiM.mjs (New) 194.57kB 194.57kB 100.0% 🚀
chunks/typescript_BdOuaDkb.mjs (New) 191.0kB 191.0kB 100.0% 🚀
chunks/jsx_DlBZfu41.mjs (New) 188.11kB 188.11kB 100.0% 🚀
chunks/tsx_DP9gbsaw.mjs (New) 185.85kB 185.85kB 100.0% 🚀
chunks/javascript_Csr6kOdt.mjs (New) 185.19kB 185.19kB 100.0% 🚀
chunks/typst_BnzMfKm_.mjs (New) 184.6kB 184.6kB 100.0% 🚀
chunks/objective-cpp__ooRQ-PY.mjs (New) 184.45kB 184.45kB 100.0% 🚀
chunks/audio-effects_BQ7S0yrK.mjs (New) 157.49kB 157.49kB 100.0% 🚀
chunks/writing-your-own-transition_vC1fBbaL.mjs (New) 155.46kB 155.46kB 100.0% 🚀
chunks/text_BGBnMCgd.mjs (New) 152.43kB 152.43kB 100.0% 🚀
chunks/asciidoc_xKuVlNk6.mjs (New) 150.63kB 150.63kB 100.0% 🚀
chunks/mdx_BK9ZufRc.mjs (New) 146.33kB 146.33kB 100.0% 🚀
chunks/animation_B_9tMA04.mjs (New) 142.19kB 142.19kB 100.0% 🚀
chunks/infinite-maps_CI9ku00e.mjs (New) 141.61kB 141.61kB 100.0% 🚀
chunks/spatial-audio_YhngOhqZ.mjs (New) 137.74kB 137.74kB 100.0% 🚀
chunks/php_Ce-_eRmu.mjs (New) 120.72kB 120.72kB 100.0% 🚀
chunks/blade_BmZAqhvV.mjs (New) 112.47kB 112.47kB 100.0% 🚀
chunks/objective-c_6dJF64Dt.mjs (New) 111.93kB 111.93kB 100.0% 🚀
chunks/tiled-maps_BadbdlwX.mjs (New) 111.71kB 111.71kB 100.0% 🚀
chunks/custom-mesh-shaders_aolJcqzP.mjs (New) 111.48kB 111.48kB 100.0% 🚀
chunks/filters_DhVOI54P.mjs (New) 110.35kB 110.35kB 100.0% 🚀
chunks/audio-basics_DQ8KExW7.mjs (New) 109.42kB 109.42kB 100.0% 🚀
chunks/less_BzbdhFUi.mjs (New) 107.13kB 107.13kB 100.0% 🚀
chunks/loading-and-resources_BM9nAHJL.mjs (New) 104.49kB 104.49kB 100.0% 🚀
chunks/application_hduxdu9w.mjs (New) 101.57kB 101.57kB 100.0% 🚀
chunks/gamepad_kRrf9tw6.mjs (New) 100.0kB 100.0kB 100.0% 🚀
chunks/csharp_CFKaLbHg.mjs (New) 99.97kB 99.97kB 100.0% 🚀
chunks/fortran-free-form_yxJ7igsv.mjs (New) 98.65kB 98.65kB 100.0% 🚀
chunks/ui-and-widgets_CuRuWCDB.mjs (New) 97.2kB 97.2kB 100.0% 🚀
chunks/racket_DRv7j6nv.mjs (New) 95.06kB 95.06kB 100.0% 🚀
chunks/particles_DeDKq5UQ.mjs (New) 94.62kB 94.62kB 100.0% 🚀
chunks/swift_DWmMn3lF.mjs (New) 94.57kB 94.57kB 100.0% 🚀
chunks/immediate-mode_4WsjsU6m.mjs (New) 92.77kB 92.77kB 100.0% 🚀
chunks/hack_ogeSwry3.mjs (New) 86.02kB 86.02kB 100.0% 🚀
chunks/authoring-extensions_B4D8sH9I.mjs (New) 84.42kB 84.42kB 100.0% 🚀
chunks/beat-detection_DwQOgTyo.mjs (New) 83.95kB 83.95kB 100.0% 🚀
chunks/vyper_C6KGx0YU.mjs (New) 82.05kB 82.05kB 100.0% 🚀
chunks/latex_CHMapQI4.mjs (New) 80.49kB 80.49kB 100.0% 🚀
chunks/gameplay-collision_AZ_BRgFO.mjs (New) 78.98kB 78.98kB 100.0% 🚀
chunks/c_DtrCgMGx.mjs (New) 78.39kB 78.39kB 100.0% 🚀
chunks/physics-basics_DvFG3Qsj.mjs (New) 77.32kB 77.32kB 100.0% 🚀
chunks/python_BjnOIxPe.mjs (New) 77.17kB 77.17kB 100.0% 🚀
chunks/mojo_CsUSYzsu.mjs (New) 76.64kB 76.64kB 100.0% 🚀
chunks/graphics_D-rQkW3X.mjs (New) 75.46kB 75.46kB 100.0% 🚀
chunks/vendor-react_BMTBJ0m-.mjs (New) 75.19kB 75.19kB 100.0% 🚀
chunks/worlds-and-spawning_B7VpJweJ.mjs (New) 72.75kB 72.75kB 100.0% 🚀
chunks/ldtk_bfDFeD3W.mjs (New) 72.12kB 72.12kB 100.0% 🚀
chunks/mouse-and-pointer_C0oZ1z8C.mjs (New) 71.45kB 71.45kB 100.0% 🚀
chunks/typed-worklets-and-workers_DmUOR2Rj.mjs (New) 70.72kB 70.72kB 100.0% 🚀
chunks/ExampleBrowser_CGIat5o9.mjs (New) 69.05kB 69.05kB 100.0% 🚀
chunks/deployment_Bciivao6.mjs (New) 68.51kB 68.51kB 100.0% 🚀
chunks/debugging-and-inspection_DggipjMo.mjs (New) 67.4kB 67.4kB 100.0% 🚀
chunks/ocaml_vm1Y8An6.mjs (New) 67.28kB 67.28kB 100.0% 🚀
chunks/markdown_CkmxmzqY.mjs (New) 65.34kB 65.34kB 100.0% 🚀
chunks/sprites_BL7SgiWv.mjs (New) 65.21kB 65.21kB 100.0% 🚀
chunks/ballerina_DIdXD2KH.mjs (New) 64.73kB 64.73kB 100.0% 🚀
chunks/aseprite_Bqe0oUkY.mjs (New) 63.85kB 63.85kB 100.0% 🚀
chunks/wikitext_wjhjmmzD.mjs (New) 62.35kB 62.35kB 100.0% 🚀
chunks/html_CJiVogkZ.mjs (New) 62.31kB 62.31kB 100.0% 🚀
chunks/stata_ZpI2p0PE.mjs (New) 62.02kB 62.02kB 100.0% 🚀
chunks/mermaid_ItFqCK9s.mjs (New) 61.2kB 61.2kB 100.0% 🚀
chunks/render-targets_xGDSTa8z.mjs (New) 59.28kB 59.28kB 100.0% 🚀
chunks/everforest-light_D0-By8Ib.mjs (New) 58.66kB 58.66kB 100.0% 🚀
chunks/everforest-dark_DM8lKNNi.mjs (New) 58.65kB 58.65kB 100.0% 🚀
chunks/catppuccin-macchiato_Dkogd_RC.mjs (New) 56.22kB 56.22kB 100.0% 🚀
chunks/catppuccin-frappe_DpzIdcTG.mjs (New) 56.2kB 56.2kB 100.0% 🚀
chunks/catppuccin-latte_qlLg6gWa.mjs (New) 56.2kB 56.2kB 100.0% 🚀
chunks/catppuccin-mocha_DW8bSod0.mjs (New) 56.2kB 56.2kB 100.0% 🚀
chunks/typed-shaders_CBxZqeb3.mjs (New) 55.39kB 55.39kB 100.0% 🚀
chunks/imba_96qKoJCa.mjs (New) 54.85kB 54.85kB 100.0% 🚀
chunks/_virtual_astro_get-image_BJ27s_UA.mjs (New) 54.78kB 54.78kB 100.0% 🚀
chunks/ada_twHwrVWN.mjs (New) 54.62kB 54.62kB 100.0% 🚀
chunks/apex_CybrBQ0z.mjs (New) 53.2kB 53.2kB 100.0% 🚀
chunks/keyboard-and-actions_BqfoyGj2.mjs (New) 53.05kB 53.05kB 100.0% 🚀
chunks/ruby_DurSp7NY.mjs (New) 52.52kB 52.52kB 100.0% 🚀
chunks/css_B24SoJng.mjs (New) 52.49kB 52.49kB 100.0% 🚀
chunks/go_aXtTCanQ.mjs (New) 51.86kB 51.86kB 100.0% 🚀
_astro/AppShell.CL9P8ynr.css (New) 50.63kB 50.63kB 100.0% 🚀
chunks/AppShell_83Qj2Mmd.mjs (New) 49.78kB 49.78kB 100.0% 🚀
chunks/ahk2_bJ5Wm9-K.mjs (New) 48.96kB 48.96kB 100.0% 🚀
chunks/d_BQY8TDgQ.mjs (New) 48.94kB 48.94kB 100.0% 🚀
chunks/perl_DD46WzW0.mjs (New) 48.57kB 48.57kB 100.0% 🚀
chunks/shellscript_CJgrg95w.mjs (New) 45.75kB 45.75kB 100.0% 🚀
chunks/haskell_CfGsE1Cf.mjs (New) 45.58kB 45.58kB 100.0% 🚀
chunks/troubleshooting_Cq1BV9ce.mjs (New) 44.55kB 44.55kB 100.0% 🚀
chunks/asm_wBDSgBbA.mjs (New) 43.88kB 43.88kB 100.0% 🚀
chunks/scene-graph_DJjq8yO6.mjs (New) 43.01kB 43.01kB 100.0% 🚀
chunks/custom-renderers_DGRhAJgN.mjs (New) 42.4kB 42.4kB 100.0% 🚀
chunks/erlang_BsP4G84Y.mjs (New) 41.69kB 41.69kB 100.0% 🚀
chunks/org_GxkLwT0W.mjs (New) 41.61kB 41.61kB 100.0% 🚀
chunks/cobol_Cde5oeOV.mjs (New) 41.47kB 41.47kB 100.0% 🚀
chunks/bird2_BMprQDNV.mjs (New) 41.32kB 41.32kB 100.0% 🚀
chunks/haxe_QaqXWmIB.mjs (New) 40.26kB 40.26kB 100.0% 🚀
chunks/pixel-snapping_BEFqoSgV.mjs (New) 40.11kB 40.11kB 100.0% 🚀
chunks/EditorPreview_C7pSh6tO.mjs (New) 39.69kB 39.69kB 100.0% 🚀
chunks/resize-dpr-and-canvas_BKXAGG4M.mjs (New) 39.66kB 39.66kB 100.0% 🚀
chunks/nginx_B6K5caqL.mjs (New) 39.45kB 39.45kB 100.0% 🚀
chunks/houston_BCge59HB.mjs (New) 39.13kB 39.13kB 100.0% 🚀
chunks/tokyo-night_CZgEO66P.mjs (New) 38.95kB 38.95kB 100.0% 🚀
chunks/device-variants_D0YDiF0J.mjs (New) 37.6kB 37.6kB 100.0% 🚀
chunks/one-dark-pro_CUhzNQJE.mjs (New) 37.42kB 37.42kB 100.0% 🚀
chunks/poimandres_QRiMVtzX.mjs (New) 36.74kB 36.74kB 100.0% 🚀
chunks/BenchFullResultsPage_D6UPmU6u.mjs (New) 36.23kB 36.23kB 100.0% 🚀
chunks/serialization-and-prefabs_26AmzF3L.mjs (New) 35.73kB 35.73kB 100.0% 🚀
chunks/BenchmarksPage_BEmNbgPo.mjs (New) 35.6kB 35.6kB 100.0% 🚀
chunks/scenes-and-lifecycle_dsPmza7o.mjs (New) 35.13kB 35.13kB 100.0% 🚀
chunks/bsl_RRHQTRWr.mjs (New) 35.05kB 35.05kB 100.0% 🚀
chunks/stylus_ZZDn1yUO.mjs (New) 33.23kB 33.23kB 100.0% 🚀
chunks/julia_CUdUEEdZ.mjs (New) 33.23kB 33.23kB 100.0% 🚀
chunks/crystal_BxARsATC.mjs (New) 32.91kB 32.91kB 100.0% 🚀
chunks/ahk_B0zayAPr.mjs (New) 32.83kB 32.83kB 100.0% 🚀
chunks/night-owl_Cm6kp1PA.mjs (New) 32.35kB 32.35kB 100.0% 🚀
chunks/applescript_CJ80B5XJ.mjs (New) 32.08kB 32.08kB 100.0% 🚀
chunks/guide-structure_BmtgRGnl.mjs (New) 31.55kB 31.55kB 100.0% 🚀
chunks/scala_pMGZAs9j.mjs (New) 31.33kB 31.33kB 100.0% 🚀
chunks/joints-and-dynamics_DdVwNKNh.mjs (New) 31.05kB 31.05kB 100.0% 🚀
chunks/razor_DtzGaIsD.mjs (New) 30.85kB 30.85kB 100.0% 🚀
chunks/scss_DfTZ3J77.mjs (New) 30.71kB 30.71kB 100.0% 🚀
chunks/java_DtJJObUJ.mjs (New) 30.68kB 30.68kB 100.0% 🚀
chunks/EditorCode_jz20P1N3.mjs (New) 30.66kB 30.66kB 100.0% 🚀
chunks/coffee_CKL8nDPj.mjs (New) 29.89kB 29.89kB 100.0% 🚀
chunks/c3_u0qNrniV.mjs (New) 29.84kB 29.84kB 100.0% 🚀
chunks/nord_B2iOUYPu.mjs (New) 29.64kB 29.64kB 100.0% 🚀
chunks/codeql_BwdvwJnv.mjs (New) 29.6kB 29.6kB 100.0% 🚀
chunks/performance_ECh05R1r.mjs (New) 29.36kB 29.36kB 100.0% 🚀
chunks/night-owl-light_C5JQlziG.mjs (New) 29.05kB 29.05kB 100.0% 🚀
chunks/system-verilog_DW0KSMVO.mjs (New) 28.95kB 28.95kB 100.0% 🚀
chunks/vue_BZSikl6a.mjs (New) 28.8kB 28.8kB 100.0% 🚀
chunks/marko_yztgkyW2.mjs (New) 28.69kB 28.69kB 100.0% 🚀
chunks/fsharp_Csv26BFS.mjs (New) 28.44kB 28.44kB 100.0% 🚀
_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff (New) 28.21kB 28.21kB 100.0% 🚀
chunks/one-light_Dydeaphl.mjs (New) 28.19kB 28.19kB 100.0% 🚀
chunks/angular-html_DFpvQUcR.mjs (New) 27.66kB 27.66kB 100.0% 🚀
chunks/typespec_C_R5TbvO.mjs (New) 27.64kB 27.64kB 100.0% 🚀
chunks/moonbit_BzHkbr4Q.mjs (New) 27.52kB 27.52kB 100.0% 🚀
_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff (New) 27.5kB 27.5kB 100.0% 🚀
chunks/apl_BusG2rRg.mjs (New) 27.01kB 27.01kB 100.0% 🚀
chunks/vhdl_Co2XFKY7.mjs (New) 26.8kB 26.8kB 100.0% 🚀
chunks/purescript_CLpaGMbw.mjs (New) 26.78kB 26.78kB 100.0% 🚀
chunks/cadence_B1ELWULD.mjs (New) 26.37kB 26.37kB 100.0% 🚀
chunks/templ_Dua9xeFZ.mjs (New) 26.31kB 26.31kB 100.0% 🚀
chunks/astro_DVlyOzje.mjs (New) 25.85kB 25.85kB 100.0% 🚀
chunks/nim_B6oIhaho.mjs (New) 25.63kB 25.63kB 100.0% 🚀
chunks/retained-containers_CnYohNjO.mjs (New) 25.49kB 25.49kB 100.0% 🚀
chunks/gruvbox-light-medium_DK7Hp87r.mjs (New) 25.36kB 25.36kB 100.0% 🚀
chunks/gruvbox-dark-medium_C1cagsrM.mjs (New) 25.36kB 25.36kB 100.0% 🚀
chunks/gruvbox-light-hard_h1QgYclB.mjs (New) 25.35kB 25.35kB 100.0% 🚀
chunks/gruvbox-light-soft_CsHBh6fE.mjs (New) 25.35kB 25.35kB 100.0% 🚀
chunks/gruvbox-dark-hard_DaH6zhre.mjs (New) 25.35kB 25.35kB 100.0% 🚀
chunks/gruvbox-dark-soft_V8cmWQ7W.mjs (New) 25.35kB 25.35kB 100.0% 🚀
chunks/react_Cghv9ayo.mjs (New) 25.25kB 25.25kB 100.0% 🚀
chunks/sql_DtGcscyb.mjs (New) 24.8kB 24.8kB 100.0% 🚀
chunks/_astro_content_Ci2wbi6J.mjs (New) 24.59kB 24.59kB 100.0% 🚀
chunks/twig_D5YhvR8w.mjs (New) 24.25kB 24.25kB 100.0% 🚀
chunks/rose-pine-dawn_5bNxnqJn.mjs (New) 24.16kB 24.16kB 100.0% 🚀
chunks/rose-pine-moon_D9u1dVFS.mjs (New) 24.16kB 24.16kB 100.0% 🚀
chunks/rose-pine_LrKaLPzB.mjs (New) 24.14kB 24.14kB 100.0% 🚀
chunks/offline_BMp7yfWs.mjs (New) 24.08kB 24.08kB 100.0% 🚀
chunks/wit_CeQiCbz_.mjs (New) 23.94kB 23.94kB 100.0% 🚀
chunks/DocsLayout_B5tustLy.mjs (New) 23.91kB 23.91kB 100.0% 🚀
chunks/common-lisp_DJtwvW4V.mjs (New) 23.61kB 23.61kB 100.0% 🚀
chunks/dracula-soft_CxJ6yBh7.mjs (New) 23.29kB 23.29kB 100.0% 🚀
chunks/dracula_DrwtDR2u.mjs (New) 23.26kB 23.26kB 100.0% 🚀
chunks/audio-reactive-visualization_BWbX6Mt1.mjs (New) 23.26kB 23.26kB 100.0% 🚀
chunks/snazzy-light_DfXk5yzb.mjs (New) 23.25kB 23.25kB 100.0% 🚀
chunks/build-orb-dodge_BaA6XFvn.mjs (New) 23.02kB 23.02kB 100.0% 🚀
chunks/glimmer-js_B8pygmEI.mjs (New) 22.94kB 22.94kB 100.0% 🚀
chunks/glimmer-ts_CQEDCkOl.mjs (New) 22.94kB 22.94kB 100.0% 🚀
_astro/HomePage.Q5eTbCl4.css (New) 22.92kB 22.92kB 100.0% 🚀
chunks/nushell_BLPX3-WC.mjs (New) 22.84kB 22.84kB 100.0% 🚀
chunks/errors-data_CNvREpxb.mjs (New) 22.73kB 22.73kB 100.0% 🚀
chunks/ayu-light_Djj5_ZCz.mjs (New) 22.53kB 22.53kB 100.0% 🚀
chunks/ayu-mirage_B5o6RGmT.mjs (New) 22.47kB 22.47kB 100.0% 🚀
chunks/ayu-dark_liWEyCZQ.mjs (New) 22.46kB 22.46kB 100.0% 🚀
chunks/powershell_DvOBVZPr.mjs (New) 21.96kB 21.96kB 100.0% 🚀
_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2 (New) 21.83kB 21.83kB 100.0% 🚀
chunks/groovy_Bw2Ku4bU.mjs (New) 21.56kB 21.56kB 100.0% 🚀
chunks/mdc_C1b5g3_q.mjs (New) 21.34kB 21.34kB 100.0% 🚀
chunks/viml_BReTXeDA.mjs (New) 21.2kB 21.2kB 100.0% 🚀
_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2 (New) 21.17kB 21.17kB 100.0% 🚀
chunks/gdscript_CSSSWtkL.mjs (New) 21.11kB 21.11kB 100.0% 🚀
chunks/your-first-scene_CQ1xBdco.mjs (New) 21.01kB 21.01kB 100.0% 🚀
chunks/svelte_BPWEr4fK.mjs (New) 20.75kB 20.75kB 100.0% 🚀
chunks/graphql_D_YYFDMU.mjs (New) 20.59kB 20.59kB 100.0% 🚀
chunks/material-theme-palenight_BqWSY0zJ.mjs (New) 20.57kB 20.57kB 100.0% 🚀
chunks/material-theme-lighter_BiEXTf1u.mjs (New) 20.56kB 20.56kB 100.0% 🚀
chunks/material-theme-darker_DAUXLwZb.mjs (New) 20.55kB 20.55kB 100.0% 🚀
chunks/material-theme-ocean_C0tH_beU.mjs (New) 20.55kB 20.55kB 100.0% 🚀
chunks/material-theme_DckHuUUK.mjs (New) 20.52kB 20.52kB 100.0% 🚀
chunks/liquid_BmzWPM4R.mjs (New) 20.34kB 20.34kB 100.0% 🚀
chunks/move_B-o8dn0N.mjs (New) 20.24kB 20.24kB 100.0% 🚀
_astro/ExampleBrowser.BGXKxNid.css (New) 20.05kB 20.05kB 100.0% 🚀
chunks/setup_CHsmI8st.mjs (New) 19.4kB 19.4kB 100.0% 🚀
chunks/ts-tags_fCPzN4J1.mjs (New) 19.02kB 19.02kB 100.0% 🚀
chunks/kanagawa-dragon_BUX6P0jP.mjs (New) 18.91kB 18.91kB 100.0% 🚀
chunks/kanagawa-lotus_Dm_LiccM.mjs (New) 18.91kB 18.91kB 100.0% 🚀
chunks/kanagawa-wave_K9PBxgbK.mjs (New) 18.9kB 18.9kB 100.0% 🚀
chunks/odin_vjOJSyfV.mjs (New) 18.58kB 18.58kB 100.0% 🚀
chunks/solidity_DPVu0wkJ.mjs (New) 18.46kB 18.46kB 100.0% 🚀
chunks/elixir_B_EVzLaG.mjs (New) 18.25kB 18.25kB 100.0% 🚀
chunks/cue_B5KneM5p.mjs (New) 18.22kB 18.22kB 100.0% 🚀
chunks/matlab_CfRK6IMC.mjs (New) 17.96kB 17.96kB 100.0% 🚀
chunks/luau_koeK31uZ.mjs (New) 17.78kB 17.78kB 100.0% 🚀
chunks/nix_4vzStI7m.mjs (New) 17.7kB 17.7kB 100.0% 🚀
chunks/grid-pathfinding_B7nyQaEj.mjs (New) 17.62kB 17.62kB 100.0% 🚀
chunks/lua_D40mNAJl.mjs (New) 17.57kB 17.57kB 100.0% 🚀
_astro/BenchFullResultsPage.Q_BeEvRP.css (New) 17.53kB 17.53kB 100.0% 🚀
chunks/post-processing_Db0Z62tr.mjs (New) 17.44kB 17.44kB 100.0% 🚀
chunks/actionscript-3_CfsDl31I.mjs (New) 17.38kB 17.38kB 100.0% 🚀
_astro/space-grotesk-latin-400-normal.BnQMeOim.woff (New) 17.0kB 17.0kB 100.0% 🚀
chunks/HomePage_CYDlqZOi.mjs (New) 17.0kB 17.0kB 100.0% 🚀
_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff (New) 16.99kB 16.99kB 100.0% 🚀
chunks/rust_COBzcmTx.mjs (New) 16.94kB 16.94kB 100.0% 🚀
_astro/space-grotesk-latin-600-normal.BflQw4A9.woff (New) 16.88kB 16.88kB 100.0% 🚀
_astro/space-grotesk-latin-ext-400-normal.DRPE3kg4.woff (New) 16.79kB 16.79kB 100.0% 🚀
_astro/space-grotesk-latin-ext-500-normal.3dgZTiw9.woff (New) 16.79kB 16.79kB 100.0% 🚀
_astro/space-grotesk-latin-ext-600-normal.VcznFIpX.woff (New) 16.73kB 16.73kB 100.0% 🚀
chunks/abap_LtYK6g-v.mjs (New) 16.59kB 16.59kB 100.0% 🚀
chunks/github-dark-high-contrast_RHN5kW48.mjs (New) 16.44kB 16.44kB 100.0% 🚀
chunks/gnuplot_DgWvVXI8.mjs (New) 16.3kB 16.3kB 100.0% 🚀
chunks/kusto_6FdaWTzR.mjs (New) 16.29kB 16.29kB 100.0% 🚀
chunks/github-dark-default_BrdnT3vv.mjs (New) 16.25kB 16.25kB 100.0% 🚀
chunks/github-dark-dimmed_Bn-P3bZJ.mjs (New) 16.25kB 16.25kB 100.0% 🚀
chunks/github-light-high-contrast_XMJJhVsV.mjs (New) 16.09kB 16.09kB 100.0% 🚀
chunks/coordinates-and-views_D7K9oyFM.mjs (New) 15.95kB 15.95kB 100.0% 🚀
chunks/github-light-default_PTSfV1MO.mjs (New) 15.94kB 15.94kB 100.0% 🚀
chunks/clarity_BkOxTQMf.mjs (New) 15.91kB 15.91kB 100.0% 🚀
chunks/pug_UKFyUFpE.mjs (New) 15.87kB 15.87kB 100.0% 🚀
chunks/synthwave-84_D4CZeGaH.mjs (New) 15.79kB 15.79kB 100.0% 🚀
chunks/smalltalk_D4IpSogw.mjs (New) 15.67kB 15.67kB 100.0% 🚀
chunks/vitesse-dark_Cjct7fHa.mjs (New) 15.47kB 15.47kB 100.0% 🚀
chunks/ApiSymbolPage_Bz4YsHbe.mjs (New) 15.45kB 15.45kB 100.0% 🚀
chunks/vitesse-black_BnxsPkql.mjs (New) 15.39kB 15.39kB 100.0% 🚀
chunks/vitesse-light_D54yeeu7.mjs (New) 15.32kB 15.32kB 100.0% 🚀
chunks/v_DBTjbKF9.mjs (New) 15.03kB 15.03kB 100.0% 🚀
chunks/aurora-x_Dwo4cmWi.mjs (New) 15.02kB 15.02kB 100.0% 🚀
chunks/BenchMethodologyPage_CLPo8WF1.mjs (New) 14.86kB 14.86kB 100.0% 🚀
chunks/parse_DwASa1l8.mjs (New) 14.67kB 14.67kB 100.0% 🚀
chunks/bat_Dx8nnxXE.mjs (New) 14.19kB 14.19kB 100.0% 🚀
chunks/chords-and-sequences_CXbMpQrW.mjs (New) 14.16kB 14.16kB 100.0% 🚀
_astro/BenchmarksPage.BYgjV7Un.css (New) 14.0kB 14.0kB 100.0% 🚀
chunks/fish_D7qAeWQz.mjs (New) 13.98kB 13.98kB 100.0% 🚀
chunks/handlebars_CenwkBn_.mjs (New) 13.96kB 13.96kB 100.0% 🚀
chunks/vesper_29-00ngB.mjs (New) 13.95kB 13.95kB 100.0% 🚀
chunks/nsis_C3tUpeAt.mjs (New) 13.79kB 13.79kB 100.0% 🚀
chunks/surrealql_H8LFCYct.mjs (New) 13.62kB 13.62kB 100.0% 🚀
chunks/hjson_Cuaphql8.mjs (New) 13.51kB 13.51kB 100.0% 🚀
_astro/space-grotesk-latin-400-normal.CJ-V5oYT.woff2 (New) 13.39kB 13.39kB 100.0% 🚀
chunks/apache_BIl2qPOf.mjs (New) 13.38kB 13.38kB 100.0% 🚀
_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2 (New) 13.31kB 13.31kB 100.0% 🚀
_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2 (New) 13.28kB 13.28kB 100.0% 🚀
chunks/wasm_gNIKwGlD.mjs (New) 13.23kB 13.23kB 100.0% 🚀
chunks/GuideChapterPage_1h4B3nk8.mjs (New) 13.16kB 13.16kB 100.0% 🚀
chunks/github-dark_DS-peopi.mjs (New) 12.89kB 12.89kB 100.0% 🚀
chunks/puppet_CQlPp728.mjs (New) 12.8kB 12.8kB 100.0% 🚀
chunks/terraform_v0KN9QQh.mjs (New) 12.78kB 12.78kB 100.0% 🚀
chunks/project-structure_rRLfwHXP.mjs (New) 12.74kB 12.74kB 100.0% 🚀
chunks/cinematics_Cw9QsvlM.mjs (New) 12.7kB 12.7kB 100.0% 🚀
chunks/github-light_COKynrhu.mjs (New) 12.66kB 12.66kB 100.0% 🚀
chunks/laserwave_DHoaXozT.mjs (New) 12.62kB 12.62kB 100.0% 🚀
chunks/elm_Bipiw8b9.mjs (New) 12.52kB 12.52kB 100.0% 🚀
chunks/just_Du2dk0Nd.mjs (New) 12.4kB 12.4kB 100.0% 🚀
_astro/space-grotesk-latin-ext-600-normal.DxxdqCpr.woff2 (New) 12.29kB 12.29kB 100.0% 🚀
_astro/space-grotesk-latin-ext-500-normal.DUe3BAxM.woff2 (New) 12.27kB 12.27kB 100.0% 🚀
_astro/space-grotesk-latin-ext-400-normal.CfP_5XZW.woff2 (New) 12.26kB 12.26kB 100.0% 🚀
chunks/gherkin_D6Lr12YQ.mjs (New) 12.25kB 12.25kB 100.0% 🚀
chunks/ApiAllPage_D7CW-bRh.mjs (New) 12.06kB 12.06kB 100.0% 🚀
chunks/rst_8pQc8J6s.mjs (New) 11.99kB 11.99kB 100.0% 🚀
chunks/prolog_Bacii3Ue.mjs (New) 11.89kB 11.89kB 100.0% 🚀
chunks/yaml_BXGYSTgF.mjs (New) 11.87kB 11.87kB 100.0% 🚀
chunks/nextflow-groovy_CdFFX-gF.mjs (New) 11.82kB 11.82kB 100.0% 🚀
chunks/beancount_CXtOQ8oS.mjs (New) 11.76kB 11.76kB 100.0% 🚀
chunks/dream-maker_CngiPd8U.mjs (New) 11.66kB 11.66kB 100.0% 🚀
chunks/pkl_C7lWzykI.mjs (New) 11.51kB 11.51kB 100.0% 🚀
chunks/hcl_DHg_Osgo.mjs (New) 11.39kB 11.39kB 100.0% 🚀
chunks/light-plus_BYP-8qw4.mjs (New) 11.16kB 11.16kB 100.0% 🚀
chunks/jison_otwuiBLr.mjs (New) 11.11kB 11.11kB 100.0% 🚀
chunks/raku_DI9yGpeW.mjs (New) 11.1kB 11.1kB 100.0% 🚀
_astro/DocsLayout.DPYRdTd8.css (New) 10.92kB 10.92kB 100.0% 🚀
chunks/pause-menu_CjOWJkI0.mjs (New) 10.73kB 10.73kB 100.0% 🚀
chunks/slack-ochin_BtOis9cv.mjs (New) 10.72kB 10.72kB 100.0% 🚀
chunks/tex_D-vgCAxY.mjs (New) 10.68kB 10.68kB 100.0% 🚀
chunks/sass_DI2zJwx7.mjs (New) 10.44kB 10.44kB 100.0% 🚀
chunks/plastic_DW9BRoPy.mjs (New) 10.41kB 10.41kB 100.0% 🚀
_astro/jetbrains-mono-latin-ext-500-normal.ckzbgY84.woff (New) 10.34kB 10.34kB 100.0% 🚀
chunks/slack-dark_DF6OVa8y.mjs (New) 10.31kB 10.31kB 100.0% 🚀
chunks/smithy_BRyN83Yn.mjs (New) 10.29kB 10.29kB 100.0% 🚀
chunks/dark-plus_BLkfv1Ms.mjs (New) 10.26kB 10.26kB 100.0% 🚀
chunks/game-feel_D9rEwDEQ.mjs (New) 10.15kB 10.15kB 100.0% 🚀
chunks/cmake_DPsCB_V6.mjs (New) 10.14kB 10.14kB 100.0% 🚀
_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff (New) 10.13kB 10.13kB 100.0% 🚀
chunks/audio-reactive-scene_BOeU4ZjZ.mjs (New) 10.11kB 10.11kB 100.0% 🚀
chunks/andromeeda_BsG9A-2G.mjs (New) 10.05kB 10.05kB 100.0% 🚀
chunks/make_B2ukzWs3.mjs (New) 10.03kB 10.03kB 100.0% 🚀
chunks/horizon-bright_CwPyL0ta.mjs (New) 9.96kB 9.96kB 100.0% 🚀
chunks/horizon_D2HPo9qV.mjs (New) 9.93kB 9.93kB 100.0% 🚀
chunks/kotlin_BHE8CoV9.mjs (New) 9.85kB 9.85kB 100.0% 🚀
chunks/sas_CDyGTQ8m.mjs (New) 9.74kB 9.74kB 100.0% 🚀
chunks/haml_Cuchl6uH.mjs (New) 9.71kB 9.71kB 100.0% 🚀
chunks/hud-overlay_D5fyK3hx.mjs (New) 9.69kB 9.69kB 100.0% 🚀
chunks/vue-html_CftEgX6P.mjs (New) 9.68kB 9.68kB 100.0% 🚀
chunks/dart_C6DUdjib.mjs (New) 9.67kB 9.67kB 100.0% 🚀
chunks/waypoint-graphs_BGpwxnYY.mjs (New) 9.57kB 9.57kB 100.0% 🚀
_astro/ApiSymbolPage.CWZBqkCH.css (New) 9.5kB 9.5kB 100.0% 🚀
chunks/monokai_Y04IwRdK.mjs (New) 9.17kB 9.17kB 100.0% 🚀
chunks/regexp_hIwxRxyb.mjs (New) 9.14kB 9.14kB 100.0% 🚀
chunks/ui-patterns_VnmkGRMK.mjs (New) 9.06kB 9.06kB 100.0% 🚀
chunks/plsql_DCNXypXO.mjs (New) 9.03kB 9.03kB 100.0% 🚀
chunks/camera-follow-and-parallax_Dlo4nIRe.mjs (New) 9.0kB 9.0kB 100.0% 🚀
chunks/prisma_4G_BaF_i.mjs (New) 8.73kB 8.73kB 100.0% 🚀
chunks/systemd_DFbUltlW.mjs (New) 8.58kB 8.58kB 100.0% 🚀
chunks/GuideIndexPage_Dpq9zg3Q.mjs (New) 8.4kB 8.4kB 100.0% 🚀
chunks/ApiIndexPage_D1J2OhqW.mjs (New) 8.32kB 8.32kB 100.0% 🚀
chunks/soy_CIWxkm6B.mjs (New) 8.12kB 8.12kB 100.0% 🚀
chunks/solarized-dark_W1kg3ZX0.mjs (New) 8.03kB 8.03kB 100.0% 🚀
chunks/qss_Iltvkn1C.mjs (New) 7.97kB 7.97kB 100.0% 🚀
chunks/split-screen_DYcLQpKU.mjs (New) 7.96kB 7.96kB 100.0% 🚀
chunks/r_xm7_PhsC.mjs (New) 7.96kB 7.96kB 100.0% 🚀
chunks/min-light_CnaFhYML.mjs (New) 7.88kB 7.88kB 100.0% 🚀
chunks/scheme_D3A2QBtM.mjs (New) 7.87kB 7.87kB 100.0% 🚀
_astro/GuideChapterPage.Cg0P5OpK.css (New) 7.79kB 7.79kB 100.0% 🚀
chunks/talonscript_CLxaFu-b.mjs (New) 7.73kB 7.73kB 100.0% 🚀
chunks/hlsl_BJLUNfne.mjs (New) 7.73kB 7.73kB 100.0% 🚀
chunks/solarized-light_DnHmPawE.mjs (New) 7.63kB 7.63kB 100.0% 🚀
_astro/jetbrains-mono-latin-ext-500-normal.Cut-4mMH.woff2 (New) 7.53kB 7.53kB 100.0% 🚀
chunks/riscv_CvzikGLb.mjs (New) 7.5kB 7.5kB 100.0% 🚀
chunks/proto_ClkOcAW0.mjs (New) 7.47kB 7.47kB 100.0% 🚀
chunks/chapel_C02jq-Ii.mjs (New) 7.47kB 7.47kB 100.0% 🚀
chunks/red_C4iRHu1e.mjs (New) 7.35kB 7.35kB 100.0% 🚀
_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2 (New) 7.34kB 7.34kB 100.0% 🚀
chunks/toml_B7BHZIqX.mjs (New) 7.22kB 7.22kB 100.0% 🚀
chunks/clojure_DDsQ0FaV.mjs (New) 7.2kB 7.2kB 100.0% 🚀
chunks/postcss_D1gKt4z_.mjs (New) 7.15kB 7.15kB 100.0% 🚀
chunks/min-dark_Ba1FsixN.mjs (New) 7.12kB 7.12kB 100.0% 🚀
chunks/ara_IxnQjO6j.mjs (New) 7.1kB 7.1kB 100.0% 🚀
chunks/gdshader_D7JfdFV3.mjs (New) 7.08kB 7.08kB 100.0% 🚀
chunks/what-is-exojs_B13HeszX.mjs (New) 7.03kB 7.03kB 100.0% 🚀
_astro/jetbrains-mono-cyrillic-500-normal.DJqRU3vO.woff (New) 7.02kB 7.02kB 100.0% 🚀
chunks/verilog_Ma7yBE30.mjs (New) 6.99kB 6.99kB 100.0% 🚀
_astro/jetbrains-mono-cyrillic-400-normal.ugxPyKxw.woff (New) 6.98kB 6.98kB 100.0% 🚀
_astro/GuideIndexPage.*.css (New) 6.71kB 6.71kB 100.0% 🚀
chunks/content-modules_Dk4ZzPyT.mjs (New) 6.66kB 6.66kB 100.0% 🚀
chunks/jinja_D9zUf7rH.mjs (New) 6.61kB 6.61kB 100.0% 🚀
chunks/cypher_D8Bb8Cq2.mjs (New) 6.58kB 6.58kB 100.0% 🚀
chunks/powerquery_SrvS_NBM.mjs (New) 6.58kB 6.58kB 100.0% 🚀
chunks/coq_BtFcIXby.mjs (New) 6.55kB 6.55kB 100.0% 🚀
chunks/vb_eGVhCUXq.mjs (New) 6.54kB 6.54kB 100.0% 🚀
chunks/shaderlab_BcRFTmmA.mjs (New) 6.5kB 6.5kB 100.0% 🚀
chunks/xml_DzftpGsQ.mjs (New) 6.41kB 6.41kB 100.0% 🚀
_astro/ApiIndexPage.Bl6TcwAA.css (New) 6.35kB 6.35kB 100.0% 🚀
chunks/lean_BwOKScIt.mjs (New) 6.28kB 6.28kB 100.0% 🚀
chunks/qml_CknB7WvB.mjs (New) 6.24kB 6.24kB 100.0% 🚀
chunks/awk_D6dA05Ye.mjs (New) 6.17kB 6.17kB 100.0% 🚀
chunks/gdresource_DdPbsqpY.mjs (New) 6.06kB 6.06kB 100.0% 🚀
chunks/bicep_CZ338dSk.mjs (New) 5.98kB 5.98kB 100.0% 🚀
chunks/zig_lTQvxhLD.mjs (New) 5.97kB 5.97kB 100.0% 🚀
chunks/wgsl_1s5rV5xS.mjs (New) 5.77kB 5.77kB 100.0% 🚀
chunks/dax_S-Noo-ku.mjs (New) 5.73kB 5.73kB 100.0% 🚀
_astro/space-grotesk-vietnamese-400-normal.BIWiOVfw.woff (New) 5.73kB 5.73kB 100.0% 🚀
_astro/jetbrains-mono-greek-500-normal.D7SFKleX.woff (New) 5.72kB 5.72kB 100.0% 🚀
_astro/space-grotesk-vietnamese-500-normal.BTqKIpxg.woff (New) 5.72kB 5.72kB 100.0% 🚀
_astro/space-grotesk-vietnamese-600-normal.D6zpsUhD.woff (New) 5.7kB 5.7kB 100.0% 🚀
_astro/jetbrains-mono-greek-400-normal.B9oWc5Lo.woff (New) 5.66kB 5.66kB 100.0% 🚀
chunks/SourceSnippet_m0u-GQTr.mjs (New) 5.66kB 5.66kB 100.0% 🚀
_astro/jetbrains-mono-vietnamese-500-normal.DNRqzVM1.woff (New) 5.48kB 5.48kB 100.0% 🚀
chunks/bibtex_BzgdqG3s.mjs (New) 5.41kB 5.41kB 100.0% 🚀
chunks/polar_4pN1JrJ8.mjs (New) 5.38kB 5.38kB 100.0% 🚀
_astro/jetbrains-mono-vietnamese-400-normal.CqNFfHCs.woff (New) 5.37kB 5.37kB 100.0% 🚀
chunks/sharp_BYeaEhKS.mjs (New) 5.37kB 5.37kB 100.0% 🚀
_astro/jetbrains-mono-cyrillic-500-normal.DmUKJPL_.woff2 (New) 5.36kB 5.36kB 100.0% 🚀
_astro/jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2 (New) 5.33kB 5.33kB 100.0% 🚀
chunks/llvm_ZNG_yAr9.mjs (New) 5.31kB 5.31kB 100.0% 🚀
chunks/nextflow_Dp8l2yvM.mjs (New) 5.28kB 5.28kB 100.0% 🚀
chunks/http_DUlij2nY.mjs (New) 5.25kB 5.25kB 100.0% 🚀
chunks/fennel_B3wtZRne.mjs (New) 5.21kB 5.21kB 100.0% 🚀
chunks/rosmsg_CyYq6XdT.mjs (New) 5.13kB 5.13kB 100.0% 🚀
_astro/ApiAllPage.B_HMfH1F.css (New) 5.11kB 5.11kB 100.0% 🚀
_astro/DocsSidebar.BtB_5qdL.css (New) 5.11kB 5.11kB 100.0% 🚀
chunks/tcl_DLe0Tsfm.mjs (New) 4.95kB 4.95kB 100.0% 🚀
chunks/sdbl_CdQg5gu1.mjs (New) 4.95kB 4.95kB 100.0% 🚀
chunks/ron_DzAo6FTJ.mjs (New) 4.51kB 4.51kB 100.0% 🚀
chunks/pascal_D8-gNZ2I.mjs (New) 4.49kB 4.49kB 100.0% 🚀
chunks/zenscript_BoijL7rl.mjs (New) 4.38kB 4.38kB 100.0% 🚀
_astro/space-grotesk-vietnamese-500-normal.BmEvtly_.woff2 (New) 4.32kB 4.32kB 100.0% 🚀
chunks/gn_DDjbVPF4.mjs (New) 4.31kB 4.31kB 100.0% 🚀
_astro/space-grotesk-vietnamese-600-normal.DUi7WF5p.woff2 (New) 4.31kB 4.31kB 100.0% 🚀
_astro/space-grotesk-vietnamese-400-normal.B7xT_GF5.woff2 (New) 4.3kB 4.3kB 100.0% 🚀
_astro/jetbrains-mono-greek-500-normal.JpySY46c.woff2 (New) 4.28kB 4.28kB 100.0% 🚀
_astro/jetbrains-mono-greek-400-normal.C190GLew.woff2 (New) 4.23kB 4.23kB 100.0% 🚀
chunks/hurl_CmOLSul9.mjs (New) 4.22kB 4.22kB 100.0% 🚀
chunks/turtle_BEG5g_eT.mjs (New) 4.2kB 4.2kB 100.0% 🚀
_astro/EditorCode.BiwcI9nO.css (New) 4.18kB 4.18kB 100.0% 🚀
chunks/narrat_D9rrR0H5.mjs (New) 4.12kB 4.12kB 100.0% 🚀
chunks/kdl_DkTyxPcj.mjs (New) 4.1kB 4.1kB 100.0% 🚀
chunks/glsl_BNaTluKX.mjs (New) 4.09kB 4.09kB 100.0% 🚀
chunks/fluent_BjfpB34g.mjs (New) 4.04kB 4.04kB 100.0% 🚀
chunks/jsonnet_BafgE6cE.mjs (New) 4.04kB 4.04kB 100.0% 🚀
chunks/ssh-config_DXFPABYp.mjs (New) 3.83kB 3.83kB 100.0% 🚀
chunks/tasl__AAbKiWM.mjs (New) 3.81kB 3.81kB 100.0% 🚀
chunks/rel_BT0iIKKw.mjs (New) 3.75kB 3.75kB 100.0% 🚀
chunks/rbs_D_4FkXDS.mjs (New) 3.75kB 3.75kB 100.0% 🚀
chunks/vala_BnnASFsX.mjs (New) 3.74kB 3.74kB 100.0% 🚀
chunks/genie_DnK2KWIP.mjs (New) 3.73kB 3.73kB 100.0% 🚀
chunks/json5_xULSgPQI.mjs (New) 3.71kB 3.71kB 100.0% 🚀
chunks/po_IjpR1yHO.mjs (New) 3.71kB 3.71kB 100.0% 🚀
chunks/splunk_xP_ZjUH2.mjs (New) 3.65kB 3.65kB 100.0% 🚀
chunks/api-reference_DNMo0mQi.mjs (New) 3.57kB 3.57kB 100.0% 🚀
chunks/mipsasm_EL46Y4Xg.mjs (New) 3.54kB 3.54kB 100.0% 🚀
chunks/jsonc_Cu6rqcrJ.mjs (New) 3.51kB 3.51kB 100.0% 🚀
chunks/cairo_7gDYl5gO.mjs (New) 3.49kB 3.49kB 100.0% 🚀
chunks/json_B8nXmmR-.mjs (New) 3.48kB 3.48kB 100.0% 🚀
chunks/jsonl_Bp0qqr10.mjs (New) 3.42kB 3.42kB 100.0% 🚀
chunks/berry_CgA2ea0_.mjs (New) 3.4kB 3.4kB 100.0% 🚀
chunks/logo_DTXV8SKw.mjs (New) 3.27kB 3.27kB 100.0% 🚀
chunks/openscad_jn-f1Ocl.mjs (New) 3.17kB 3.17kB 100.0% 🚀
chunks/ExamplePreview_CQm1p3oZ.mjs (New) 3.15kB 3.15kB 100.0% 🚀
chunks/log_Dad54gsi.mjs (New) 3.15kB 3.15kB 100.0% 🚀
chunks/DocsSidebar_CaXUyuSS.mjs (New) 3.0kB 3.0kB 100.0% 🚀
chunks/gleam_CTllUdfC.mjs (New) 2.93kB 2.93kB 100.0% 🚀
chunks/diff_Blb4MjsC.mjs (New) 2.89kB 2.89kB 100.0% 🚀
chunks/hy_CJKxDzbh.mjs (New) 2.86kB 2.86kB 100.0% 🚀
chunks/edge_CgYDa_hN.mjs (New) 2.85kB 2.85kB 100.0% 🚀
chunks/TryIt_ClK6VO3w.mjs (New) 2.81kB 2.81kB 100.0% 🚀
chunks/reg_DpJf71oO.mjs (New) 2.64kB 2.64kB 100.0% 🚀
chunks/erb_C8YKatMA.mjs (New) 2.61kB 2.61kB 100.0% 🚀
chunks/jssm_Dx5A5sBR.mjs (New) 2.54kB 2.54kB 100.0% 🚀
_astro/Callout.BOvfkbMv.css (New) 2.48kB 2.48kB 100.0% 🚀
chunks/wenyan_BeysbCrW.mjs (New) 2.43kB 2.43kB 100.0% 🚀
_astro/ExamplePreview.UpcfGuJY.css (New) 2.3kB 2.3kB 100.0% 🚀
chunks/remote_wKUJggQx.mjs (New) 2.24kB 2.24kB 100.0% 🚀
chunks/hxml_D7jA4-jQ.mjs (New) 2.2kB 2.2kB 100.0% 🚀
chunks/fortran-fixed-form_DKmTkb0c.mjs (New) 2.11kB 2.11kB 100.0% 🚀
chunks/desktop_BgOb7Aj4.mjs (New) 2.06kB 2.06kB 100.0% 🚀
_astro/backend-comparison.ZtNk-atA.css (New) 2.0kB 2.0kB 100.0% 🚀
chunks/docker_PC1tuYpa.mjs (New) 1.96kB 1.96kB 100.0% 🚀
chunks/GuidePartRedirect_CK9RMJc6.mjs (New) 1.94kB 1.94kB 100.0% 🚀
chunks/ini_C24lZfdM.mjs (New) 1.76kB 1.76kB 100.0% 🚀
chunks/sparql_DGgRGInO.mjs (New) 1.75kB 1.75kB 100.0% 🚀
chunks/index_DLIH60kq.mjs (New) 1.72kB 1.72kB 100.0% 🚀
chunks/xsl_Cw3rM8vE.mjs (New) 1.71kB 1.71kB 100.0% 🚀
chunks/dotenv_Dkdv7Sm2.mjs (New) 1.65kB 1.65kB 100.0% 🚀
chunks/index_B4Umsryf.mjs (New) 1.61kB 1.61kB 100.0% 🚀
chunks/index_C04O2ZkR.mjs (New) 1.61kB 1.61kB 100.0% 🚀
chunks/Callout_BbV8Eo56.mjs (New) 1.58kB 1.58kB 100.0% 🚀
chunks/git-commit_bqpc4DGi.mjs (New) 1.57kB 1.57kB 100.0% 🚀
_astro/TryIt.2vmWUXmI.css (New) 1.56kB 1.56kB 100.0% 🚀
chunks/rolldown-runtime_DC62tzP2.mjs (New) 1.45kB 1.45kB 100.0% 🚀
chunks/index_CAyHxIo-.mjs (New) 1.44kB 1.44kB 100.0% 🚀
chunks/index_CsIY30ir.mjs (New) 1.44kB 1.44kB 100.0% 🚀
chunks/index_Ba7vRA2h.mjs (New) 1.41kB 1.41kB 100.0% 🚀
chunks/index_BhD8Tgoh.mjs (New) 1.41kB 1.41kB 100.0% 🚀
chunks/_symbol__CC-8Edev.mjs (New) 1.41kB 1.41kB 100.0% 🚀
chunks/_symbol__nE3_w6N-.mjs (New) 1.41kB 1.41kB 100.0% 🚀
chunks/compiler_shZbJYNc.mjs (New) 1.34kB 1.34kB 100.0% 🚀
chunks/csv_DqIVFkK7.mjs (New) 1.32kB 1.32kB 100.0% 🚀
chunks/git-rebase_CRs01Nr6.mjs (New) 1.3kB 1.3kB 100.0% 🚀
chunks/index_C51ffy8T.mjs (New) 1.29kB 1.29kB 100.0% 🚀
chunks/index_D5Ub5UFL.mjs (New) 1.29kB 1.29kB 100.0% 🚀
_astro/NextStep.5jphCb2x.css (New) 1.28kB 1.28kB 100.0% 🚀
_astro/example-sources.R3udex29.css (New) 1.26kB 1.26kB 100.0% 🚀
chunks/qmldir_Dz8ttxjf.mjs (New) 1.17kB 1.17kB 100.0% 🚀
chunks/react-utils_DNZ_oAx1.mjs (New) 1.15kB 1.15kB 100.0% 🚀
chunks/html-derivative_UN2HpEjt.mjs (New) 1.13kB 1.13kB 100.0% 🚀
chunks/index_BInLWDGw.mjs (New) 1.08kB 1.08kB 100.0% 🚀
chunks/index_DT6ojFPR.mjs (New) 1.08kB 1.08kB 100.0% 🚀
chunks/NextStep_BkemuZCs.mjs (New) 1.06kB 1.06kB 100.0% 🚀
chunks/index_DMMcdxX1.mjs (New) 1.03kB 1.03kB 100.0% 🚀
chunks/index_DRFy6Rfe.mjs (New) 1.03kB 1.03kB 100.0% 🚀
chunks/shellsession_Bbrjk1tD.mjs (New) 995 bytes 995 bytes 100.0% 🚀
chunks/index_-dt3wYf8.mjs (New) 992 bytes 992 bytes 100.0% 🚀
chunks/index_BEeZIiD2.mjs (New) 992 bytes 992 bytes 100.0% 🚀
chunks/index_B5HqWMa9.mjs (New) 957 bytes 957 bytes 100.0% 🚀
chunks/index_rmr4AO6i.mjs (New) 957 bytes 957 bytes 100.0% 🚀
chunks/index_Dlz3BeYR.mjs (New) 935 bytes 935 bytes 100.0% 🚀
chunks/index_hxGn7ouN.mjs (New) 935 bytes 935 bytes 100.0% 🚀
chunks/all_0gBAVKFn.mjs (New) 919 bytes 919 bytes 100.0% 🚀
chunks/all_CcrtH1jN.mjs (New) 919 bytes 919 bytes 100.0% 🚀
chunks/index_BK1-Lg49.mjs (New) 897 bytes 897 bytes 100.0% 🚀
chunks/index_CclDY4vD.mjs (New) 897 bytes 897 bytes 100.0% 🚀
chunks/tsv_BorGVq2Z.mjs (New) 862 bytes 862 bytes 100.0% 🚀
chunks/script_DTUVuBA1.mjs (New) 826 bytes 826 bytes 100.0% 🚀
chunks/codeowners_CxEKPWu0.mjs (New) 666 bytes 666 bytes 100.0% 🚀
chunks/EnglishFallbackNotice_BBaG8NUO.mjs (New) 635 bytes 635 bytes 100.0% 🚀
chunks/vendor-monaco_iXb0Tvg0.mjs (New) 570 bytes 570 bytes 100.0% 🚀
_astro/SourceSnippet.DWw4KFVr.css (New) 529 bytes 529 bytes 100.0% 🚀
chunks/audio-reactive-visualization_DgyGzJhf.mjs (New) 381 bytes 381 bytes 100.0% 🚀
chunks/writing-your-own-transition_BsNrkgSZ.mjs (New) 381 bytes 381 bytes 100.0% 🚀
chunks/typed-worklets-and-workers_5_2Yj4kL.mjs (New) 380 bytes 380 bytes 100.0% 🚀
chunks/camera-follow-and-parallax_CwY2mM_z.mjs (New) 379 bytes 379 bytes 100.0% 🚀
chunks/debugging-and-inspection_DIGTZ7cf.mjs (New) 377 bytes 377 bytes 100.0% 🚀
chunks/resize-dpr-and-canvas_CTlnAZjF.mjs (New) 377 bytes 377 bytes 100.0% 🚀
chunks/serialization-and-prefabs_CQCKKfUh.mjs (New) 377 bytes 377 bytes 100.0% 🚀
chunks/authoring-extensions_UUrSGh6o.mjs (New) 369 bytes 369 bytes 100.0% 🚀
chunks/coordinates-and-views_DI04u3UI.mjs (New) 369 bytes 369 bytes 100.0% 🚀
chunks/project-structure_G9sLR3ev.mjs (New) 369 bytes 369 bytes 100.0% 🚀
chunks/loading-and-resources_TgqHdZMV.mjs (New) 368 bytes 368 bytes 100.0% 🚀
chunks/audio-reactive-scene_CKq4MKEW.mjs (New) 367 bytes 367 bytes 100.0% 🚀
chunks/retained-containers_BJl0SI5H.mjs (New) 367 bytes 367 bytes 100.0% 🚀
chunks/scenes-and-lifecycle_CtegHkiu.mjs (New) 367 bytes 367 bytes 100.0% 🚀
chunks/your-first-scene_BsVhnZxX.mjs (New) 367 bytes 367 bytes 100.0% 🚀
chunks/backend-comparison_BCcJ3Y_Z.mjs (New) 365 bytes 365 bytes 100.0% 🚀
chunks/chords-and-sequences_BlNrmGQY.mjs (New) 365 bytes 365 bytes 100.0% 🚀
chunks/custom-mesh-shaders_Cst76Atz.mjs (New) 365 bytes 365 bytes 100.0% 🚀
chunks/joints-and-dynamics_cpdVnvew.mjs (New) 365 bytes 365 bytes 100.0% 🚀
chunks/keyboard-and-actions_Dowt5UCT.mjs (New) 365 bytes 365 bytes 100.0% 🚀
chunks/worlds-and-spawning_BY3Pa-bh.mjs (New) 364 bytes 364 bytes 100.0% 🚀
chunks/gameplay-collision_CMxBkybf.mjs (New) 363 bytes 363 bytes 100.0% 🚀
chunks/grid-pathfinding_BIf27Vfg.mjs (New) 363 bytes 363 bytes 100.0% 🚀
chunks/custom-renderers_BpzUMMVx.mjs (New) 361 bytes 361 bytes 100.0% 🚀
chunks/waypoint-graphs_Nx_aRR96.mjs (New) 361 bytes 361 bytes 100.0% 🚀
chunks/what-is-exojs_B3xRHTnI.mjs (New) 361 bytes 361 bytes 100.0% 🚀
chunks/mouse-and-pointer_BDyatimq.mjs (New) 359 bytes 359 bytes 100.0% 🚀
chunks/troubleshooting_CR2oLOQk.mjs (New) 358 bytes 358 bytes 100.0% 🚀
chunks/build-orb-dodge_D3lu6Jot.mjs (New) 357 bytes 357 bytes 100.0% 🚀
chunks/immediate-mode_BTSfKwqh.mjs (New) 357 bytes 357 bytes 100.0% 🚀
chunks/pixel-snapping_C2p-p7vI.mjs (New) 357 bytes 357 bytes 100.0% 🚀
chunks/post-processing_DT0vR6_0.mjs (New) 357 bytes 357 bytes 100.0% 🚀
chunks/render-targets_CmsruxJY.mjs (New) 357 bytes 357 bytes 100.0% 🚀
chunks/device-variants_BR5O9vb-.mjs (New) 356 bytes 356 bytes 100.0% 🚀
chunks/infinite-maps_AMhxnAZS.mjs (New) 355 bytes 355 bytes 100.0% 🚀
chunks/physics-basics_t6RCyaQB.mjs (New) 355 bytes 355 bytes 100.0% 🚀
chunks/ui-and-widgets_z4M-6uLm.mjs (New) 355 bytes 355 bytes 100.0% 🚀
chunks/typed-shaders_n3zb_-gN.mjs (New) 354 bytes 354 bytes 100.0% 🚀
chunks/beat-detection_CaVwN70P.mjs (New) 353 bytes 353 bytes 100.0% 🚀
chunks/audio-effects_W_CNAVjs.mjs (New) 351 bytes 351 bytes 100.0% 🚀
chunks/performance_DufNUqCV.mjs (New) 351 bytes 351 bytes 100.0% 🚀
chunks/spatial-audio_C7oNGz94.mjs (New) 351 bytes 351 bytes 100.0% 🚀
chunks/split-screen_BJqvLUyY.mjs (New) 351 bytes 351 bytes 100.0% 🚀
chunks/application_BvnvXm76.mjs (New) 349 bytes 349 bytes 100.0% 🚀
chunks/audio-basics_6P8hyTyi.mjs (New) 349 bytes 349 bytes 100.0% 🚀
chunks/hud-overlay_DaooOBmW.mjs (New) 349 bytes 349 bytes 100.0% 🚀
chunks/scene-graph_DgjJ6ReL.mjs (New) 349 bytes 349 bytes 100.0% 🚀
chunks/ui-patterns_ds5idfGS.mjs (New) 349 bytes 349 bytes 100.0% 🚀
chunks/deployment_B6ZCLiw2.mjs (New) 348 bytes 348 bytes 100.0% 🚀
chunks/animation_CVSDblZ5.mjs (New) 347 bytes 347 bytes 100.0% 🚀
chunks/cinematics_DLvQqXUQ.mjs (New) 347 bytes 347 bytes 100.0% 🚀
chunks/pause-menu_D19u_rvs.mjs (New) 347 bytes 347 bytes 100.0% 🚀
chunks/tiled-maps_C0kJAbHM.mjs (New) 346 bytes 346 bytes 100.0% 🚀
chunks/game-feel_Bik_F2TZ.mjs (New) 345 bytes 345 bytes 100.0% 🚀
chunks/graphics_BNzT9WlQ.mjs (New) 345 bytes 345 bytes 100.0% 🚀
chunks/particles_B6oeXnS3.mjs (New) 345 bytes 345 bytes 100.0% 🚀
chunks/setup_DF3_h7hG.mjs (New) 345 bytes 345 bytes 100.0% 🚀
chunks/sprites_C5bSyzNv.mjs (New) 343 bytes 343 bytes 100.0% 🚀
chunks/aseprite_BqLsqMz8.mjs (New) 342 bytes 342 bytes 100.0% 🚀
chunks/react_9LoLX2uP.mjs (New) 342 bytes 342 bytes 100.0% 🚀
chunks/filters_J4InA3qX.mjs (New) 341 bytes 341 bytes 100.0% 🚀
chunks/offline_Cbu3QH1f.mjs (New) 340 bytes 340 bytes 100.0% 🚀
chunks/gamepad__ef48HXu.mjs (New) 339 bytes 339 bytes 100.0% 🚀
chunks/text_DavINqop.mjs (New) 337 bytes 337 bytes 100.0% 🚀
chunks/ldtk_CIO9YC_5.mjs (New) 334 bytes 334 bytes 100.0% 🚀
_astro/EnglishFallbackNotice.CBJEFTmj.css (New) 279 bytes 279 bytes 100.0% 🚀
chunks/_virtual_astro_server-island-manifest_C1Q2srgE.mjs (New) 217 bytes 217 bytes 100.0% 🚀
chunks/_virtual_astro_session-driver_C-PI1Pas.mjs (New) 165 bytes 165 bytes 100.0% 🚀
_astro/BenchMethodologyPage.Y335Zj9A.css (New) 162 bytes 162 bytes 100.0% 🚀
chunks/content-assets_DXqEyLLP.mjs (New) 151 bytes 151 bytes 100.0% 🚀
chunks/_noop-middleware_CQ50ikAJ.mjs (New) 100 bytes 100 bytes 100.0% 🚀
chunks/noop-entrypoint_Z3zFhrGC.mjs (New) 99 bytes 99 bytes 100.0% 🚀
_astro/vendor-monaco.ChSLeB7b.js (Deleted) -4.18MB 0 bytes -100.0% 🗑️
_astro/css.worker-BDCmgL4U.js (Deleted) -1.05MB 0 bytes -100.0% 🗑️
_astro/html.worker-DG8hnSJR.js (Deleted) -719.48kB 0 bytes -100.0% 🗑️
_astro/json.worker-CxwlJRnL.js (Deleted) -409.13kB 0 bytes -100.0% 🗑️
_astro/vendor-monaco.CTGdSUG0.css (Deleted) -321.61kB 0 bytes -100.0% 🗑️
_astro/vendor-react.D1OGm6St.js (Deleted) -206.03kB 0 bytes -100.0% 🗑️
_astro/codicon.ngg6Pgfi.ttf (Deleted) -121.97kB 0 bytes -100.0% 🗑️
_astro/ExampleBrowser.Ce3f7gcX.js (Deleted) -32.42kB 0 bytes -100.0% 🗑️
_astro/ExoHeader.unXZEd4_.js (Deleted) -29.19kB 0 bytes -100.0% 🗑️
_astro/EditorPreview.Cgm-D2Qt.js (Deleted) -21.49kB 0 bytes -100.0% 🗑️
_astro/EditorCode.OKXVoiH5.js (Deleted) -15.74kB 0 bytes -100.0% 🗑️
_astro/EditorCode.CVWGmhtx.css (Deleted) -3.38kB 0 bytes -100.0% 🗑️
_astro/BottomSheet.MRJFuI4E.js (Deleted) -2.67kB 0 bytes -100.0% 🗑️
_astro/BottomSheet.URrhJv5z.css (Deleted) -2.08kB 0 bytes -100.0% 🗑️
_astro/versions.aOfTA5D9.js (Deleted) -1.61kB 0 bytes -100.0% 🗑️
_astro/GuideExamplePreview.CXDwKzRh.js (Deleted) -1.55kB 0 bytes -100.0% 🗑️
_astro/rolldown-runtime.hePW80VL.js (Deleted) -716 bytes 0 bytes -100.0% 🗑️
_astro/react-utils.C-5Q78bo.js (Deleted) -260 bytes 0 bytes -100.0% 🗑️
_astro/client.CfxwAm7Y.js (Deleted) -68 bytes 0 bytes -100.0% 🗑️

App Routes Affected:

App Route Size Change Total Size Change (%)
/de/benchmarks/methodology (New) 1.08kB 1.08kB 100% 🚀
/de/guide (New) 957 bytes 957 bytes 100% 🚀
/ (New) 1.72kB 1.72kB 100% 🚀
/de/guide/[part]/[chapter] (New) 1.61kB 1.61kB 100% 🚀
/en/playground (New) 1.44kB 1.44kB 100% 🚀
/en/guide/[part]/[chapter] (New) 1.61kB 1.61kB 100% 🚀
/de (New) 897 bytes 897 bytes 100% 🚀
/en/api/[symbol] (New) 1.41kB 1.41kB 100% 🚀
/en (New) 897 bytes 897 bytes 100% 🚀
/en/api (New) 935 bytes 935 bytes 100% 🚀
/de/api/all (New) 919 bytes 919 bytes 100% 🚀
/en/benchmarks/full (New) 1.03kB 1.03kB 100% 🚀
/de/benchmarks (New) 992 bytes 992 bytes 100% 🚀
/en/api/all (New) 919 bytes 919 bytes 100% 🚀
/en/guide/[part] (New) 1.41kB 1.41kB 100% 🚀
/de/benchmarks/full (New) 1.03kB 1.03kB 100% 🚀
/en/guide (New) 957 bytes 957 bytes 100% 🚀
/de/playground (New) 1.44kB 1.44kB 100% 🚀
/de/api (New) 935 bytes 935 bytes 100% 🚀
/en/benchmarks/methodology (New) 1.08kB 1.08kB 100% 🚀
/en/benchmarks (New) 992 bytes 992 bytes 100% 🚀
/de/benchmarks/physics (New) 1.29kB 1.29kB 100% 🚀
/de/api/[symbol] (New) 1.41kB 1.41kB 100% 🚀
/en/benchmarks/physics (New) 1.29kB 1.29kB 100% 🚀
/de/guide/[part] (New) 1.41kB 1.41kB 100% 🚀
view changes for bundle: exo-iife-min-Exo-iife

Assets Changed:

Asset Name Size Change Total Size Change (%)
exo.iife.min.js 45 bytes 1.24MB 0.0%
view changes for bundle: exo-full-iife-Exo-iife

Assets Changed:

Asset Name Size Change Total Size Change (%)
exo.full.iife.js 6.12kB 5.39MB 0.11%
view changes for bundle: exo-iife-Exo-iife

Assets Changed:

Asset Name Size Change Total Size Change (%)
exo.iife.js 108 bytes 3.46MB 0.0%
view changes for bundle: exo-full-iife-min-Exo-iife

Assets Changed:

Asset Name Size Change Total Size Change (%)
exo.full.iife.min.js 2.01kB 1.96MB 0.1%

@Exoridus Exoridus left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visual review: release-approved from my side. The benchmark overview now reads cleanly on desktop and mobile in both themes; editorial card pairing, fastest-first comparable rows, wide mobile bars, aligned amber frame-budget values, and the Overview / All measurements / Methodology hierarchy are coherent. I found no visual release blocker in the final screenshot set.

The PR CI run is green, including the unit lane (pnpm test + allocation + physics perf), so the one unexplained local 1/13 Physics-suite failure did not reproduce in the authoritative PR run.

GitHub does not allow the PR author to formally approve their own PR, so this is recorded as a review comment rather than an APPROVE review.

@Exoridus
Exoridus merged commit 36b76a6 into next Sep 12, 2026
22 checks passed
@Exoridus
Exoridus deleted the bench/reference-arms-and-push-scope branch September 12, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant