bullet-hell-pattern-generatorlisted
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