Skip to content

Add configurable fluid hero visualization - #426

Open
arseniycodes wants to merge 1 commit into
mainfrom
ash/fluid-hero
Open

Add configurable fluid hero visualization#426
arseniycodes wants to merge 1 commit into
mainfrom
ash/fluid-hero

Conversation

@arseniycodes

@arseniycodes arseniycodes commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • replace the static landing-page hero artwork with a responsive WebGL2 particle-wave field
  • update the hero composition while preserving the signup and install-prompt actions
  • add live controls for amplitude, wave density, speed, choppiness, particle size, brightness, pause, and reset
  • respect reduced-motion preferences and stop rendering while the field is offscreen

Validation

  • pnpm --filter @superlog/web typecheck
  • pnpm --filter @superlog/web build

Summary by cubic

Replaced the landing hero with a responsive WebGL2 fluid particle-wave field and a simple “Tune waves” panel. Keeps the signup and install-prompt actions while improving visuals and performance.

  • New Features
    • Added FluidSignalField WebGL2 canvas with a GPU particle wave; adaptive grid and DPR-aware sizing.
    • Live controls: amplitude, wave density, speed, choppiness, particle size, brightness; pause/play; reset.
    • Performance/accessibility: respects prefers-reduced-motion, stops rendering offscreen, efficient resize handling.
    • Updated Landing hero layout; preserved “Get started” and “Copy install prompt” CTAs.

Written for commit a4572b9. Summary will update on new commits.

Review in cubic

@arseniycodes

Copy link
Copy Markdown
Contributor Author

@codex review

@superlog-app superlog-app Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Observability review

  • 1 warning

0,
0,
(far + near) * range,
-1,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logs · warning — Upgrade WebGL2 init failure from console.warn to console.error

Change console.warn to console.error so that error-monitoring pipelines (e.g. Sentry, Datadog RUM) that filter on severity correctly capture the shader compilation or program-link failure and alert on-call engineers when the hero canvas silently goes dark for all users on a given browser/GPU combination.

Suggested change
-1,
console.error("Unable to render the landing-page signal field.", error);

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a4572b9da0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

if (visible && !reducedMotion && !settingsRef.current.paused) {
animationFrame = window.requestAnimationFrame(animate);
} else {
draw(3600);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the current wave phase when pausing

When the user clicks Pause, restart() replaces the currently displayed frame with the hard-coded 3.6-second frame rather than freezing the animation where it was; after the page has run for more than a few seconds this produces an immediate backward jump, and Play then jumps forward to the current RAF timestamp. Track the accumulated simulation time and render that value while paused so the advertised pause control actually freezes and resumes the field.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant