Skip to content

genaforvena/drunk-walker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

309 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ€ͺ Drunk Walker

A bot that walks forever through Google Street View

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.

Release Build Status License

πŸ“¦ Download Extension β€’ πŸ‘‰ Web Demo


What Is This?

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.

Drunk Walker in action


Quick Start

Option 1: Browser Extension (Recommended)

Browser Download
Chrome/Edge/Brave drunk-walker-chrome.zip (32 KB)
Firefox drunk-walker-firefox.zip (32 KB)

Install (Chrome/Edge):

  1. Download and extract the ZIP
  2. Go to chrome://extensions/
  3. Enable Developer mode (top-right toggle)
  4. Click "Load unpacked" β†’ select extracted folder
  5. Open Google Maps β†’ Street View β†’ click extension icon πŸ€ͺ

Install (Firefox):

  1. Download and extract the ZIP
  2. Go to about:debugging#/runtime/this-firefox
  3. Click "Load Temporary Add-on" β†’ select manifest.json
  4. Extension loads until Firefox restarts

Option 2: Bookmarklet (Console)

  1. Visit genaforvena.github.io/drunk-walker/
  2. Click "COPY BOOKMARKLET"
  3. Open Google Maps Street View
  4. Press F12 β†’ Console tab β†’ paste and press Enter
  5. Control panel appears β†’ click START

How It Walks

PLEDGE Algorithm

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 120Β°                                         β”‚
β”‚  ↓                                                      β”‚
β”‚  WALL-FOLLOW MODE                                       β”‚
β”‚  β€’ Scan for LEFT exits (90-180Β° from forward)           β”‚
β”‚  β€’ Found exit β†’ take it, resume FORWARD                 β”‚
β”‚  ↓ (Truly stuck)                                        β”‚
β”‚  BREAK WALL                                             β”‚
β”‚  β€’ Retry successful yaw from graph memory               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Mechanics

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

Performance

Metric Target Real-World (v6.1.4)
Progress Ratio (unique/steps) > 0.70 0.74 (1777/2385)
Steps per Location < 2.0 1.34
Max Revisits ≀ 2 βœ… Guaranteed

Latest walk: 1,777 unique locations in 2,385 steps (74% efficiency, near-optimal PLEDGE performance)


Why "Drunk"?

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 β†’


Documentation

Getting Started

Technical

Advanced


Build from Source

git clone https://github.com/genaforvena/drunk-walker.git
cd drunk-walker
npm install
npm run build        # Generates bookmarklet.js + extension bundle
npm run extension:package  # Creates ZIP files for release
npm test             # Run 150+ tests

Controls

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

Troubleshooting

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 add-on missing Reload from about:debugging after browser restart

Privacy & Legal

  • βœ… 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 History

Version Changes
v6.1.4 Browser extension release, camera alignment fix, loop detection
v6.1.0 PLEDGE wall-following implementation
v5.1.0 Smart nodes, enhanced transition graph

View all releases β†’


πŸ“¦ Download Extension β€’ πŸ‘‰ Web Demo

Created with confused ❀️. The bot explores by following the left wall.

About

A sandbox experiment in Blind Graph Google Street View Traversal.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors