Back to Interactive Vision

AI Football, Interactive Engineering Blueprint

A football match nobody scripts, with a record anyone can check.

AI Football is an idea conceived by its two promoters: 22 autonomous virtual players in one shared 11 v 11 simulation, a sealed and verifiable match record, and, later, professional 3D production. This blueprint is the technical feasibility assessment prepared for them: what exists, what must be built, what is still unproven, and how every step would be checked.

Technical feasibility assessment v1.3 basis research and design only: no development authorised; nothing has been executed

Current stage
0 · research and design
Executed so far
Nothing: no engine, no code
Decisive risks
Believable football · faithful bodies
Before large 3D work
3 engineering gates

Two reading levels

Executive explanation keeps each chapter short and visual. Engineering deep dive opens every technical block. Each chapter also has its own expandable deep dive.

Evidence labels

  • Verified from sources Read in an identifiable public source, without executing anything.
  • Engineering hypothesis An engineering judgement that still needs evidence.
  • Planning assumption A planning assumption, to be measured.
  • Pending experiment Can only be settled by a future, pre-designed experiment.

Method. No data in this blueprint comes from an execution: nothing has been run. Source code and documentation were read through a tool that summarises pages; details must be confirmed on the original text before an irreversible decision rests on them.

01 Foundations

Overview

The goal is a system that produces 11 v 11 football matches played by 22 autonomous agents, with no human control and no predetermined result, a verifiable record of what happened and, later, professional-quality audiovisual presentation.

The system is split into three parts that only talk through two project-owned data contracts: the Brain (the players), the simulation engine (the match) and the visual engine (the pictures). Parts of the idea can be built with technology that exists today. Two parts have not been publicly demonstrated, as far as the research found, and they are the real risk.

Feasibility verdict, part by part
PartStatus
11 v 11 simulation with rules and a recordOpen technology declares it does this Verified from sources; none executed by us Pending experiment
Autonomous agents playing complete matchesDemonstrated for decades in RoboCup 2D with rule-based agents Verified from sources
Football that a fan finds believableNot demonstrated by anyone in a measured way Pending experiment First decisive risk
A short, autonomous 2D matchAchievable with existing technology Engineering hypothesis First visible product
Animated human bodies faithful to the simulationNot publicly demonstrated for 22 players Pending experiment Second decisive risk
Real broadcast qualityFinal aspiration; insufficient demonstration today

The strategy in one paragraph

Build in stages that each end in something demonstrable and measurable. Stages 1–3 need no 3D graphics and no equipment purchases; they give the first evidence, at a five-minute scale, on the first decisive question. Believability over a whole match is then checked in simulation only (stage 4b). Visual production starts at stage 4a and is gated by three engineering decision points: A after the 2D match, B after the animation study and simulation consolidation, C after a small visual test.

What this page is not

It is not an authorisation. No stage is authorised, and describing a stage does not authorise it. Accepting this blueprint authorises no execution or commitment. Photorealistic broadcast quality is the long-term aspiration and is not promised.

Engineering deep dive The new finding of this stage, and what starting would require

New finding: the footballworld engine line

The MESSI engine line that was proposed for execution was read at a pinned commit. It fits the project better than the line analysed in G0: the player has body orientation and gaze as states of its own, a composite collision shape, and actions are intents (move, control, pass, shoot, clear, challenge) with continuous parameters Verified from sources. That matches the agent interface this blueprint proposes.

It still has serious gaps: fouls, cards and the winner of each duel are drawn by chance; in the foul file read, advantage is never applied and handball is never emitted; there is no jump; and its authors state that realism is not established Verified from sources.

What starting would require, if authorised

  • The lead engineer (role), supported by AI engineering tools.
  • An isolated Linux machine that holds no credentials from any other project.
  • The decisions listed in Open decisions, in particular a separate GO for step 1a (build the machine and prove isolation, with no third-party code).

Review status

This assessment was reviewed by engineering direction and cross-checked by two AI research assistants. No independent human review has taken place yet; one can be added before any commitment to third parties.

02 Foundations

Principles

ADR-001 · approved

  1. 1Simulate first
  2. 2Seal the authoritative record second
  3. 3Produce visuals offline third

A precomputed match is acceptable. A scripted match is not.

This is not a generated video of football. A generated video shows events somebody chose. Here the events come from the players' own decisions inside a simulation, and the video is made afterwards from the record of what happened. Editing may choose cameras and replays; it may not change what happened.

  1. P1

    Brain, simulation engine and visual engine are distinct systems.

    Project direction
  2. P2

    The Brain is developed and evaluated without 3D graphics.

    Project direction
  3. P3

    The simulation does not depend on the graphics engine.

    Project direction
  4. P4

    Autonomous simulation first, authoritative record second, offline visual production third.

    ADR-001, approved
  5. P5

    Separation does not ignore the body: actions must be physically plausible and animatable.

    Project direction
  6. P6

    Progress is by verified results, not by calendar.

    Project direction
  7. P7

    Experimental simulations can be repeated freely; official matches follow an integrity protocol.

    Project direction
  8. P8

    Every reference to third-party code uses an exact commit and line of development.

    G0.1
  9. P9

    Progressive visual target; photorealism is an aspiration, not a promised capability.

    Project direction
  10. P10

    Rule-based agents are acceptable if they meet the definition of autonomy.

    Project direction
Engineering deep dive Full functional objective
  • 22 autonomous virtual players; individual decision-making.
  • Cooperation within the team; tactics, positions and strategies.
  • Attack, defend, pass, shoot, score, intercept.
  • Rules, a referee and ball physics.
  • No manual control during the match.
  • Result not predetermined.
  • Events recorded and verifiable.
  • Later visualisation with professional graphics.

Final aspiration: 90 minutes at a quality comparable to a professional broadcast. Not required in the first version.

Binding design rules: the three systems stay separated by project-owned data contracts; body architectures A, D-lite and D/E stay open until evidence selects one; third-party code is always referenced by full commit SHA and line of development.

03 Foundations

System architecture

Three systems, two contracts, two supporting components. Select any block in the diagram to see what it does.

Select a block in the diagram.

System architecture. Arrows show data flow; dashed lines are supporting components attached to the match state. Keyboard: Tab to a block, Enter or Space to select.

How one match would be produced

  1. Fix everything before kick-off: teams, each player's abilities, tactics and software versions.
  2. Simulate: about ten times per second each player receives what it can see and chooses an action; the engine applies all actions at once, moves the ball and enforces the rules.
  3. Record and seal the match in full, so that any later alteration is detectable.
  4. Render afterwards from the record. Cameras and replays may be chosen; what happened may not be changed.
Engineering deep dive Component list (text version of the diagram)

Supporting components

  • Integrity: manifest, prior commitment, seed derivation, sealing (decision log v2, §3).
  • Evaluation: independent record validator and plausibility metrics.
  • Our own 2D viewer: reads Contract 2 only. Works with any engine.

04 Foundations

Data contracts

No system reads anything from another except through a contract.

Decoupling rule. Every third-party engine connects through an adapter: changing engine means changing adapter.
SystemAI Brainunchanged
Adapterfootballworld adapter
EngineMESSI footballworldfirst candidate to test
Adapterfootballworld export adapter
Consumers2D viewer · offline 3D · audit · statisticsunchanged

Only the adapters change. The Brain, both contracts and every consumer stay the same.

Who talks to whom. The Brain never reads the engine's internals, and the visual engine never talks to the simulation: it only reads the sealed record.
ContractBetweenContentBelongs to
1 · Agent interfaceBrain ↔ engineWhat each player observes, what it can request, how often, and the simultaneity rulesThe project
2 · Match recordEngine → visual, audit and statisticsPer-instant state, events, decisions, manifest, hashes (specified in G0 annex 02 §14)The project
Engineering deep dive Contract 1 and Contract 2 examples

Illustrative example, not output from any run. Field names are proposals of this project, not taken from any engine.

Egocentric, normalised by attack direction. Only what is observable: opponents' internal data (such as exact fatigue) is filtered out.

{
  "illustrative": "not output from any run",
  "decision_tick": 14720,
  "player_id": "home-07",
  "frame": "egocentric, normalised to attack direction",
  "self":     { "pos_m": [-6.0, 7.5], "vel_mps": [0.4, -0.2],
                "body_forward": [0.94, -0.34], "gaze_yaw_rad": 0.30,
                "stamina": 0.81, "has_ball": true },
  "teammates": [ { "id": "home-09", "pos_m": [8.4, 2.6],
                   "vel_mps": [1.8, -0.1], "body_forward": [0.99, -0.12] } ],
  "opponents": [ { "id": "away-04", "pos_m": [-1.8, 5.4],
                   "vel_mps": [-2.6, 0.9], "body_forward": [-0.95, 0.31] } ],
  "ball":   { "pos_m": [-5.6, 7.3, 0.11], "vel_mps": [0.3, -0.2, 0.0],
              "spin_radps": [0, 0, 0] },
  "phase": "open_play", "score": [0, 0],
  "match_clock_ms": 184000, "period": 1,
  "team_instructions": { "block_height": "mid", "press": "high" },
  "memory_hash": "a91c…7e02"
}

Coordinates and time (Contract 2)

  • Origin at the centre spot; +x towards the goal defended by the away team in the first half (the frame does not flip at half-time); +y to the left looking towards +x; +z up. Right-handed.
  • Units: SI (m, m/s, rad, s). Pitch size declared in the manifest (default 105 × 68 m).
  • Time: integer tick is the source of truth, plus sim_time_us. The match clock is a separate field that stops and runs according to the rules. Ball contacts carry their own sub-tick t_contact_us.

05 The players

AI Brain

Each player looks at the pitch and decides what to do. The Brain has three layers; only the bottom one knows which engine it is talking to.

Body architecture
  1. Layer 1

    Team manager

    Formation, block height, pressing, substitutions.

    Frequency
    Seconds and stoppages
    Depends on engine
    No
  2. Layer 2

    Player tactical decision

    Intent: offer for a pass, mark, press, whom to pass to, shoot.

    Frequency
    ≈ 10 per second
    Depends on engine
    No
  3. Layer 3

    Skill layer

    Translates the intent into the engine's concrete action.

    Frequency
    ≈ 10 per second
    Depends on engine
    Yes
The skill layer is the only part that changes between body architectures A, D-lite and D/E; the two layers above are expected to carry over Engineering hypothesis. Pick an architecture to see how the skill layer changes.

The 22 players may run the same decision program, the way 22 people can follow the same training while each makes their own choices. There is no need for 22 large AI chat models: that would be slower and less reliable. Players that follow well-designed football rules count as autonomous, as long as each one decides for itself from what it sees.

Engineering deep dive Observation, action, cooperation, development order

Observation

AspectProposalStatus
FrameEgocentric, normalised by attack directionThe candidate does this Verified from sources
ContentPosition, velocity and orientation of everyone; ball with height and spin; phase; score; clock; own instructionsProposal
Opponent informationOnly what is observable; internal data such as exact fatigue is filteredEngineering hypothesis In soccerworld the observation included opponent internal data Verified from sources; not verified for footballworld
Limited visionOptional. The candidate offers a 160° cone tied to body and gaze Verified from sourcesLater decision
Reaction latencyDeliver the observation with a delay that depends on an attributeEngineering hypothesis

Action

At the level of an intent with parameters. The candidate engine already works this way Verified from sources: one intent out of six (MOVE, CONTROL, PASS, SHOT, CLEAR, CHALLENGE) plus eight continuous values (movement, force and direction on the ball, elevation, spin, gaze). There is no jump action; catching the ball is an outcome, not a command.

Cooperation

Legitimate

  • A prior plan and the manager's instructions, recorded.

Illegitimate

  • Knowing the action a teammate will take in the same instant.
  • Any internal data of the opponent.

The 22 actions of one instant are computed on the same state and applied together.

How the agents would be developed

OrderMethodPurposeExternal data
1Rules and utility, with hierarchyBasis of the first productNone
2Value models fitted on matches from our own simulatorChoose better passes and positionsNone
3Imitation of positioning from real tracking dataHuman style27 matches with a clear licence Verified from sources: little to learn from, enough to calibrate
4Multi-agent reinforcement learning on topImprovementCompute; risk of exploiting engine bugs Verified from sources

No model of real trajectories with published weights was found: the three reviewed were trained on private data Verified from sources. Published agent weights exist for Google Research Football, tied to that engine and not checked. The strongest learned 11 v 11 result found controls the 10 outfield players with a rule-based goalkeeper, in 3,000-step matches, with industrial-scale compute Verified from sources; the search was not exhaustive.

Attributes

Physical attributes as engine limits; technical ones as execution error; mental ones as explicit degradations of perception and selection, applied outside the decision program so that their effect is monotonic and auditable Engineering hypothesis. The candidate already has per-player profiles with top speed, accelerations and ball control Verified from sources.

How the football is measured

Structural measures (players near the ball, compactness, line coherence, occupation by role, sequence diversity, abnormal dead time); statistics against real-football references; a response test, an attribute-sensitivity test, and blind review by people who know football.

06 The players

Autonomy

Operational definition · level L2 (ADR-002)

A player is autonomous if, at every decision instant, its action depends only on its observation of the public state, its own memory, its attributes, its own team's instructions and its own seeded randomness.

It cannot read future states, result targets, the opponent's internal data or instructions, or the engine's random generator. The 22 players may share the same decision program.

Autonomy levels. Select a level.
The four autonomy tests. Replaying a decision is only one of them: a central controller or a shared memory would pass a replay too.
Engineering deep dive Why shared programs are still autonomous

Autonomy does not depend on whether the agent is a neural network, nor on whether the 22 share weights. It depends on where the decision is taken and with what information. One set of weights evaluated 22 times with 22 different observations produces 22 different decisions; role, position and attributes enter as data. This is standard practice in cooperative multi-agent learning.

The record stores, per player and per decision tick, observation → action. An auditor can re-run the sealed policy on the recorded observation and check that the same action comes out. If it does, the action came from the agent and not from outside. Again, that alone does not exclude a central controller, hence tests 2–4.

07 The match

Simulation engine

The engine is the match itself: physics, the ball, the rules and the referee, and the official state of the game. The contracts are ours; the engine is replaceable.

Requirements, and what the reading of the first candidate (footballworld) shows. Nothing was executed.
  • 11 v 11, both teams controlled from outsideOne call carries the action of every roster slot; per-team and per-player separation is imposed by our adapter Verified from sources
  • 3D ballDrag, spin, bounce, posts and crossbar Verified from sources
  • Basic rulesPresent; fouls and cards by chance, no advantage, no handball in the file read Verified from sources
  • Runs without graphicsRendering is an optional extra in the package metadata Engineering hypothesis
  • Complete exportTracking per decision step and typed events, with contacts per physics sub-step Verified from sources
  • Repeatable with the same seedUntested Pending experiment
  • Licence allowing commercial use and modificationApache-2.0 at the pinned commit Verified from sources
  • Player orientation as a state of its ownBody and gaze are independent states Verified from sources
  • Actions at intent levelSix intents plus continuous parameters Verified from sources

Engine strategy

  1. The contracts are ours; the engine is replaceable.
  2. First candidate to test: footballworld at the pinned commit. This is a proposal; project direction decides.
  3. RoboCup 2D as the reference for agent architecture: the strongest existence proof of 22 separate agents playing complete matches. Not a base for the final product because it is 2D.
  4. Google Research Football as the reference for the D/E architecture: its engine demonstrates animation inside the simulation.
  5. Our own engine only if the candidates fail. Apache-2.0 allows forking footballworld and correcting its gaps, which is an intermediate route.
Engineering deep dive What could slow the engine work down
ConditionEffect
MESSI compatibility. Its CI uses Python 3.11; current JAX versions require Python 3.12 or later. A September 2026 environment would have to be reproducedDays to weeks in stage 1
MESSI performance on CPU. Time and memory per match unknownMay require 32 GB or smaller batches
Configuring a 5-minute match with two halvesExtra work if not possible without modifying the engine Pending experiment
Separating the Brain per player over an interface that moves everyone at onceUnknown performance or design effort
Chance-based referee and missing rulesMore work if correction is decided before stage 4b
The upstream project changes or disappearsOur own fork from the pinned commit

Do not install by name. Neither messi-env nor messi-football existed on PyPI at reading time, although the tag's documentation shows pip install messi-football. A package appearing under that name would not be verified. Code is fetched only by full commit SHA.

The safety procedure of runbook G1a v1.1 governs any first execution: isolated machine, no network for third-party code, separate user, memory and process limits.

08 The match

Engine comparison

Nine options were compared from public sources. Filter by role, sort by column, and expand a row for the detail.

Principle P8. Only footballworld and soccerworld are pinned by commit. The others were read on their default branch on 2026-11-14 without a pinned revision; treat their findings as Pending experiment until a commit is fixed.

09 The match

MESSI: one repository, three programs

The MESSI repository (github.com/UoS-CIDA-Lab/MESSI, University of Seoul) contains three unrelated lines of code under one name. A tag and a branch are not the same code. MESSI is a candidate, not tested by us.

Three lines with unrelated histories. Always referenced by full commit SHA.

First candidate

footballworld

Tag v0.1.0 line (branch hw)

68e0caaf8d736608f4717fd9fdd6d7241fe592f6

Licence
Apache-2.0
Timing
80 Hz physics · 10 Hz decisions
Players
Body + gaze orientation; composite shape

Not proposed

soccerworld

Branch newenv

b04b15c59d36c1e4f44e02d0886b2d0d7261f689

Licence
Apache-2.0
Timing
15 decisions per second
Players
Points; orientation from velocity

Excluded

main

Package messi 0.0.1

722bc62aebfdc0f75ab127de00ac7b7948ea871d

Licence
None visible → excluded
Timing
Not applicable
Players
Not applicable

An earlier research round (G0) described the soccerworld line while believing it was the tagged release. The correction (G0.1) is why every reference to third-party code now uses a full commit SHA and line of development.

What is known about footballworld

Documentary reading of commit 68e0caaf8d736608f4717fd9fdd6d7241fe592f6 by a single reader, through a page-summarising tool. A second, independent pass re-checked ten claims (body, orientation, action, timing, observation, duels, advantage and handball, duration, interface, data and visualisation). Rows outside those ten are marked “not re-checked”.

AspectFinding Verified from sourcesAssessmentSecond pass
BodyPosition and velocity in the plane; height and reach as scalars; composite collision shape (torso, legs, head)Enough for 2D and for architecture ARe-checked
OrientationBody and gaze are independent states; can move one way while facing another; moving backwards is slowerKey improvement over the other lineRe-checked
Orientation limitOrientation is not commanded directly: it is derived from the kick direction or the movement directionTo be handled in the skill layerFound by the second pass
JumpDoes not exist; there is vertical reach and an aerial-recovery lockA gap for headers and savesRe-checked
Ball3D, with drag, spin, bounce, posts and crossbar by sweep; goal when the whole ball crossesAdequateNot re-checked
TimingPhysics at 80 Hz, decisions at 10 HzAdequateRe-checked
DuelsThe winner is drawn among candidates weighted by distance, arrival time, height and controlDeclared randomness; review its weightRe-checked
FatigueTwo stamina pools that reduce top speedAdequateNot re-checked
Fouls and cardsBy chance. In the foul file: advantage is not applied and handball is not emitted; the obvious-goal-opportunity classifier has no caller in that file, and whether another module calls it was not checkedA gap for a product that claims integrityRe-checked
OffsideDeterministic, per contact; vision obstruction not modelledAcceptable to startNot re-checked
RestartsKick-off, throw-in, goal kick, corner, free kick, penalty; no wall, no dropped ballAcceptable to startNot re-checked
Goalkeeper8-second limit with a corner to the opponent. Back-pass: hands barred; how it is sanctioned is not verified8-second rule present; back-pass to confirmNot re-checked
Substitutions5 in 3 windows; rule-based manager includedAdequateNot re-checked
Duration2 × 2,700 s plus dead-ball time, capped at 600 s per half: default cap of 66,000 decision steps. A pending penalty at the end of a half suspends it (hard cap 4,194,303). Whether half-time consumes steps is not verifiedFor a short match the duration must be configured Pending experimentRe-checked
Agent interfaceinitialize and step over observations; a single call carries the action of every roster slot (sized by registered players, not by 22). That the goalkeeper is controlled the same way is an inference; the catch is automatic Pending experimentCompatible with Contract 1; per-team and per-player separation is imposed by our adapterRe-checked
Bundled teamsRule-based, with five tactical plans declared as an “uncalibrated design prior”; no learned modelUseful as a reference opponentNot re-checked
Bundled dataNo data files distributed. Code comments cite an unnamed K-League aggregate and a seven-match DFL sample; no coefficient is marked as validated with dataThe provenance doubt is reduced, not removed; the question to the author standsRe-checked
ExportTracking per decision step and typed events, with contacts per physics sub-stepBasis for Contract 2Not re-checked
Own visualisationVideo with a fixed oblique camera, top-down minimap, sphere markers, gaze fan; report with pass and shot mapsUseful for internal reviewRe-checked
Authors' statements“Not an official laws-conformance product”; realism not established; no roadmapA candidate, not a guaranteed baseNot re-checked
Engineering deep dive Release status and what is still uncertain
  • The tag's own README says “GitHub tag and Release: Not published”. No version is declared released by the author.
  • footballworld has a tests/ folder and a CI workflow; its deeper suites are private according to its documentation. Declared dependencies: jax, numpy, filelock; the render extra adds imageio, matplotlib and pillow.
  • The step call returns no observation; observations come from separate observe calls. Normal full time is reported as “truncated”, not “terminated”.
  • Not verified: whether the obvious-goal-opportunity classifier is called from another module; whether half-time consumes control ticks; the automatic goalkeeper catch path.
  • Open question for the author: which line they consider current. Recommended as a non-blocking consultation.

10 The picture

Visual engine

The visual target is progressive. Photorealism is an aspiration, never a promise. Each level must be measured before the next is attempted.

Visual quality ladder. Select a level. Not to be confused with visual milestones V1–V4 or pending validations PV1–PV14.

2D

Our own viewer reads only Contract 2: lightweight, independent of the engine and publishable. Reference viewers exist in the candidate engines Verified from sources.

3D, in one sentence

The hard problem is not the stadium or the faces: it is making the foot meet the ball at the recorded instant, without sliding, for 22 bodies.

Engineering deep dive 3D notes, motion data and licences
  • Unreal Engine 5 as an offline renderer: movie-render and pose search are listed as production-ready in Epic's documentation (delegated reading) Verified from sources.
  • Animation: own assessment Engineering hypothesis: pose search solves locomotion but does not, by itself, satisfy contact constraints imposed from outside.
  • The hard problem: foot on the ball at the recorded instant, without sliding. In A it is a constrained-synthesis problem; in D-lite and D/E it is avoided by limiting what the player can do.
  • Unreal as host of an integrated, deterministic, render-free simulation: a hypothesis without sufficient documentary support. Async physics is listed as experimental and Unreal's Python only runs in the editor Verified from sources.
  • Motion data: the largest licensed pack found has 308 clips; the commercial reference declares capture from more than 180 matches (EA page, delegated reading). Covering the repertoire will almost certainly require our own capture Engineering hypothesis.
  • Generative video: not chosen as a renderer; it does not guarantee fidelity to the record.

Licences (provisional)

No licence text hosted by Epic has been read. According to indirect sources: rendered video would not generate a royalty; above a group-revenue threshold, paid seats would be required (the threshold and what counts towards it must be confirmed); Epic's free animation sample is marked as not usable for AI training. All of this must be confirmed on the primary text before any decision (risk R10; decision 11: keep copies of the licence texts).

11 The picture

Body architectures

How do we make sure that what a simulated player does is something a human body could do, so that it can be animated convincingly? Three candidate designs stay open. None is selected.

Important. Stages 1–3 use an engine with abstract bodies. That is not a choice of architecture A. If stage 4a or 5 moves to D-lite or D/E, the engine's movement model changes, and the engine tests (1b), the stage-2 scenario ladder and the acceptance criteria must be repeated on the new engine. That effort will be estimated in stage 4a Planning assumption.

Engineering deep dive Evidence behind D-lite and D/E
  • D/E is demonstrated in the Gameplay Football engine behind Google Research Football: clips selected by query, position from clip root motion plus a correction, ball touch fired on an animation frame, inside the simulation loop, and it runs without rendering Verified from sources.
  • D-lite is demonstrated in parts: clip metadata in that engine acts as a primitive table, and the motion-graph and search-tree literature shows planning over clips with known displacement Verified from sources.
  • “Replay the exact clip” is not demonstrated: that engine needs per-frame position and rotation offsets to reach the ball Engineering hypothesis (pending validation PV11).
  • No open-source, permissively licensed, animation-driven football match was found in Unreal, Unity or Godot.

12 Record and integrity

Match record

The sealed record is the authoritative source of the match and of everything rendered from it. Step through a short synthetic sequence to see how one pass is written down.

Illustrative example, not output from any run. Synthetic values, shortened hashes.

Tick → player states → ball segment → event → decision → referee log → hash-chain link. Physics at 80 ticks per second and decisions every 8 ticks, as in the candidate engine.

What the animation may and may not change

Authoritative: fixed by the record

  • Each player's centre-of-mass position, within a declared tolerance
  • Ball trajectory between contacts
  • Instant and point of every contact
  • Who touches, with which contact type
  • Referee decisions, score, clock

Presentation: free to choose

  • Posture, stride, arms
  • Which foot strikes, unless the record fixes it
  • Gaze, gestures, celebrations
  • Body orientation, only if the simulator does not record it
  • Cameras, replays, graphics, sound
Engineering deep dive Record files, audit and size
FileContentFrequency
manifest.jsonMatch identity; versions and hashes of engine, rules, policies, rosters, attributes, tactical plan; seed commitment; hardware and library versions; hash rootOnce
state/*.bin (columnar)Per tick: players (position, velocity, orientation, stamina, status), ball (position, velocity, spin, status), phase, clock, scorePhysics rate
ball_segments.jsonlBall trajectory as segments between contacts: initial state plus model parameters. Gives the exact position at any render instantPer contact
events.jsonlTyped events with cause: contact, pass, shot, goal, foul, offside, card, substitution, restartPer event
decisions/*.binPer player and decision tick: observation hash, intent, action, random stream usedDecision rate
referee.jsonlEvery decision with the rule applied and the values that triggered itPer decision
integrity.jsonHash per block, hash chain, root, signatureOnce

body_part_hint is a hint for animation, not a sporting fact, except when a rule depends on the body part (handball). The position tolerance (how far the animated pelvis may drift from the simulated point) is a contract parameter, to be measured.

Checks possible afterwards

  1. Hash integrity: the chain and root match what was published.
  2. Internal consistency: every event follows from the state (a goal is a line crossing; offside matches positions at the pass; the score is the sum of goals).
  3. Autonomy: re-evaluating each sealed policy on the recorded observation gives the recorded action.
  4. Re-simulation in the pinned environment from manifest and seed: same root. Reported even if it does not match.
  5. Video against record: score, clock and events in the master match the record.

Checks 1–3 do not depend on numerical reproducibility across machines; check 4 does, so it is reported separately.

Record size: a calculation, not a measurement

Assuming 100 simulated minutes, 22 players × 12 float32 values, 10 ball values and 64 bytes of other data: ≈ 1.2 kB per tick; ≈ 70 MB at 10 Hz, ≈ 700 MB at 100 Hz, uncompressed. Full per-player observations, if stored instead of their hashes, would be a few GB per match. Record storage is negligible; video and intermediate frames are not.

One match, many broadcasts

The record contains no cameras. Any number of renders (wide shot, tactical camera, replays, commentary languages) can be produced from the same sealed record, and each video publishes the root hash of the record it came from.

13 Record and integrity

Integrity protocol

Because matches are computed before they are shown, somebody could run a hundred and publish the most exciting one. The protocol is designed to show that an official match was run once, with a seed nobody chose.

Experimental simulationOfficial match
PurposeDevelop, train, tune, validateProduce a sporting result published as such
How manyUnlimitedOne per match
SeedAnyDerived by this protocol
Manifest markclass: experimentalclass: official
PublicationOnly as labelled test materialAs a competition result
Can become officialNever, not even afterwardsNot applicable
The official-match protocol. Select a step.
  1. Announce the match identifier at the single official publication place, fixed in advance. One identifier admits one manifest; a second commitment with the same identifier voids it. A replay after a foreseen cause of voiding gets a new identifier, publicly linked to the voided one.

    Without this rule, many manifests could be sealed privately and only the favourable one revealed: a timestamp proves something existed, not that it was the only one.

What it demonstrates

  • Nobody chose the seed.
  • The manifest existed before the seed could be known.
  • It does not limit development: before freezing, everything can be tuned.

What it does not demonstrate alone

  • That the run was unique, if the simulation is not reproducible: the same seed could give different results and one could be picked.

Open condition. The protocol only prevents run-and-pick if the simulation is reproducible with the same seed Pending experiment. Reproducibility in the pinned environment is therefore an integrity condition, not a technical detail. Possible reinforcements: a short sealing window; a third party that re-runs from manifest and seed and compares the root; or a third party that runs the match. The principle is recommended by both reviewers; its parameters are still to be decided.

Engineering deep dive Failure rules and sources of the scheme
SituationRule (written before the first official match)
Technical crash before the endRe-run with the same seed and the same manifest; logged as an incident
The re-run does not match the earlier partial recordReproducibility incident: the match is voided and published as voided. Accepting “the first run that finishes” would turn a provoked crash into a way to redraw
The crash always happens at the same pointEngine defect: match voided and published; nothing in the manifest is changed to “make it pass”
The beacon does not emit the agreed roundUse the fallback declared in the manifest (next available round or second beacon)
An engine defect is found after sealingThe result stands unless a voiding cause from the manifest's closed list applies, checked with the validator whose hash is in it. If voided: new identifier, new commitment, new round; the voided record is kept and published
A committed match never gets publishedIt counts, and is declared publicly

The scheme matches the recipe NIST publishes for using its beacon (NISTIR 8213, 2019 draft, §7.2): commit in public to the hash of the program and its inputs, then derive the seed by combining that commitment with the beacon value. The same document requires that everything about the use of the future random number be specified in advance, and that the program be entirely deterministic given the beacon pulse and the other inputs.

Not verified: drand's current node count and threshold; any precedent of a sports body using these beacons (not searched). drand publishes no service-level agreement.

14 The plan

Roadmap

Eleven stages, three engineering gates. No stage is authorised; describing a stage does not authorise it. Select a stage to open its nine questions.

Stages 0 → 10. Diamonds are engineering decision points; 4a and 4b can run in parallel. On a narrow screen, scroll the diagram sideways. The order is mandatory: test the simulator → build the Brain → demonstrate the 2D match → assess animation feasibility → small visual test → only then larger production.

Indicative timing, stages 1–3 only Planning assumption

Weeks counted from a future authorisation to develop. These are not committed dates; beyond stage 3 no durations are given, because they depend on measurements that do not exist yet. A milestone reached is a technical result, not proof that the football is convincing.

Favourable≈ 16 weeks
Central · planning basis≈ 28 weeks (24–30)
Unfavourable32–40 weeks, or stop
  • Favourable: the engine works with minor adjustments; AI tools speed the work up substantially; few rounds of behaviour tuning.
  • Central: the engine or its environment needs adapting; more tuning rounds; some slower weeks.
  • Unfavourable: the candidate engine must be forked or replaced; behaviour needs redesign.
  1. Weeks 1–2H1 Verdict of stage 1b on short matches
  2. Weeks 3–5H2 One player driven by our Brain through Contract 1 passes its scenarios
  3. Weeks 6–10H3 A complete 5-minute 11 v 11 match visible in 2D (quality not yet assessed)
  4. Weeks 11–16H4 Technical prototype evaluated against criteria A1–A10

Milestone weeks follow the favourable plan Planning assumption. H3 shows that the whole system runs; H4 shows whether the result meets quality criteria set in advance. Neither says anything about 3D.

The stages, question by question

Engineering deep dive Stop rule, parallel work and dependencies

Common stop rule

Each stage has a maximum effort fixed before it runs. If it is consumed without passing the criterion, the stage stops and project direction decides. The numeric thresholds of each stage are registered in the repository, dated, before the stage runs, and shared with the promoters and the cross-review. They are not changed after results are seen; a justified change is recorded as a deviation.

Work that could run in parallel, only if authorised, with no execution

Contracts 1 and 2; the integrity protocol; inventory of licensed motion data; legal reading of the licence texts; search for the animation specialist.

Dependencies

  • 1 → 2 → 3 is a chain.
  • 4a needs stage-3 records and the animation specialist; 4b needs engine and Brain from stages 1–3. They can run in parallel.
  • 5 depends on 4a, gate B and motion data; 6 on 5 and gate C; 7 on 6, 4b and the integrity protocol; 8 on 6.
  • Beyond stage 3, no weeks are given: they depend on measurements that do not exist yet.

What could force a schedule revision

MESSI compatibility and CPU performance; configuring a 5-minute two-half match; per-player Brain separation; the chance-based referee; the upstream project changing or disappearing; failing to achieve minimum isolation; behaviour quality (the most likely cause of delay in weeks 6–16); AI tool usage limits; availability of the single lead-engineer role; availability of a specific cloud plan.

15 The plan

Engineering gates

Three engineering decision points stand between the first 2D match and any large visual production. Each opens only the next named step, on technical criteria. No gate renews automatically.

Two technical stop points sit inside the stages themselves: after stage 2, if the football is not organised and believable; and after stage 5, if bodies cannot follow the simulation convincingly. Stage 4a can also end in a decision to settle for a stylised look.

16 The plan

Acceptance criteria: the 5-minute 2D match

First decision: what does “5 minutes” mean?

At real pace a football match has roughly 2.7 goals in 90 minutes; in 5 minutes that is about 0.15 expected goals. The most likely score is 0–0.

Two options: (a) five minutes of real time: honest football with few chances; (b) a compressed format: more action, less realism. Recommended: (a), while also showing a batch of matches, or lengthening the demonstration. Project direction decides.

Numeric thresholds are registered, dated, in the repository before stage 1b and shared with the promoters. They are not changed after results are seen.

#CriterionHow it is checked
A111 v 11 for about 5 minutes, in two halves with a change of endsRecord
A2Every player, goalkeepers included, is moved by our Brain through Contract 1Manifest
A3Decentralised decision-makingThe four autonomy tests
A4No human intervention after kick-offDecision log
A5Result not predeterminedSeed derived after the manifest is committed; and a batch of 20 or more seeds with event sequences distinct from each other and the score distribution declared
A6RepeatableSame manifest and same seed give the same canonical record hash
A7Legal and without freezesIndependent validator: zero illegal states, zero freezes
A8Organised footballMetrics inside pre-declared bands taken from real football; blind review by three people with a median ≥ 3 out of 5
A9Attributes matterA pre-declared continuous metric (shots, territory, possession) favours the team with better attributes, with a sample size calculated in advance
A10VisibleThe 2D viewer replays the match reading only the record; score and clock match it

What this product does not demonstrate

  • Anything about bodies, animation, 3D or 90 minutes.
  • Fair refereeing: fouls and cards will still be drawn by chance, declared as such, unless project direction decides otherwise.

Where its value lies

2D demonstrations of agents playing football already exist. The value of stage 3 is not the picture: it is that the Brain, the contracts, the record and the integrity are our own and verifiable. It will look like dots or simple figures on a pitch seen from above, with score, clock and events. Not like television.

17 The plan

Infrastructure

The Mac is for writing, reviewing and supervising code. Everything that runs third-party code or simulations runs on an isolated Linux machine with no credentials from any other project. Start on CPU, without GPUs; add capacity only when a measurement justifies it.

The Mac connects to the isolated Linux machine over SSH with an exclusive key. The Mac pushes to the project repository and the Linux machine pulls from it. The Linux machine writes records and results to storage and backups. AI engineering tools assist design and code on the Mac, reviewed by the lead engineer; they have no access to the Linux machine. SSH, exclusive key push pull records design and code, reviewed AI engineering tools Mac (M1, 8 GB)edit, review, supervise Isolated LinuxCPU simulation, offline Repository Storage
Execution boundary. Dashed: assistance only; AI sessions have no access to the simulation machine or to credentials of other projects.

Mac (Apple M1, 8 GB)

  • Write, review, run light tools, superviseAdequate
  • Run the simulator or batches of matchesNot recommended
  • 3D developmentNot planned in this phase
  • A new MacNot planned

8 GB is little for JAX compilation with 22 agents through a whole match Engineering hypothesis, and the Mac holds credentials of other projects that third-party code must never be able to reach. CPU builds of JAX exist for Apple processors Verified from sources, so a minimal test would be technically possible; it is not planned, for those two reasons.

Isolated Linux machine

Start with 16 GB and 4 dedicated vCPUs. The runbook caps each run at 12 GB, leaving headroom for the system with one run at a time. Move to 32 GB only if measurements in weeks 1–2 show that memory or time per match require it, or to run two matches in parallel. A dedicated cloud machine (runbook option C) is the preferred option: the simplest to isolate and to destroy.

Machine security (runbook G1a v1.1)

  • A provider account or project dedicated to AI Football only.
  • An exclusive SSH key; no credentials of other projects and no AI connectors on that machine.
  • Third-party code pinned by commit and run without network, under a separate user, with memory and process limits.
  • The machine can be destroyed and recreated from the repository.
Engineering deep dive Needs in later stages
StagesNeed
2, only if training were decidedCloud GPUs by the hour. Not planned for the first phase
4bThe same machine; long matches on CPU; possible move to 32 GB
5–6GPU workstation and graphics engine
6–8Rendering and frame storage; production effort measured in render seconds per frame (PV13)

18 The plan

People and specialists

Stages 1–3 are software only: simulation, players' decision-making, a match record and a 2D viewer. Small teams, often academic, have built software players that play complete matches for years in RoboCup Verified from sources. The visual stage is different: it needs specialists that no AI tool replaces.

First phase (stages 1–3 and 4b)

RoleResponsibility
Lead engineer (role)Architecture, AI Brain, agents, integration with the simulator, contracts, testing, debugging, infrastructure, technical control
AI engineering tools
ChatGPT, Claude, Claude Code
Design, code generation and review, research, analysis, cross-review of documents. Engineering tools, not team members; they do not replace verification
Football adviser (optional)Blind review of behaviour in stages 2 and 3

Rules for using AI tools

  1. All generated code is reviewed, tested and understood by the lead engineer before it is incorporated. AI is not a source of truth about whether something works; tests are.
  2. Technical claims made by AI (APIs, parameters, versions) are checked in the documentation or the code.
  3. AI sessions have no access to the simulation machine or to credentials of other projects.
  4. Cross-review between the two tools is used for decisions and critical code (contracts, validator, integrity).

What this model does not solve: it concentrates knowledge in one role (risk R13); it does not replace the visual specialists; and its speed depends on how much the AI tools really accelerate the work, which is an assumption Planning assumption.

Visual stage (from stage 4a, each profile only when its gate allows)

ProfileStagesComment
Lead Technical Animation specialist (Unreal Engine, Motion Matching, inverse kinematics, rigging, sports animation)4a–9Critical and scarce profile. Part-time for the 4a study
Graphics-engine engineer5–9Importer, rendering, verification. May coincide with the above if the profile covers it
3D artist6–9Players, kits, stadium
Motion capture5–6Studio or own equipment; assessed in 4a
Editing and sound6–9Direction, commentary
Legal adviserBefore gate C and before stage 7Licences, data, platform
Machine-learning engineerOptionalOnly if the rule-based Brain hits a ceiling and training is decided

None of these profiles alone solves the visual problem: an editor is not a technical animator, and a technical animator does not replace motion data.

19 Evidence

Risks and control

Two risks are critical and both are tested at the smallest possible scale first. The largest risk of all is not technical: whether audiences care.

Engineering deep dive How risk is controlled overall
  • Criteria fixed in advance. Advance and stop conditions are written and approved before each stage starts.
  • Cheapest tests first. The two decisive questions are tested at the smallest possible scale.
  • We own the connections. The contracts let a third-party engine be replaced without starting again.
  • Three body designs kept open until evidence favours one.
  • Honest reporting. Negative results are documented with the same care as positive ones.
  • Two technical stop points (stages 2 and 5) and three engineering gates (A, B, C).

20 Evidence

What is possible, original, research, and not demonstrated

Possible with existing technology

11 v 11 simulation with rules; decentralised rule-based agents; recording and sealing; 2D visualisation; high-quality offline rendering.

Requires original development

The two contracts and their adapters; our own Brain; validator and metrics; 2D viewer; integrity protocol; referee corrections; feasibility audit; the skill layer for D-lite.

Requires research

Believable football through a whole match; animation constrained by imposed contacts for 22 bodies; automatic production without manual correction.

Not publicly demonstrated by anyone

Learned agents controlling all 22 with complete rules for 90 minutes; video of a full match faithful to a simulation at broadcast quality.

The search was not exhaustive.

How the evidence was gathered

21 Evidence

Pending validations

Questions that cannot be answered without executing something. They are not resolved now; each has an experiment designed in advance, and its thresholds are fixed before the experiment runs.

#QuestionExperimentMetric and sampleDecision it changesStage
PV1Does the engine start, complete matches and repeat results?Batch of short matches in an isolated environmentCompletion, illegal states, freezes, hash on repetition; pre-declared batchKeep this engine or change1b
PV2Can a 5-minute match with two halves be configured?Configuration reading and one testYes or noFormat of the first product1b
PV3How long does a match take, and how much memory?Stepped measurement over several durations, repeatedTime and memory per step; upper bound of the predictionBatch size; CPU viability1b
PV4How much slower is separating the Brain per player than evaluating it as a block?Measure bothTime per stepAdapter design2
PV5Are rule-based agents enough for organised play?Scenario ladder and blind reviewMetrics against real bands; three reviewersStop, or open learning research2
PV6How much does chance weigh in the result?Batches with controlled seeds and attributesResult variance attributable to drawsUrgency of fixing the referee2–3
PV7What share of simulated contacts can a body execute?Feasibility audit on recordsPercentage inside the human envelopeA versus D-lite or D/E4a
PV8How many distinct movements are needed?Inventory study, then prototypeRepertoire covered; perceived repetitionVolume of capture needed4a–5
PV9Does the tactical layer survive a change of movement engine?Connect the same Brain to two skill layersDifference in plausibility metricsEffort of moving to D-lite or D/E4a–5
PV10Is it reproducible across machines?Same seed in two environmentsCanonical hashWhether the official protocol needs an external witness1b (informative) and 4b
PV11Can the exact chosen clip be replayed without correction?Minimal sequence in D-litePosition correction needed per contactViability of D-lite5
PV12Can Unreal act as a deterministic, render-free host?Repeatability test of a scene with 22 charactersEquality between runsViability of D/E inside Unreal5
PV13How many seconds does one frame take at level N0?Measurement on the stage-5 sequenceRender seconds per frameProduction effort per match5–6
PV14Does the audience care?Not designed. Not an engineering experimentNone yetWhether there is a viable product3 and 6

Missing data that does not depend on execution

22 Evidence

Open decisions

Engineering decisions for project direction. Only one of them (decision 7) would open any execution, and only a first, isolated step.

Already set by project direction: Mac for coding only; isolated Linux on CPU; the visual stage kept separate and gated.

#DecisionRecommendation
1Accept this blueprint as a basis, after cross-reviewThe cross-review is by an AI tool, not an independent human review; consider one before commitments to third parties
2Definition and tests of autonomyApprove
3What “5 minutes” means in the first productReal time, also showing a batch; accept that 0–0 is likely
4Acceptance criteria of the first productApprove or adjust
5Candidate engine for stage 1footballworld at the pinned commit
6Execution machineLinux with 16 GB and 4 dedicated vCPUs, in a provider account exclusive to the project; 32 GB only after measuring
7Authorise step 1a: create the machine and prove isolation, with no third-party codeA decision after the review; the only one on this list that opens execution. Step 1b requires a separate GO once 1a has passed
8Chance-based refereeAccept it in the first product, declared; correct it in stage 4b
9Three engineering gates, A, B and CApprove
10Quality level of the first short visual match (stage 6)N0
11Keep copies of Epic's licence textsYes
12Consult the MESSI authorYes; non-blocking
13Parallel work without executionAuthorise what involves no execution

Numbering is local to this page. Non-engineering decisions are handled outside this document.

23 Evidence

Glossary

24 Evidence

Sources and backing documents

Public sources cited

Backing documents (available on request)

  • G0 00–06 Stakeholder requirements; engine candidates; autonomy architecture and match-record contract (02 §14); rendering pipeline; risks and experiments; decision log; engineering research report.
  • G0.1 07 Corrections to G0 (MESSI's three lines; beacon parameters; Epic licence notes).
  • G0.1 05 v2 Decision log, version 2 (official-match protocol; record consistency tests; visual levels).
  • RUNBOOK_G1A v1.1 Safe-execution procedure for stage 1 (not executed).
  • Stage-0 source reads (09) Raw reports of the documentary readings, with URLs.
  • Master Technical Engineering Blueprint v1.3 Spanish source of this page.

Version history

This page is built on the v1.3 basis. Earlier versions (v1.1, v1.2) are superseded and kept unchanged as history; G0.1 document 08 is superseded by the open-decisions list. Architecture and research are unchanged from v1.2.