◆Game

Star Swarm / Evidence

Star Swarm — Evidence

Technical evidence is published in English.

Game · RELEASED · verified 2026-10-03

Star Swarm is a vertical arcade shoot 'em up by Marco Barreto / FR 51 Labs, shipped for Windows x64 as version 1.0.0 (codename SECTOR NINE) and live on itch.io. Every figure on this page was read out of a file on disk or re-measured on 2026-10-03; nothing is estimated, and the sections that end without a number say so.

Every figure below was read out of a file on disk, or re-measured on 2026-10-03 (pytest run, file re-hashing, image re-encoding) on the machine that produced the release. Nothing is estimated; the sections that end without a number say so, and the missing list at the end records what was searched for and not found.

play video

◆sections

Release identity and cut

The shipped version is 1.0.0, codename SECTOR NINE — the same string the game module exposes, the launcher shows and the build report records, so they cannot drift apart. There is no release tag named v2026.10.02: the repository has exactly one tag, snapshot-revisao-2026-10-02-a05886d, which points at commit a05886d (2026-10-02 12:55:42 -0400) and was a review snapshot, not a release cut. The cut that actually shipped is the build of commit 20d6e0c, produced on 2026-10-03.

Version
1.0.0
Codename
SECTOR NINE
Shipped commit
20d6e0c52170e37c061b325c1b99836b3cdfce8f
Build date (UTC)
2026-10-03T04:11:10Z
Format
Windows x64 onedir, Python 3.12.10
Git tag v2026.10.02
does not exist (only snapshot-revisao-2026-10-02-a05886d)
  • D:\star_swarm\star_swarm\versao.py:7-8 — VERSAO = "1.0.0", CODINOME = "SECTOR NINE"
  • D:\star_swarm\build\recibo_build.json → build.git_commit, build.gerado_utc, build.python, build.formato
  • D:\star_swarm\build\relatorio_build.json → git_commit, gerado_utc
  • git tag -l in D:\star_swarm → snapshot-revisao-2026-10-02-a05886d; git log -1 on that tag → a05886d, 2026-10-02 12:55:42 -0400
  • (local source: f51-labs-site → no match)

Automated tests

The suite has 353 tests across 23 files in tests/. They were collected and run from the repository root on 2026-10-03 at HEAD 55f8760: 353 passed, 0 failed, in 38.68 s. An earlier run the same day reported 352 passed and 1 failed (248.13 s) on tests/test_treino.py::test_uma_sessao_de_treino_nao_escreve_um_byte_no_save, the test that drives the real game for 1200 frames and asserts the frame-budget line is printed. That failure did not reproduce: the test passed in the full suite on re-run, and an independent isolated run of it by the audit also passed (1 passed in 21.97 s). The same suite that took 248.13 s while the test failed takes 26-39 s when it passes, on the same machine and the same commit, which reads as a load-dependent frame-budget assertion rather than a code regression. It is recorded here because it happened: the suite is green at HEAD as of the 2026-10-03 re-run, and no claim is made that the test cannot fail again under load. Note that the delivery receipt itself carries no test count: the number 353 comes from pytest, not from the receipt.

Tests collected
353
Test files
23
Last full run
2026-10-03 — 353 passed, 0 failed, 38.68 s
Load-sensitive test
tests/test_treino.py::test_uma_sessao_de_treino_nao_escreve_um_byte_no_save — failed once under load, passed on re-run
Test count in the receipt
not present — the receipt has no test field
Largest test files
test_navegacao.py (60), test_treino.py (39), test_combate.py (38), test_provar_build.py (33)
  • python -m pytest tests --collect-only -q, run in D:\star_swarm on 2026-10-03 → "353 tests collected in 0.46s"
  • python -m pytest tests -q --basetemp build\tmp\pytest-mission, run 2026-10-03 at HEAD 55f87608cdf507d22ee45ccf5651a4c95afbf3d1 → "353 passed in 38.68s"
  • Independent re-run by the audit in D:\star_swarm on 2026-10-03 → "353 passed in 26.59 s" (recorded in content/evidence/_auditoria-numeros.md, item B2)
  • The earlier 2026-10-03 run that had failed → "1 failed, 352 passed in 248.13s"; the named test passed in the full suite and in isolation when re-run the same day
  • D:\star_swarm\tests\test_treino.py:524 — QUADROS = 1200; :540 test definition; :592-596 the assertions that failed
  • D:\star_swarm\build_windows.py:74-81 — the build runs pytest first, so a red suite blocks the build

Delivery receipt (machine-generated)

scripts/provar_build.py runs the packaged executable with an isolated LOCALAPPDATA, reads back the lines the game prints, re-reads the save it wrote and checks that the player's real saves were not touched, then writes build/recibo_build.json. The receipt for commit 20d6e0c is PASS with zero failures: eight checks passed and one was skipped. The skipped one is the store demo package, which was built from an older commit and so was not compared. The executable is not byte-reproducible, so the receipt proves the source/executable pair of that run, not a bit-for-bit rebuild.

Overall result
PASS (0 failures)
Checks passed
8
Checks skipped
1 (store demo package, built from an older commit)
Receipt generated (UTC)
2026-10-03T04:17:19Z
Working tree at build
clean (git_sujo false)
Executable SHA-256
b3ecbeeae0477505bcd3f2ac57f01f16b3af1e406754184a4fbeb10359bfe45d
Non-reproducible
yes — the receipt proves this run's source/executable pair, not a bit-for-bit rebuild
  • D:\star_swarm\build\recibo_build.json → resultado_geral "PASS", falhas [], itens.* (fontes, executavel, save_antes, identidade, execucao_600, sem_save, save_gravado, save_intocado, pacote_demo)
  • D:\star_swarm\docs\RECIBO_BUILD.md — the same run in prose, with a limits section
  • D:\star_swarm\scripts\provar_build.py — the harness that produces it

Installer (NSIS)

The Windows installer was hashed a second time on disk on 2026-10-03 and matches both its .sha256 file and release-windows/RELEASE-INFO.json. One stale figure was found and is flagged here: docs/ITCH_PAGE.md still prints an older SHA-256 (4de35c08…) for the same filename. The file on disk, its .sha256 sidecar and RELEASE-INFO.json all agree on 382673ef…, and that is the value published here.

File
release-windows/Star-Swarm-Setup-1.0.0.exe
Size
278,188,462 bytes (265.3 MiB)
SHA-256
382673ef107d9f61b9d637d841b3d23cebdc21fc4ecfb5b2cc833ae788e23e0d
Verified
re-hashed on disk 2026-10-03; matches RELEASE-INFO.json and the .sha256 sidecar
Conflicting value
docs/ITCH_PAGE.md prints 4de35c08… — stale, not used here
  • Get-FileHash D:\star_swarm\release-windows\Star-Swarm-Setup-1.0.0.exe -Algorithm SHA256 on 2026-10-03 → 382673EF107D9F61B9D637D841B3D23CEBDC21FC4ECFB5B2CC833AE788E23E0D
  • D:\star_swarm\release-windows\Star-Swarm-Setup-1.0.0.exe.sha256 → same value
  • D:\star_swarm\release-windows\RELEASE-INFO.json → instalador.bytes 278188462, instalador.sha256
  • D:\star_swarm\docs\ITCH_PAGE.md:39 — prints 4de35c08a27fdf647413c47c56d9c7af4535f507d71604c55a1900f0929f3ab7 (stale)
  • D:\star_swarm\release-store\REGISTO-ITCH.html — already carries the correct 382673ef… value

Portable ZIP

A portable build ships alongside the installer, containing the launcher, the opening cinematic and the full game. It was re-hashed on disk on 2026-10-03 and matches its .sha256 file and release/RELEASE-INFO.json.

File
release/Star-Swarm-Windows-x64-v1.0.0-Portable.zip
Size
375,751,888 bytes (358.3 MiB)
SHA-256
c2682705dd4af1a6e6ffc80830cac0176feea0166d0a32be0061ebd648fd1649
Files in package
297
Verified
re-hashed on disk 2026-10-03
  • Get-FileHash D:\star_swarm\release\Star-Swarm-Windows-x64-v1.0.0-Portable.zip -Algorithm SHA256 on 2026-10-03 → C2682705DD4AF1A6E6FFC80830CAC0176FEEA0166D0A32BE0061EBD648FD1649
  • D:\star_swarm\release\Star-Swarm-Windows-x64-v1.0.0-Portable.zip.sha256 → same value
  • D:\star_swarm\release\RELEASE-INFO.json → bytes 375751888, sha256, arquivos_no_pacote 297

Measured frame rate

The receipt's main measurement run plays 600 frames of the packaged game with no save file and counts sprites that fell back to the magenta placeholder. It measured 59.7 fps over 10.05 s of game clock, with zero magenta sprites and all 28 art assets resolved; the wall-clock cost of the whole process was 11.5 s including raylib start-up. The margin over the 59.0 fps floor is 0.7 fps with vsync on, measured on a machine in normal use, so a busier machine can pull the number down.

Frames
600
Measured
59.7 fps over 10.05 s of game clock
Floor required
59.0 fps
Magenta fallback sprites
0
Art resolved
28 of 28
Seed
requested 4242, used 4242
Process wall clock
11.5 s
  • D:\star_swarm\build\recibo_build.json → itens.execucao_600: quadros 600, relogio_s 10.05, fps_medido 59.7, fallback_magenta 0, arte_ok 28, arte_total 28, seed_inicial 4242, seed_usado 4242, segundos_de_relogio 11.5
  • D:\star_swarm\docs\RECIBO_BUILD.md — limits section: 59.0 fps floor, 0.7 fps margin, measured on a machine in normal use

Code signing

The installer is not code-signed, and the project says so on the store page instead of leaving buyers to discover it: Windows will show its SmartScreen warning and the download page documents the expected click-through. No signing tool invocation exists anywhere in the repository, and no certificate or signing receipt was found.

Installer signed
no
Declared on the store page
yes — honest-notes section of the itch page package
Signing certificate found
none
Signing receipt found
none
  • D:\star_swarm\docs\ITCH_PAGE.md:16 — "Assinatura do exe | não assinado → o Windows mostra aviso; declarado na página (secção 7)"
  • D:\star_swarm\docs\ITCH_PAGE.md:150 — "O instalador não está assinado digitalmente."
  • D:\star_swarm\release-store\LEIA-ME.txt:30 — the same statement in the shipped read-me
  • Search for signtool / SignTool / signed across the repository → no signing invocation

Licence registry

The shipped distribution carries its third-party licence texts next to the executable, and three provenance manifests (art, audio, video) travel with the build. The base sprites are CC0 from Kenney packs and are traced file-by-file to their catalogue path. The art in assets/arte/ is not from a catalogue: it was generated on this machine with SDXL Base 1.0 plus ControlNet Canny and is registered file-by-file with method, seed, denoise, ControlNet strength and prompt. The soundtrack and effects are the author's own synthesis in pure Python, with one authorial track and two fallback tracks generated by the author in Gemini. The opening video was generated in Gemini under the creator's direction and finished locally; its voice is Qwen3-TTS (Apache-2.0), no human voice was cloned, and the licensed Mixkit effects are listed by ID. The engine link is the one non-CC0, non-MIT item: raylib-python-cffi is vendored under EPL-2.0, which permits commercial use but is not public domain. One gap is recorded rather than papered over: the project's own licence is undecided — the LICENSE file is a third-party attribution file, and the MIT-with-attribution text it cites for motor/mechanics and motor/engines lives in a folder that no longer exists.

Base sprites
CC0 — Kenney 2D packs (space-shooter-remastered, space-shooter-extension, top-down-tanks-remastered), traced in estoque/MANIFEST.json
Art in assets/arte/
generated on this machine — SDXL Base 1.0 + ControlNet Canny, per-file record in MANIFEST-ARTE.json
Music and effects
original synthesis in pure Python (wave + struct + math), per-track recipe in MANIFEST-AUDIO.json
Authorial track
Titan's Last Maneuver — composition and production by the creator
AI-assisted tracks
neon_80s.wav and neon_80s_boss.wav, generated by the author in Gemini, declared
Opening voice
Qwen3-TTS-12Hz-1.7B-CustomVoice (Apache-2.0), no human voice cloning
Opening effects
Mixkit Sound Effects, 13 IDs listed in MANIFEST-VIDEO.json, under the Mixkit Free License
Engine
raylib-python-cffi (pyray + raylib) — EPL-2.0, text shipped as licenses/raylib-python-cffi-EPL-2.0.txt
Shipped licence texts
9 files in licenses/ (Python 3.12, PyInstaller, setuptools, CFFI, pycparser, raylib EPL-2.0, Qwen3-TTS, Mixkit, Gemini terms)
Project's own licence
undecided — LICENSE states no project licence has been chosen
MIT attribution text
cited for motor/mechanics and motor/engines but the referenced file no longer exists
  • D:\star_swarm\LICENSE:52-67 — section 2, star_swarm sprites are CC0 (Kenney), linked by md5, "nenhum destes ficheiros é gerado por modelo"
  • D:\star_swarm\LICENSE:90-107 — section 4, engine table: raylib-python-cffi is EPL-2.0; motor/mechanics and motor/engines are MIT with Attribution
  • D:\star_swarm\LICENSE:4-9 — "ESTE FICHEIRO NÃO É A LICENÇA DO PROJETO … não há licença de projeto escolhida até à data"
  • D:\star_swarm\estoque\MANIFEST.json — 16 entries, each mapping role → file → cc0/kenney-2d/… path → pixel size
  • D:\star_swarm\MANIFEST-ARTE.json → modelo (sd_xl_base_1.0 + controlnet-canny-sdxl), conjunto.arquivos with seed, denoise, ControlNet strength
  • D:\star_swarm\MANIFEST-AUDIO.json → gerado_por, metodo "síntese própria em Python puro (wave + struct + math)", faixas_autorais
  • D:\star_swarm\MANIFEST-VIDEO.json → modelo_voz, efeitos_mixkit_ids (13 ids), licenca_mixkit
  • D:\star_swarm\assets\video\README.md — Qwen3-TTS Apache-2.0, no human voice cloned, Mixkit Free License
  • D:\star_swarm\CREDITOS.md — the public short version of the same registry
  • D:\star_swarm\dist\Star Swarm\licenses\ — 9 shipped licence texts

What this evidence does not cover

A proof page is only useful if it says where it stops. No clean-machine install test was performed: the machine has no Windows Sandbox or Hyper-V without elevation, so what was proven is install, launch of both game and launcher, and uninstall with saves intact — on this machine. The store demo package was not re-verified against the shipped commit. The 1080p store captures were committed to the repository but carry no capture manifest, unlike the 960x540 set which records its seed, frame numbers and a SHA-256 per file. And the CC0 origin paths point into a sprite catalogue whose source folder was deleted, so that link cannot be re-walked from this repository — the bytes survive, the origin trail does not.

Clean-machine test
not done — no Windows Sandbox or Hyper-V without elevation
Store demo package
SKIP in the receipt — built from an older commit
1080p captures
no capture manifest; the 960x540 set has one (seed 11, per-file SHA-256)
CC0 origin paths
point into a catalogue whose source folder no longer exists
Automated suite
green at HEAD on re-run — 353 passed, 0 failed on 2026-10-03
  • D:\star_swarm\docs\ITCH_PAGE.md:17 — "Teste em máquina limpa | não feito — não há Windows Sandbox nem Hyper-V nesta máquina sem elevação"
  • D:\star_swarm\build\recibo_build.json → itens.pacote_demo.resultado "SKIP"
  • D:\star_swarm\build\capturas\manifest.json — seed 11, per-file sha256 for the 960x540 set; no equivalent manifest exists for the 1080p set
  • D:\star_swarm\docs\PROCEDENCIA.md — section 5, what is no longer re-verifiable
◆figures
Star Swarm — cover
Key art from the delivery set, 1600×900.
Combat act 1
In-game capture, combat act 1, from the delivery set.
Act 3
In-game capture, act 3, from the delivery set.
Final confrontation
In-game capture of the final confrontation, from the delivery set.
Combat act 1
In-game capture, combat act 1 - second frame, from the delivery set.
Final confrontation
In-game capture of the final confrontation - second frame, from the delivery set.
Act 3
In-game capture, act 3, downscaled from the 1920×1080 capture named ato3.png.
◆documents
Delivery receipt, machine-readable (build/recibo_build.json)

D:\star_swarm\build\recibo_build.json

The proof itself: source hashes, executable hash, the 600-frame run, the save checks and the overall PASS for commit 20d6e0c. Generated by the script, not written by hand.

Delivery receipt, readable (docs/RECIBO_BUILD.md)

D:\star_swarm\docs\RECIBO_BUILD.md

The same run in prose, including its own limits section — the fps margin, the skipped demo package and the fact that the executable is not byte-reproducible.

Portable release info (release/RELEASE-INFO.json)

D:\star_swarm\release\RELEASE-INFO.json

Size, SHA-256, file count and commit for the portable ZIP.

Installer release info (release-windows/RELEASE-INFO.json)

D:\star_swarm\release-windows\RELEASE-INFO.json

Size and SHA-256 of the installer, plus the hash of the executable it embeds and the opening cinematic.

Build report (build/relatorio_build.json)

D:\star_swarm\build\relatorio_build.json

What the build produced: commit, clean-tree flag, Python version, 213 distribution files, 234,486,306 bytes and the four source hashes.

Provenance reconstruction (docs/PROCEDENCIA.md)

D:\star_swarm\docs\PROCEDENCIA.md

How the game was made, with a source cited for every claim and the untraceable parts marked. States plainly that the manual-versus-generated ratio is not reconstructible.

Credits and provenance (CREDITOS.md)

D:\star_swarm\CREDITOS.md

Authorship, the CC0 sprite base, the local SDXL pass, the audio pipeline and the AI-generated components — the short public version of the licence registry.

Third-party licence file (LICENSE)

D:\star_swarm\LICENSE

Materialises the third-party licences carried by the repository and states that the project's own licence is still undecided.

Commercial product decisions (docs/PRODUTO_COMERCIAL.md)

D:\star_swarm\docs\PRODUTO_COMERCIAL.md

What is promised and what was deliberately dropped — including the honest note that the per-act duration targets were not met and the game is sold as a short arcade.

Distribution AI declaration (docs/IA_DISTRIBUICAO.md)

D:\star_swarm\docs\IA_DISTRIBUICAO.md

The store questionnaire answers: pre-generated AI content yes, live generation no, no game link to AI services, no player data sent.

Store kit (docs/STEAM_STORE_KIT.md)

D:\star_swarm\docs\STEAM_STORE_KIT.md

Store texts, tags, price band and system requirements.

Sprite provenance table (estoque/MANIFEST.json)

D:\star_swarm\estoque\MANIFEST.json

Sprite by sprite: role in the game, file, CC0 catalogue path and pixel dimensions. The evidence for the CC0 claim.

Art provenance manifest (MANIFEST-ARTE.json)

D:\star_swarm\MANIFEST-ARTE.json

Per generated file: method, model, seed, denoise, ControlNet strength, dimensions and hashes.

Audio provenance manifest (MANIFEST-AUDIO.json)

D:\star_swarm\MANIFEST-AUDIO.json

Per track: synthesis recipe, peak, RMS, duration and hashes, plus the authorial track.

Video provenance manifest (MANIFEST-VIDEO.json)

D:\star_swarm\MANIFEST-VIDEO.json

The opening cinematic's specification, hashes, voice model and the 13 licensed Mixkit effect IDs.

◆missing

What we could not verify

Back to the game page