← ClaudeAtlas

bullet-hell-pattern-generatorlisted

Deterministic bullet-hell pattern math engine on the Python stdlib - spiral, aimed fan, ring, and laser-sweep emitters produce JSON frames, an ASCII snapshot, and a self-contained SVG render of one frame. Seed-based reproducibility with zero external game engine, zero MCP.
RMAzrim/opencode-artes · ★ 2 · AI & Automation · score 76
Install: claude install-skill RMAzrim/opencode-artes
# Bullet Hell Pattern Generator Design and debug bullet-hell attack patterns with math instead of a game engine. The stdlib module simulates emitters, spawns bullets frame-by-frame, and renders results as JSON keyframes, an ASCII snapshot, and a standalone SVG image — so you can iterate on a pattern's rhythm and density without Unity/Godot/Phaser or any MCP. ## 1. System Architecture & Prerequisites - **Runtime**: CPython 3.9+ (`math`, `json`, `random`, `dataclasses`, `argparse`, `statistics`). No PyGame, no numpy, no MCP. - **Emitters** (pure math, all deterministic seedable): - `SpiralEmitter` — continuous rotation, `degrees_per_tick` and `rounds`; bullet count grows linearly. - `FanEmitter` — aimed burst toward a target (deterministic `spread`, `count`, `speed`). - `RingEmitter` — full 360° burst with optional rotation offset; `density` bullets. - `LaserSweepEmitter` — a rotating beam front that "sweeps"; generates a fan-family every `sweep_every` ticks with alternating direction. - **Determinism**: standard `random.Random(seed)` per emitter; identical seed yields identical frame JSON to the byte. - **Outputs**: - `--frames frames.json` — array of `{tick, bullets: [{x,y,dx,dy,speed}]}`. - `--ascii` — textual 21×13 snapshot of one frame (bullets drawn as `.`). - `--svg frame.svg` — one rendered frame as a standalone SVG (`<svg>` + `<circle>`s), viewable in any browser. - stdout — pattern summary (bullets, density, determinism check bet