Skip to content

Releases: GeFAA/hide-and-seek-2

v1.10.0 — Live in-browser Training

19 Jun 22:57

Choose a tag to compare

Watch the AI learn — live, in your browser

This release adds a Train tab to the viewer. It runs the project's real
tabular Q-learning self-play live on the client (ported to JS in
viz/web/livetrain.js from learn/train.py). Press ▶ Train and two agents
go from random to skilled in seconds:

  • a mini-match of the current policy plays on the left, and
  • a skill curve climbs in real time on the right — the seeker's sight-rate
    against a random hider rises ~11% → ~70%, the hider's evasion ~90% → ~99%.

No GPU, no server, nothing scripted — it's the real learning algorithm
computing in the page. The RL core is DOM-free and covered by a Node
metric-climb gate (verified peak seeker see-rate ≈ 0.69).

Also

  • Fixed: the Watch-tab HUD (control panel, transport bar, scores) no longer
    bleeds through on non-Watch tabs.
  • About tab now describes the live learner; README & CHANGELOG updated.

Live demo: https://gefaa.github.io/hide-and-seek-2/#tab=train

Hide & Seek 2.0 — v1.9.0 (it actually learns: CPU self-play)

19 Jun 22:06

Choose a tag to compare

Hide & Seek 2.0 -- v1.9.0

Live: https://gefaa.github.io/hide-and-seek-2/ — hard-refresh (Ctrl+Shift+R).

It actually learns now — no more scripted scenarios

The demo behaviour is no longer scripted or simulated. It's produced by an AI
that genuinely learns by self-play on the CPU (learn/, tabular Q-learning,
no GPU). Two agents start from random and get better by playing each other:

seeker sight-rate vs a random hider:  0.11 -> 0.70   (learned to hunt)
hider  evasion    vs a random seeker:  0.90 -> 0.99   (learned to evade)

Both start at chance and climb far above it — that's the proof. Run it yourself:
python -m learn.train.

In the viewer

  • Watch plays real rollouts of the trained policy: a trained seeker
    catching a random hider, a trained hider evading a random seeker, and an
    untrained baseline — each ending in a clear SEEKERS WIN / HIDERS WIN banner.
  • Learning plots the measured training curve (the seeker climbs to ~70%,
    then the hider learns to evade and takes over the arms race) — not synthetic.

The full GPU JAX/MAPPO stack remains in the repo for scale; learn/ is the
runs-anywhere counterpart.

Hide & Seek 2.0 — v1.8.0 (real simulation + clear winner)

19 Jun 21:41

Choose a tag to compare

Hide & Seek 2.0 -- v1.8.0

Live: https://gefaa.github.io/hide-and-seek-2/ — hard-refresh (Ctrl+Shift+R).

The demo is now a real simulation

The old demo clips were scripted waypoints with no physics — boxes clipped
into each other, agents walked through walls and each other, and it was unclear
who won. Rebuilt as a deterministic micro-simulation (pure stdlib):

  • Collision resolution — nothing overlaps or passes through walls; the heavy
    box genuinely needs two pushers.
  • Steering movement — smooth and natural; agents face where they move.
  • Perception — seekers see hiders via a vision cone + range + line-of-sight
    and chase only what they actually see; hiders flee and use cover.
  • A clear winner — every episode ends with a SEEKERS WIN / HIDERS WIN
    banner explaining why.
  • A validation gate refuses to emit any trajectory with overlaps,
    wall-clipping, out-of-bounds entities, teleports, or an undecided result.

Hide & Seek 2.0 — v1.7.1 (smooth movement fix)

19 Jun 21:17

Choose a tag to compare

Hide & Seek 2.0 -- v1.7.1

Live: https://gefaa.github.io/hide-and-seek-2/ — hard-refresh with Ctrl+Shift+R to pick up the fix.

Fixed

  • Janky agent movement. The robots wobbled/vibrated because the idle
    animation drove a big lean + squash-stretch + hop + arm-swing off a per-frame
    speed estimate
    that jittered with the frame rate. Replaced with calm,
    frame-rate-independent motion (a gentle bob + a tiny idle arm sway) — agents
    now glide smoothly.
  • Overblown decoy glow. The bright decoy orb bloomed into a large purple blob
    on the reflective floor; tamed the emissive, glow shell and global bloom so it
    is a tasteful soft glow.

Hide & Seek 2.0 — v1.7.0 (pro visual overhaul + key art)

19 Jun 15:23

Choose a tag to compare

Hide & Seek 2.0 -- v1.7.0

Live demo: https://gefaa.github.io/hide-and-seek-2/

A big visual upgrade.

Professional 3D viewer overhaul

  • Agents are now designed little robot characters — rounded body, a face
    with eyes, stubby arms, an antenna, and a glowing base ring — instead of bare
    capsules.
  • Image-based lighting (PBR materials + environment reflections), a
    post-processing pipeline (subtle bloom + SMAA, with a safe fallback), a
    three-point light rig with soft shadows, and a low-roughness reflective
    floor
    .
  • Characterful animations: idle breathing / squash-stretch, lean-into-motion,
    eye blinks, and a softly pulsing base glow.

A proper GitHub presentation

  • A rendered hero banner plus a gallery of character key art and action
    scenes, and a refreshed screenshot of the actual viewer.

Research scaffold; the JAX training paths still need a GPU.

Hide & Seek 2.0 — v1.6.0 (dark mode + Learning tab)

13 Jun 19:39

Choose a tag to compare

Hide & Seek 2.0 -- v1.6.0

Live demo: https://gefaa.github.io/hide-and-seek-2/

A big viewer upgrade.

Dark mode (now the default)

The whole viewer — 3D scene and UI — has a clean dark theme, with a one-click
light/dark toggle (the T key) remembered between visits.

Tabs: Watch / Learning / About

  • Watch — the 3D replay (all scenarios + features).
  • Learning — see below.
  • About — a beginner-friendly explainer of the project and its 2.0 mechanics.

Deep-linkable via #tab=watch|learning|about (and #scenario=<id>).

Learning dashboard — see the agents' progress

A newcomer-friendly view of the self-play autocurriculum: team skill cards
(ELO + win rate), an "arms race" win-rate chart whose lines cross as each
team adapts, an ELO-over-time chart, and a milestone table of emergent
behaviours — running & chasing, fort building, cooperative pushing, ramp use,
ramp/door defense, deception — with the training step each was learned.
(Illustrative synthetic data from viz/make_learning_data.py; real training
needs a GPU.)

Animation rework

Easing camera intro, cross-fading tab switches, sliding panels, animated
count-ups and progress bars, drawn-in charts, and smoother in-scene effects —
all honoring prefers-reduced-motion.

Hide & Seek 2.0 — v1.5.1 (box-carry fix)

13 Jun 18:51

Choose a tag to compare

Hide & Seek 2.0 -- v1.5.1

Live demo: https://gefaa.github.io/hide-and-seek-2/

A focused viewer fix found by watching full playbacks (not just single frames):

  • Hiders now push carried boxes in front of them instead of standing inside
    the crate while hauling — the box was previously pinned to the carrier's exact
    position, so the agent disappeared into the box.
  • Wider cooperative heavy-box flank so both pushers sit clearly beside the
    box, not overlapping it.
  • Softer agent ground-glow so it no longer washes out capsules behind it.

CI and the GitHub Pages deploy are green.

Hide & Seek 2.0 — v1.5.0 (scenarios + live demo)

13 Jun 18:28

Choose a tag to compare

Hide & Seek 2.0 -- v1.5.0

Live demo (no install): https://gefaa.github.io/hide-and-seek-2/

Viewer

  • Six named scenarios you can switch in your browser — Synthetic Showcase,
    Fort Building, Ramp Use, Running & Chasing, Door Blocking, Sensory Deception —
    each a short curated clip that isolates one emergent behaviour.
  • In-viewer scenario picker + shareable #scenario=<id> deep links, with
    a per-scenario caption/description.
  • Agents now have little faces, and on-screen event cues announce
    "Seekers released", "Door opened", "Wall broken", "Decoy activated" and
    "Hider spotted".

Project

  • Live demo on GitHub Pages (auto-deployed from viz/web) and CI
    (byte-compile + JAX-free config tests) — see the README badges.
  • New CHANGELOG.md and CONTRIBUTING.md; the curated scenario
    trajectories + manifest.json now ship with the repo.

Built on the v1.0.x clean, OpenAI Emergent Tool Use-style viewer. This remains
a research scaffold; the JAX training paths still require a JAX/GPU environment.

Hide & Seek 2.0 — v1.0.1 (clean viewer)

13 Jun 17:39

Choose a tag to compare

Hide & Seek 2.0 -- v1.0.1

3D viewer polish: a clean, OpenAI Emergent Tool Use-style scene.

  • Tidy square arena. The demo is rebuilt with four continuous border walls
    (plus a central door gap and an interior breakable wall); walls now carry a
    heading so the viewer orients them correctly. Props sit inside and agents are
    spaced so they no longer overlap.
  • Fixed black box faces. The lock-emblem texture is now opaque and baked in
    the box colour (the old transparent map multiplied the side faces to black).
  • Cleaner agent glow. The 3D "egg-shell" aura sphere is replaced by a soft
    flat ground-glow pool.
  • Subtler heading indicator.

If you already had the viewer open, hard-reload it (Ctrl+Shift+R).

Hide & Seek 2.0 — v1.0.0

13 Jun 16:28

Choose a tag to compare

Hide & Seek 2.0 — v1.0.0

First public release: a modern JAX / Flax recreation and expansion of
OpenAI's 2019 Emergent Tool Use From Multi-Agent Autocurricula ("Hide-and-Seek").

Highlights

  • End-to-end on-GPU JAX (PureJaxRL / JaxMARL style): environment, physics and
    learner in one jit / scan graph, zero host/device copies in the hot loop.
  • MAPPO with CTDE — decentralized actors on local masked observations, a
    centralized critic on privileged global state; per-team parameter sharing.
  • Entity-centric Transformer encoder + scanned GRU memory (object
    permanence through fog and occlusion).
  • ELO historical self-play for a stable autocurriculum.
  • 2.0 mechanics: variable mass & cooperative physics, sensory decoys, fog of
    war & dynamic lighting, destructible walls & doors, and stamina.
  • Anti box-surfing fix: strict Newtonian ground-contact gating.
  • Clean 3D replay viewer (Three.js, OpenAI Emergent Tool Use visual style) —
    no build step, with a pure-stdlib synthetic demo that runs without JAX or a GPU.

Quick look (no training needed)

python viz/make_demo_trajectory.py
python -m viz.serve
# then open http://localhost:8000

Status

A research scaffold: engineered to be correct, importable and faithful to
current JAX idioms. Quoted performance is a design target, not a benchmark,
and the JAX execution paths require a JAX/GPU environment to run. Not affiliated
with or endorsed by OpenAI.