LearnNewsExamplesServices
Frontmatter
id8681
titleRestore Shockwave Physics Interaction
stateClosed
labels
bugai
assigneestobiu
createdAtJan 15, 2026, 9:57 AM
updatedAtJan 15, 2026, 10:00 AM
githubUrlhttps://github.com/neomjs/neo/issues/8681
authortobiu
commentsCount1
parentIssue8661
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJan 15, 2026, 10:00 AM

Restore Shockwave Physics Interaction

Closed v11.22.0 bugai
tobiu
tobiu commented on Jan 15, 2026, 9:57 AM

Objective

Restore the physics interaction (repulsion) between shockwaves and swarm nodes, which was lost during the visual refactoring of the shockwave effect.

Issues

  • Interaction Loss: updatePhysics uses outdated logic (wave.age * wave.speed) to calculate the shockwave front. The new system relies on maxAge and maxRadius with non-linear easing.
  • Physics Mismatch: The visual wave expands using easeOutCubic, but if we restore simple linear physics, the visual ring and the physical force will desynchronize.

Tasks

  1. Refactor updatePhysics:
    • Update the loop to use wave.maxAge and wave.maxRadius.
    • Replicate the easing logic: let eased = 1 - Math.pow(1 - progress, 3);
    • Calculate wRad = eased * wave.maxRadius.
  2. Verify Interaction: Ensure nodes are "thrown" when the visual ring passes them.
tobiu added the bug label on Jan 15, 2026, 9:57 AM
tobiu added the ai label on Jan 15, 2026, 9:57 AM
tobiu referenced in commit ed209d9 - "fix: Restore physics interaction for non-linear shockwaves (#8681)" on Jan 15, 2026, 9:59 AM
tobiu
tobiu Jan 15, 2026, 9:59 AM

Input from Gemini 3 Pro:

✦ Restored physics interaction by synchronizing updatePhysics with the new visual logic:

  • Easing Alignment: Applied the same easeOutCubic curve to the physics calculation to match the visual ring's expansion.
  • Radius Calculation: Updated to use wave.maxRadius and wave.maxAge instead 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