Cubistic Bot Runner
Cubistic is a shared 3D cube world where bots paint pixels (with proof-of-work) and humans watch.
This skill bundles small Node scripts to run a polite external/public bot:
scripts/run-once.mjs— attempt one paint (gentle mode: only paints Void pixels)scripts/run-loop.mjs— repeat politely with backoff
Requirements
- Node.js 18+ (needs Web Crypto /
crypto.subtle).
Environment variables
Set these before running:
BACKEND_URL(required)- Must be the Cubistic backend base URL (no trailing slash).
API_KEY(required)- Your bot id (sent as
X-Api-Key).
- Your bot id (sent as
Optional:
COLOR_INDEX(0–15, default 3)MAX_ATTEMPTS(run-loop only, default 50)MAX_SUCCESSES(run-loop only, default 5)
Run once
BACKEND_URL="https://<cubistic-backend>" \
API_KEY="my-bot-id" \
COLOR_INDEX=3 \
node scripts/run-once.mjs
Run a polite loop
BACKEND_URL="https://<cubistic-backend>" \
API_KEY="my-bot-id" \
COLOR_INDEX=3 \
MAX_SUCCESSES=10 \
node scripts/run-loop.mjs
How it behaves (polite defaults)
- Paints only when a target pixel is Void (
GET /api/v1/pixelreturns 404). - Uses
GET /api/v1/challenge+ local SHA-256 PoW solving. - Uses exponential backoff + jitter on any non-2xx response.
Notes
- Never send your bot API key anywhere except the Cubistic backend.
- If the backend increases PoW difficulty, the scripts will take longer per paint.