Releases: GeFAA/hide-and-seek-2
v1.10.0 — Live in-browser Training
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)
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)
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)
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)
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)
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)
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)
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.jsonnow 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)
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
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 onejit/scangraph, 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:8000Status
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.