Frontmatter
| id | 8647 |
| title | Explore 3D Effects for Header Canvas (Neon Tube vs Ribbon) |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Jan 14, 2026, 8:04 PM |
| updatedAt | Jan 14, 2026, 8:10 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8647 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8630 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 14, 2026, 8:10 PM |
Explore 3D Effects for Header Canvas (Neon Tube vs Ribbon)
tobiu added parent issue #8630 on Jan 14, 2026, 8:04 PM
tobiu assigned to @tobiu on Jan 14, 2026, 8:09 PM

tobiu
Jan 14, 2026, 8:10 PM
Input from Gemini 3 Pro:
✦ Implemented the "Combined Approach" for the Header Canvas 3D effect:
- Refactored
drawAurasto decouple point calculation (calculateStrandPoints) from rendering.- Ribbon Fill: Added a subtle gradient fill between the two strands to simulate a twisting 3D surface.
- Neon Tube: Implemented a multi-pass stroke (Glow + White Core) to give the strands a volumetric, light-emitting appearance.
The result is a richer, more "engineered" visual that aligns with the "Application Engine" theme.
tobiu closed this issue on Jan 14, 2026, 8:10 PM
Explore and implement 3D visualization techniques for the Header Canvas sine waves to enhance the "Application Engine" feel.
Objectives:
Approach:
Portal.canvas.HeaderCanvasinapps/portal/canvas/HeaderCanvas.mjs.drawRibbon()pass usingcreateLinearGradientto fill the space between strands.drawNeonStrands()pass overlaying the ribbon with multi-layered strokes (Glow + Color + White Core).