# Loading screen branding The stock Godot boot splash (logo plus "GODOT Game engine") is replaced by the "Mat Games" mascot on a black background. This applies to both surfaces: - the browser loading screen: the exported `index.png` referenced by `` in the HTML shell, drawn over `#status`; - native startup: `application/boot_splash/image` in `project.godot`. ## Asset `assets/branding/boot_splash.png`, 1024x1315, palette PNG with alpha (256 colors, 95 alpha levels), about 171 KB. Subject: cartoon zombie head and bust, bald scalp with a sparse hair fringe on the sides, thick nerd glasses, unsettling grin, thumbs up, with "MatGames" (one word, no space) in a phosphor-terminal typeface and the subtitle `"...because he was bored..."` beneath it. Provenance is recorded in `tools/branding/manifest.json`: - mascot: generated with `agy_generate` (Antigravity direct API, model `gemini-3.1-flash-image`) on 2026-10-11 from no third-party source material; the provider terms do not claim ownership of the output. A second AI pass (`agy_edit`) kept the face, grin, thumbs-up hand, shirt, pose and flat background and changed only the hair to a bald scalp with a side fringe, then a third pass added thick nerd glasses while keeping the face, grin, hand, shirt, pose and flat background. All files and their SHA256 are kept in `tools/branding/raw/` and the chain is recorded under `mascot_provenance`. Note that an image generator does not emit real alpha, so the flat magenta background is keyed out locally; - lettering: drawn by script, not by the generator, because generated text is unreliable. Font `tools/branding/fonts/VT323-Regular.ttf`, glyphs of the DEC VT320 terminal, licensed **SIL Open Font License 1.1** (license text kept next to it in `OFL.txt`, downloaded from the `google/fonts` repository). OFL permits embedding and redistribution, including commercially, as long as the font is not sold on its own. SHA256 `cf4de751ada78ceac033dbe16a687742939995b77bc2a052ae17a4957958594d`. Only the final PNG lives under `assets/`, so the raw source and the font are not packed into the export (`tools/*` is already excluded by the export preset). ## Composition and keying `tools/make_boot_splash.py`: 1. measures the background color from the four corners (here 250,4,247); 2. builds an anti-aliased mask by distance from that color (transparent below 55, opaque above 130) and runs a small median filter; 3. removes magenta spill by subtracting `min(r, b) - g`, which does not harm the pink tongue or the blue shirt because their red and blue are not both above green; 4. crops to the subject, applies a 50 px fade at the bottom to soften the frame cut of the generated bust, and scales to 1024 px wide with 40 px side padding; 5. draws the title with VT323 in amber over a blurred glow layer, plus an optional second line. Defaults are the one-word `MatGames` and the subtitle `"...because he was bored..."`; `--title`, `--subtitle` (empty to omit) and `--subtitle-height` change them. A 30 px `--bottom-padding` band is left under the text so the shell progress bar does not cross the lettering; 6. quantizes to 256 colors (no dither) and writes the PNG plus the manifest. ```sh python3 tools/make_boot_splash.py tools/branding/raw/agy_generate_20261010234423_0.jpg ``` `--colors 0` keeps 32-bit RGBA if a future artwork needs smoother gradients. ## Godot settings ```ini boot_splash/bg_color=Color(0, 0, 0, 1) boot_splash/image="res://assets/branding/boot_splash.png" boot_splash/show_image=true boot_splash/use_filter=true ``` The default stretch behavior is kept, so the image is scaled preserving its aspect ratio; the exported shell confirms the result with the classes `show-image--true fullsize--true use-filter--true` and `#status` background `#000000`. ## Verification - Exported `index.png` has the same 1024x1315 dimensions as the master. It is re-encoded by the exporter to 32-bit RGBA (about 528 KB), so the bytes are not identical; composited on black the two images differ by at most 5.8/255 on 0.11% of pixels, all with alpha below 20, i.e. invisible. The release keeps the 171 KB master in the repository and ships a gzip sidecar. - The exported shell contains no "Game engine" text and the splash image has an empty `alt`. - `html/export_icon=false`, so no favicon is exported: the browser tab still shows a default icon. Using the mascot as favicon is a possible follow-up. - On a phone in landscape the splash is scaled to fit the height, so the mascot appears fairly small; a landscape variant (mascot beside the title) would fill more of the screen if that is wanted. - All eleven test suites still pass; this change touches no gameplay code.