feat(flow-lenia): add verified ecosystem arena#35
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2207550a8e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| this.initialMass = snapshot.initialMass; | ||
| this.mixingRule = snapshot.mixingRule; | ||
| this.arenaDynamics = cloneDynamics(snapshot.dynamics); | ||
| this.lineageRing = snapshot.lineageRing.map((event) => ({ ...event, center: [...event.center], childFingerprint: [...event.childFingerprint], deltaH: [...event.deltaH], deltaQ: [...event.deltaQ] })); |
There was a problem hiding this comment.
Preserve imported lineage affected masses
When an Arena experiment containing mutations is imported, this restores event.affectedMass in lineageRing but does not repopulate mutationAffectedMass; metrics() later rereads that GPU buffer and overwrites every ring event from it. In a fresh solver, or one with stale counters, the first metrics/export cycle after import changes the restored lineage history's affected mass to zero or unrelated values, so the advertised complete-state JSON no longer round-trips the lineage record accurately.
Useful? React with 👍 / 👎.
| const events = nextEventStep <= this.stepCount | ||
| ? this.eventQueue.filter((event) => event.atStep === this.stepCount).slice(0, MAX_STEP_EVENTS) |
There was a problem hiding this comment.
Drain overflowed same-step brush events
When a scripted brush replay queues more than MAX_STEP_EVENTS brush events for the same atStep, this takes only the first slice and removes those IDs after the dispatch. The remaining events keep the old step; once stepCount advances, the exact atStep === this.stepCount filter never selects them, leaving stale events at the front of the sorted queue and preventing those edits, and later events behind them, from being applied.
Useful? React with 👍 / 👎.
Summary
Why
This turns the Flow Lenia research/specification into a reproducible, performant interactive simulation with explicit scientific and release gates.
Validation
pytest: 50 passedImpact
Adds the new
/sims/flow-lenia/experience and its catalogue media. Existing simulators and unrelated workspace files are unchanged.