Skip to content

v2.1.0 - BestiaryKernel + Trinity Wave 2.1

Choose a tag to compare

@sadhaka sadhaka released this 17 May 09:01
· 150 commits to main since this release

Trinity Wave 2.1: universal creature lifecycle kernel.

BestiaryKernel is one new pure-logic kernel that unifies NPC creature handling: SoA storage at <100 bytes per creature, generational 32-bit handles, per-slot pre-allocated BehaviorTree instances, double-buffered death-FX event ring, zero-allocation hot-loop ticks. Integrates the existing Trinity kernels through one facade so consumers stop writing their own ad-hoc AI / spawn / death pipelines:

  • SonicSync perception drained into per-slot blackboards
  • LoomPulse mood values pulled into BT context each tick
  • InferenceOrchestrator cloud-lane requests submitted for T3+ only
  • NarrativeMemory prior-death recall biases initial mood
  • BehaviorTree instances drive intent (action, velocity, facing) per tick; the kernel reads intent and writes SoA

Ships with CREATURE_CATALOG: 6 skeleton variants for Wave 2.1 — warrior, archer, caster (T1 fodder), bone reaver, choir skeleton (T2 elite), and First Standing (T3 mini-boss with cloud inference). Each variant declares spec data (sizeScale, palette key, BT id, mood channel, audible signature, perception radius, inference lane, death FX taxonomy, signature behaviors) so adding a new family requires zero kernel code changes.

defaultBehaviorTreeFactory ships authored fallback BTs for all 6 variants — pursue / kite / channel / charge / wail / fallback-selector patterns matching the signatureBehaviors field. Consumers can swap the factory wholesale via setBehaviorTreeFactory for richer per-variant authoring.

Tests

  • 4032 / 4032 green (up from 3984 at v2.0.0, +48 BestiaryKernel tests)
  • 30 concurrent creatures × 60 ticks under 4ms on desktop V8

Install

```
npm install loom-engine # gets 2.1.0
npm install loom-engine@beta # also 2.1.0
```

Compatibility

Drop-in upgrade from v2.0.x. No breaking changes. BestiaryKernel is additive — existing Trinity Mainframe consumers keep working unchanged.

🤖 Generated with Claude Code