It doesn't know where it's going. It just knows it has to keep moving. Never backtracking. Never arriving. Always forward into the unknown, one street at a time, until the world runs out.
π¦ Download Extension β’ π Web Demo
Drunk Walker is a blind graph traversal experiment living inside Google Street View. It presses keyboard arrows according to the PLEDGE algorithm (Parametric Labyrinth Exploration with Drift-Guided Escape), exploring the digital world without a map.
The bot is blind β it doesn't know where panoramas exist until it tries to walk there. Every movement is physical probing of the graph structure. It produces the map by walking it.
| Browser | Download |
|---|---|
| Chrome/Edge/Brave | drunk-walker-chrome.zip (32 KB) |
| Firefox | drunk-walker-firefox.zip (32 KB) |
Install (Chrome/Edge):
- Download and extract the ZIP
- Go to
chrome://extensions/ - Enable Developer mode (top-right toggle)
- Click "Load unpacked" β select extracted folder
- Open Google Maps β Street View β click extension icon π€ͺ
Install (Firefox):
- Download the Firefox ZIP (orange button) - NOT the Chrome ZIP
- Go to
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Navigate to the extracted folder and select
manifest.json - Extension loads until Firefox restarts
- Visit genaforvena.github.io/drunk-walker/
- Click "COPY BOOKMARKLET"
- Open Google Maps Street View
- Press
F12β Console tab β paste and press Enter - Control panel appears β click START
The bot uses wall-following to guarantee exploration with each location visited at most twice:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FORWARD MODE β
β β’ Face direction of travel (prevβcur bearing) β
β β’ Move straight into new territory β
β β (All 6 yaws tried - dead end) β
β TURN LEFT 105Β° β
β β β
β WALL-FOLLOW MODE β
β β’ Scan for LEFT exits (90-180Β° from forward) β
β β’ Found exit β take it, resume FORWARD β
β β (Truly stuck or loop detected) β
β BREAK WALL β
β β’ Retry successful yaw from graph memory β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Concept | Description |
|---|---|
| 6 Yaw Buckets | Street View divides 360Β° into: 0Β°, 60Β°, 120Β°, 180Β°, 240Β°, 300Β° |
| Forward Bearing | Always face direction of travel (prevβcur) |
| Cul-de-Sac Check | After 10+ straight nodes, verify not a false dead-end |
| Graph Memory | Records every successful movement for escape routes |
| Loop Detection | Tracks nodes visited during wall-follow to escape cycles |
| Metric | Target | Typical |
|---|---|---|
| Progress Ratio (unique/steps) | > 0.55 | 0.50β0.70 |
| Steps per Location | < 2.0 | 1.5β2.5 |
| Max Revisits | β€ 2 | β Guaranteed by PLEDGE |
The PLEDGE algorithm guarantees each node is visited at most twice β once during forward exploration, once during wall-follow backtracking. This is the mathematical guarantee of left-hand rule maze traversal.
The bot wanders without a master plan. Someone called it "Anti-Oedipus" (Deleuze reference about rhizomatic movement). They meant "Anti-Odysseus" (the hero who never gets home).
Turns out both work:
- Anti-Oedipus β No central map, just surface traversal
- Anti-Odysseus β Never returns home, each node β€2 visits
It's a nomadic machine that produces the map by walking it.
π Read the philosophical framing β
- HOW_IT_WALKS.md β PLEDGE algorithm deep-dive
- WALK_REPORTS.md β Walk analysis and fix documentation
- ALGORITHM.md β API reference (engine, wheel, traversal)
- THE_TRAVERSAL_PROBLEM.md β Theory of blind graph traversal
- src/README.md β Developer guide (build, test, deploy)
- WALK_DRIVEN_DEVELOPMENT.md β Walk-driven development workflow
- ANTI-OEDIPUS.md β Philosophical framing (Deleuze, nomadic machines)
- v5.x: Smart nodes, enhanced transition graph
- v4.x: Surgeon mode, Hunter mode, Explorer mode
git clone https://github.com/genaforvena/drunk-walker.git
cd drunk-walker
npm install
npm run build # Generates bookmarklet.js + extension folders
npm test # Run 162+ testsBuild output:
bookmarklet.js- Browser console versionextension-chrome/- Chrome/Edge/Brave extension (usesservice_worker)extension-firefox/- Firefox extension (usesscriptsarray)
| Control | Action |
|---|---|
| START/STOP | Begin or pause exploration |
| Steps | Total movements made |
| Visited | Unique locations discovered |
| Pace | Decision speed (0.5s - 5.0s) |
| πΎ Path | Export walk as JSON |
| π Logs | Export session logs |
| Issue | Solution |
|---|---|
| Extension not showing | Ensure you're on google.com/maps in Street View mode |
| Not starting | Refresh page, check console (F12) for errors |
| Panel not visible | Resize browser window, try STOP β START |
| Firefox: "Extension is invalid" | Make sure you downloaded the Firefox ZIP, not Chrome. Extract and load manifest.json from drunk-walker-firefox/ folder |
| Firefox: Still getting error | Clear Firefox cache, restart browser, try loading from about:debugging again |
- β Runs entirely in your browser
- β No data sent to external servers
- β No cookies or tracking
- β Public domain (CC0)
Not affiliated with Google or Google Maps. This is a technical experiment for fun, not a scraping tool.
| Version | Changes |
|---|---|
| v6.1.9 | Latest release |
| v6.1.7 | Latest release |
| v6.1.7 | Latest release |
| v6.1.7 | Latest release |
| v6.1.7 | Latest release |
| v6.1.7 | Latest release |
| v6.1.5 | Latest release |
| v6.1.5 | Latest release |
| v6.1.5 | Latest release |
| v6.1.5 | Latest release |
| v6.1.5 | Dual browser manifests (Chrome/Firefox), gh.io extension folders, mandatory release checklist |
| v6.1.4 | Territory Oracle, walk-driven development, wall-follow loop detection documented |
| v6.1.0 | PLEDGE wall-following implementation |
| v5.1.0 | Smart nodes, enhanced transition graph |
π¦ Download Extension β’ π Web Demo
Created with confused β€οΈ. The bot explores by following the left wall.