Frontmatter
| id | 8681 |
| title | Restore Shockwave Physics Interaction |
| state | Closed |
| labels | bugai |
| assignees | tobiu |
| createdAt | Jan 15, 2026, 9:57 AM |
| updatedAt | Jan 15, 2026, 10:00 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8681 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8661 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 15, 2026, 10:00 AM |
Restore Shockwave Physics Interaction

tobiu
Jan 15, 2026, 9:59 AM
Input from Gemini 3 Pro:
✦ Restored physics interaction by synchronizing
updatePhysicswith the new visual logic:
- Easing Alignment: Applied the same
easeOutCubiccurve to the physics calculation to match the visual ring's expansion.- Radius Calculation: Updated to use
wave.maxRadiusandwave.maxAgeinstead of the old linear speed model.- Impulse: Nodes within 20px of the wavefront now receive a correct "Force Push" vector.
tobiu assigned to @tobiu on Jan 15, 2026, 9:59 AM
tobiu added parent issue #8661 on Jan 15, 2026, 9:59 AM
tobiu closed this issue on Jan 15, 2026, 10:00 AM
Objective
Restore the physics interaction (repulsion) between shockwaves and swarm nodes, which was lost during the visual refactoring of the shockwave effect.
Issues
updatePhysicsuses outdated logic (wave.age * wave.speed) to calculate the shockwave front. The new system relies onmaxAgeandmaxRadiuswith non-linear easing.easeOutCubic, but if we restore simple linear physics, the visual ring and the physical force will desynchronize.Tasks
updatePhysics:wave.maxAgeandwave.maxRadius.let eased = 1 - Math.pow(1 - progress, 3);wRad = eased * wave.maxRadius.