Skip to content

lofimichael/battlebots-hack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Havok

Find what wreaks havoc before the bell. A live, source-backed weakness finder for combat robots.

Pick a published matchup—or enter any two bots. Havoc uses Bright Data search results to gather current public evidence, maps that evidence onto five systems—Drive, Weapon, Control, Armor, and Thermal—and renders a stage-ready matchup brief showing what to watch.

Havok does not claim to predict a winner. It compresses scattered public reporting into a fast pre-fight brief for fans, commentators, and lightweight scouting. Every subsystem signal links back to the source snippet that produced it.

Why Bright Data

Bright Data is the live research layer, not a decorative integration. The app sends one current search for each bot through the token-only Bright Data remote MCP, normalizes the organic results, and retains source URLs and retrieval times. An explicit SERP zone can instead use the direct SERP API. Without Bright Data, Havoc can still demonstrate its UI from a clearly labeled fixture, but it cannot claim fresh evidence.

The matchup picker is populated automatically, too. Havoc reads the official BattleBots public roster and upcoming-event feeds, then uses a Bright Data MCP search as a freshness receipt for the next published card. The result is cached for 15 minutes: page refreshes do not repeatedly spend credits. Published cards can change, so the UI labels them as current data rather than an arena feed.

OpenAI is the primary synthesis path when OPENAI_API_KEY is present. Havoc uses Structured Outputs to create the compact matchup brief. Without it, a deterministic local classifier derives the same response shape from Bright Data snippets.

official roster + schedule -> Bright Data receipt -> matchup picker
selected bots -> Bright Data search -> sourced snippets -> OpenAI or local classifier
              -> five-system signal cards -> evidence drawer

Run locally

Requires Node.js 22 or newer. There are no package dependencies and no build step.

cp .env.example .env
# Add BRIGHTDATA_API_KEY to .env
npm start

Open the URL printed by the server. It uses CONDUCTOR_PORT, then PORT, then 3000, in that order.

A Bright Data token is enough: Havoc uses the remote MCP by default. Set BRIGHTDATA_SERP_ZONE only when you want to switch to the direct SERP API.

Recommended AI synthesis:

OPENAI_API_KEY=your_key
OPENAI_MODEL=gpt-5.4

No key is ever sent to the browser or returned from /api/health.

.env.local is loaded automatically and remains gitignored. The shorter aliases BRIGHTDATA_KEY and OPENAI_KEY are accepted alongside the names in .env.example.

Modes

  • Live + AI: Bright Data evidence, synthesized by OpenAI.
  • Live + local: Bright Data evidence, deterministic keyword classifier.
  • Demo fixture: Used when Bright Data is unavailable; visibly labeled and never presented as live research.

API

POST /api/analyze
Content-Type: application/json

{"leftBot":"Switchback","rightBot":"Ribbot"}

Supporting endpoints:

  • GET /api/health reports which optional integrations are configured.
  • GET /api/lineup returns upcoming published matchups and the current competitor registry; live results are cached for 15 minutes.
  • GET /api/demo returns the built-in presentation fixture.

Evidence discipline

  • Scores represent the density and salience of public evidence, not a measured probability of mechanical failure.
  • Missing evidence stays missing; it is not converted into a positive claim.
  • Generated observations carry source IDs displayed in the evidence drawer.
  • Public reporting may be incomplete, stale, or wrong. This is directional research, not engineering or betting advice.

License

MIT. “BattleBots” and robot/team names belong to their respective owners. Havok is an unofficial public-data research project and does not ship team logos, show footage, or robot photography. It is not affiliated with BattleBots, National Havoc Robot League, or Havoc Robotics.

About

A repository for Havok

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages