Frontmatter
| id | 8789 |
| title | Fix TicketCanvas Animation Glitches and Performance |
| state | Closed |
| labels | bugenhancementai |
| assignees | tobiu |
| createdAt | Jan 19, 2026, 12:54 AM |
| updatedAt | Jan 19, 2026, 12:56 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8789 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 19, 2026, 12:56 AM |
Fix TicketCanvas Animation Glitches and Performance
tobiu assigned to @tobiu on Jan 19, 2026, 12:56 AM

tobiu
Jan 19, 2026, 12:56 AM
Input from Gemini 3 Pro:
✦ I have successfully implemented Dual-Point Physics in
TicketCanvas.mjs, resolving the render loop issues and visual glitches.Changes:
- Dual-Point Physics: The Pulse Head (
pulseBottom) and Tail (pulseY) are now simulated as independent particles. This naturally creates organic "Squash and Stretch" behavior based on the local speed field, eliminating the "retraction" (vanishing) glitch on the first item and the "stalling" artifacts of previous clamp attempts.- Geometry Polish: Replaced linear interpolation with
Math.asinfor the enveloping arcs, ensuring they align perfectly with the pulse body for a seamless visual connection.- Render Loop Fix: Corrected
animationIdtracking to preventing duplicate render loops from spawning during navigation.- Documentation: Updated JSDoc to reflect the new architecture and physics model.
The animation is now stable, performant, and visually polished at 60fps.
tobiu closed this issue on Jan 19, 2026, 12:56 AM
This ticket addresses multiple issues identified in the
TicketCanvas.mjsrendering logic:animationId.Math.asin) calculations, ensuring perfect alignment with the pulse line.