• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

orion-ecs / keen-eye / 20396713449
65%

Build:
DEFAULT BRANCH: main
Ran 20 Dec 2025 04:02PM UTC
Jobs 1
Files 327
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Dec 2025 04:00PM UTC coverage: 63.666% (+1.3%) from 62.4%
20396713449

push

github

tyevco
Add KeenEyes.Particles high-performance particle system (Issues #422, #423)

Implements a complete particle system for visual effects (fire, smoke,
explosions, magic sparkles) with the following architecture:

**Core Design Decisions:**
- Particles are NOT entities - pooled data for performance (10K+ at 60fps)
- SOA memory layout - separate arrays for positions, velocities, colors, etc.
- Modifiers as components - VelocityOverLifetime, ColorOverLifetime, etc.
- Pre-sampled curves - 64-element LUTs for AOT-compatible evaluation

**Components:**
- ParticleEmitter - emission rate, burst mode, shape, texture, blend mode
- ParticleEmitterModifiers - gravity, drag, velocity/size/color/rotation curves

**Data Types:**
- ParticlePool - SOA arrays with free list for O(1) alloc/release
- EmissionShape - Point, Sphere, Cone, Box spawning patterns
- ParticleCurve - pre-sampled 64-element curves for smooth interpolation
- ParticleGradient - pre-sampled color gradients
- BlendMode - Transparent, Additive, Multiply, Premultiplied

**Systems:**
- ParticleSpawnSystem - continuous and burst emission with shape support
- ParticleUpdateSystem - aging, modifiers, movement, particle death
- ParticleRenderSystem - batched rendering grouped by blend mode

**Plugin:**
- ParticlesPlugin - IWorldPlugin with component subscriptions
- ParticleManager - central pool manager exposed as world extension
- ParticlesConfig - configurable limits (max particles, emitters, pool size)

**Sample Effects:**
- Fire, Smoke, Explosion, Magic Sparkles presets in ParticleEffects

**Test Coverage:**
- 265 tests with 97.9% line coverage
- All systems at 95%+ coverage (RenderSystem: 100%, UpdateSystem: 100%)
- Comprehensive edge case testing (lazy init, pool null checks, etc.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

2856 of 3947 branches covered (72.36%)

Branch coverage included in aggregate %.

917 of 926 new or added lines in 14 files covered. (99.03%)

16580 of 26581 relevant lines covered (62.38%)

0.89 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
95.71
src/KeenEyes.Particles/Data/ParticleCurve.cs
3
95.45
src/KeenEyes.Particles/Data/ParticleGradient.cs
2
98.48
src/KeenEyes.Particles/Systems/ParticleSpawnSystem.cs
1
98.15
src/KeenEyes.Particles/ParticleManager.cs
Jobs
ID Job ID Ran Files Coverage
1 20396713449.1 20 Dec 2025 04:02PM UTC 327
63.67
GitHub Action Run
Source Files on build 20396713449
  • Tree
  • List 327
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #20396713449
  • 70fdd27c on github
  • Prev Build on main (#20395698575)
  • Next Build on main (#20410852066)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc