How greydust/where-builds-meet works
Where Builds Meet is a client-side character-build and combat-rotation simulator. A player configures character stats, equipment, effects, and skills; authors a timed rotation; then the app resolves a calculation bundle, runs it in a Web Worker, and presents damage, DPS, and comparison results. Separate branches support stochastic simulations, rotation-timeline editing and inspection, gear import/OCR, and browser-persisted settings. The README documents the main calculation flow; sampled worker source confirms its dispatch, while some feature wiring is represented only at the documented subsystem level.
Main entry points: App.tsx App shell · RotationEditorTab.tsx Rotation editor · rotationWorkerClient.ts Rotation worker client · rotationCalculator.ts Rotation calculator
Components 24
Application experience
- App shell
src/App.tsx - Rotation editor
src/features/rotations/RotationEditorTab.tsx - Timeline display
src/features/rotations/useRotationTimelineDisplay.ts - Breakdown analysis
src/features/analysis/BreakdownTab.tsx - Simulation controls
src/features/simulation/SimulationTab.tsx
Build configuration
- Character stats
src/features/character/StatsTab.tsx - Skill editor
src/features/skills/SkillEditorTab.tsx - Gear and effects
src/gear.ts - Build setup
src/application/characterComposition.ts
Combat calculation
- Calculation bundle
src/App.tsx - Rotation worker client
src/calculations/rotationWorkerClient.ts - Rotation worker
src/calculations/rotationWorker.ts - Rotation calculator
src/calculations/rotationCalculator.ts - Combat timeline
src/calculations/rotationTimeline.ts - Damage and metrics
src/calculations/damage.ts - Simulation worker client
src/calculations/simulationWorkerClient.ts - Simulation worker
src/calculations/simulationWorker.ts - Rotation simulator
src/calculations/simulationCalculator.ts
Browser state
- Persistent storage
src/persistentStorage.ts - Storage schemas
src/schemas/storage.ts
Import and presentation
- Gear import OCR
src/gearOcr.ts - Official gear import
src/officialGearImport.ts
Other components
- Player
- Browser storage
Connections 31
- Player → App shell: uses
- App shell → Character stats: presents
- App shell → Skill editor: presents
- App shell → Rotation editor: presents
- App shell → Simulation controls: presents
- App shell → Build setup: resolves setup
- App shell → Gear and effects: resolves gear
- App shell → Persistent storage: loads and saves
- Character stats → App shell: edits character
- Skill editor → App shell: edits skills
- Rotation editor → App shell: edits rotation
- App shell → Calculation bundle: assembles inputs
- Calculation bundle → Rotation worker client: submits
- Rotation worker client → Rotation worker: dispatches requests
- Rotation worker → Rotation calculator: dispatches calculation
- Rotation calculator → Combat timeline: builds timeline
- Rotation calculator → Damage and metrics: calculates damage
- Rotation worker client → Breakdown analysis: returns results
- Rotation editor → Rotation worker client: requests editor timeline
- Rotation editor → Timeline display: provides rotation
- Timeline display → Combat timeline: uses timeline model
- Simulation controls → Simulation worker client: starts simulation
- Simulation worker client → Simulation worker: posts task
- Simulation worker → Rotation simulator: runs trials
- Simulation worker client → Simulation controls: returns summary
- Persistent storage → Browser storage: reads and writes
- Persistent storage → Storage schemas: checks storage keys
- Player → Gear import OCR: imports gear
- Gear import OCR → App shell: supplies gear data
- Player → Official gear import: imports gear
- Official gear import → App shell: supplies gear data