LearnNewsExamplesServices
Frontmatter
id8655
titleEnhance Header Canvas Shockwave Physics & Interaction
stateClosed
labels
enhancementai
assigneestobiu
createdAtJan 14, 2026, 10:26 PM
updatedAtJan 14, 2026, 11:10 PM
githubUrlhttps://github.com/neomjs/neo/issues/8655
authortobiu
commentsCount1
parentIssue8630
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJan 14, 2026, 11:10 PM

Enhance Header Canvas Shockwave Physics & Interaction

Closed v11.22.0 enhancementai
tobiu
tobiu commented on Jan 14, 2026, 10:26 PM

Objective

Elevate the "Shockwave" effect from a simple visual overlay to a physics-based interaction that affects the entire canvas ecosystem. Additionally, ensure the effect triggers consistently on all toolbar elements, including buttons.

Features

  1. Wave Displacement: Active shockwaves should physically displace the "Split Stream" energy strands, creating a traveling pulse (amplitude spike) that follows the shockwave ring.
  2. Particle Repulsion: The "Ether" particles should be repelled by the expanding shockwave front, brightening momentarily to simulate energy transfer.
  3. Universal Interaction: Ensure clicks on Neo.button.Base items (which might stop propagation) still trigger the shockwave. This requires implementing capture: true listeners on the HeaderToolbar.

Implementation

  • HeaderCanvas.mjs (SharedWorker): Update calculateStrandGeometry and drawParticles to factor in shockwaves state.
  • HeaderToolbar.mjs (AppWorker): Switch click listener to use {options: {capture: true}}.
tobiu added the enhancement label on Jan 14, 2026, 10:26 PM
tobiu added the ai label on Jan 14, 2026, 10:26 PM
tobiu assigned to @tobiu on Jan 14, 2026, 10:27 PM
tobiu referenced in commit 58ace87 - "feat: Implement interactive Shockwave Physics (Wave & Particle displacement) & Fix Button Clicks (#8655)" on Jan 14, 2026, 10:28 PM
tobiu referenced in commit 46d48f8 - "refactor: Move HeaderToolbar event logic to Controller & Enable background shockwaves (#8655)" on Jan 14, 2026, 11:09 PM
tobiu added parent issue #8630 on Jan 14, 2026, 11:10 PM
tobiu
tobiu Jan 14, 2026, 11:10 PM

Input from Gemini 3 Pro:

Completed Shockwave Physics & Interaction Enhancements

1. Visual Physics Upgrade (SharedWorker)

  • Wave Displacement: Shockwaves now physically displace the main energy strands, creating a traveling amplitude pulse that follows the expanding ring.
  • Particle Repulsion: The "Ether" particles are now dynamically repelled and brightened by the shockwave front, creating a cohesive physical reaction across all visual layers.

2. Robust Interaction (AppWorker)

  • Controller-Based Handling: Refactored HeaderToolbar to use a dedicated HeaderToolbarController.
  • Button Clicks: Bypassed DOM bubbling limitations by wiring button handlers directly to the controller (handler: 'onButtonClick'). This ensures every click, whether on a button or the background, triggers the effect.
  • View Cleanup: Removed all imperative logic from the HeaderToolbar view, enforcing a strict separation of concerns.
tobiu closed this issue on Jan 14, 2026, 11:10 PM