Landing Pagekimi-k3verified 21/21partial cross-check
Neural Drift
Procedural canvas constellation field with depth parallax and pointer repulsion
The exact prompt
DESIGN BRIEF — "Neural Drift"
Build a landing page for a fictional ML infrastructure company called "Cortex" whose hero
is a living constellation field rendered on canvas. The field is the product metaphor:
thousands of small signals, a few strong connections.
A. THE FIELD (canvas, full hero)
- 3 depth layers of particles: 90 far (radius 0.6px, alpha .18), 55 mid (1.1px, .34),
26 near (1.9px, .6). Total 171 nodes — enough to look dense, cheap enough to stay
at 60fps.
- Each particle has a position, a velocity (0.06–0.22 px/frame, scaled by layer depth)
and wraps around the edges. Nearer layers move faster and are brighter — that is the
parallax.
- Connections: for every pair within 118px, draw a 1px line whose alpha is
`(1 - d/118)^1.6 * 0.30 * layerAlpha`. Use a spatial hash grid of 118px cells so
this stays O(n) — do NOT write a naive O(n²) loop.
- Pointer repulsion: nodes within 150px of the pointer are pushed away with force
`(1 - d/150)^2 * 1.9`, integrated with a 0.06 lerp back to their base velocity so
they settle rather than explode.
- Add 3 "signal pulses": every 4-7 seconds a pulse travels from a random near-node
outward along its connections, brightening each edge to alpha .85 for 400ms and
briefly enlarging the nodes it passes. Implement with a queue, not recursion.
- Bloom: after drawing, composite a scaled-down copy of the canvas onto itself with
`globalAlpha = 0.28` and `filter: blur(6px)` via an offscreen canvas — a cheap
two-pass bloom. Cap devicePixelRatio at 2.
B. THE PAGE
- <header>: sticky, blurred, rgba(6,7,9,.6) + backdrop-filter blur(14px). Wordmark
"CORTEX" with a small canvas-free SVG glyph (three connected dots). Nav: "Platform",
"Docs", "Pricing", "Careers". Right: "Sign in" + a solid #34d399 pill "Deploy".
- Hero, over the field, centred, with a subtle dark scrim so text always wins:
* Eyebrow pill: "SOC 2 TYPE II · 99.99% UPTIME"
* <h1> clamp(2.6rem, 7.5vw, 5.6rem), weight 600, line-height 1.0,
letter-spacing -0.03em: "Every signal, / finally connected."
* Paragraph (max-width 540px): "Cortex ingests 40 billion events a day and turns
them into the two or three that actually matter."
* Two buttons: solid "Start free" and bordered "Read the docs →".
* A live-looking telemetry strip: three monospace figures in a glass card that
update every 1.4s with plausible jitter — "INGEST 41.2k/s",
"P99 18ms", "NODES 1,284" — each value ticking with a 200ms count-up.
Mark this card aria-live="off" so it does not spam screen readers.
- A features section (3 cards, grid → 1 col under 720px), each with an inline SVG
icon drawn with strokes only: "Streaming ingest", "Sub-20ms queries",
"Zero-copy pipelines". Cards lift 2px and gain a 1px #34d399/40 border on hover.
- A closing CTA band with an <h2> "Ship the pipeline, not the plumbing." and one
button.
- <footer>: four columns (Product / Developers / Company / Legal) plus a bottom row
with "© 2026 Cortex Systems, Inc." and a status pill with a pulsing green dot
reading "All systems normal".
C. SYSTEM
- Palette: base #060709, surface #0d1013, ink #eef2f4, muted rgba(238,242,244,.6),
accent #34d399, line rgba(255,255,255,.09).
- Fonts: system sans for UI; "JetBrains Mono" via Google Fonts for the telemetry
strip ONLY, with ui-monospace fallback.
D. REDUCED MOTION
- Render the field once, statically (no rAF loop, no pulses, no repulsion), and
disable the telemetry ticking. The page must not look empty.
---
TECHNICAL CONTRACT (non-negotiable):
1. Deliver ONE single file: a complete, valid `index.html`. No build step, no bundler,
no framework, no package install. It must open correctly by double-clicking the file
and also over http://.
2. Vanilla only. No React, no Tailwind CDN, no GSAP, no Three.js, no jQuery, no Lottie.
Plain HTML + CSS + modern JavaScript in <style> and <script> tags.
3. NO external media. No .mp4, no .webm, no .gif, no remote images, no base64 blobs of
photos. Every visual must be generated procedurally with CSS gradients, SVG, or
<canvas>. This keeps the page free to host and impossible to break with a dead link.
4. Google Fonts is the ONLY permitted network request, and it must be declared with a
<link rel="preconnect"> plus a system-font fallback stack so the page still looks
intentional offline. If you prefer, skip it and use a pure system stack.
5. Responsive and correct at 390x844 (phone), 768x1024 (tablet) and 1440x900 (desktop).
No horizontal scrollbar at any of those widths. Nothing may overflow its container.
6. Accessibility: exactly one <h1>; real <header>/<main>/<footer>/<nav> landmarks; every
interactive element is a <button> or <a> with an accessible name; visible :focus-visible
ring; body text contrast ratio >= 4.5:1 against its background.
7. Motion safety: wrap all continuous motion in
`@media (prefers-reduced-motion: reduce)` rules that reduce it to a static or
near-static state. The page must remain fully readable and usable with motion off.
8. Performance: no layout thrash. Cache DOM reads, batch writes inside a single
requestAnimationFrame loop, use transform/opacity for animation, and never allocate
inside the hot loop. Target 60fps on a 2019 laptop. Total file under 90 KB.
9. Runtime telemetry hook (used by the automated verifier — implement it exactly):
at the top of your script define
window.__DEMO__ = { name: '<slug>', ready: false, frames: 0, effects: [], errors: [] };
then set `ready = true` after the first paint of your main effect, increment
`frames` once per animation frame inside your rAF loop, and push the name of each
implemented effect into `effects`. Add a `window.addEventListener('error', ...)`
handler that pushes messages into `errors`. Do not rename these fields.
10. Zero console output in the happy path. No console.log left behind. No uncaught
exceptions, no failed network requests.
RESPONSE FORMAT:
Return ONLY the raw HTML inside a single ```html fenced code block. No explanation, no
preamble, no commentary before or after the fence. The file must be complete and
immediately runnable — never truncate, never write "// rest of code here".Acceptance criteria (14)
- canvas renders non-blank pixels
- a telemetry strip with monospace font exists
- at least 3 feature cards exist
- canvas pixel content changes between two samples 800ms apart
- window.__DEMO__.ready becomes true within 5s
- window.__DEMO__.frames advances (>= 20 frames in 1.2s)
- window.__DEMO__.errors is empty
- zero console errors and zero page errors
- zero failed network requests
- exactly one <h1> with non-empty text
- header, main, footer landmarks present
- no horizontal overflow at 390 / 768 / 1440 widths
- no horizontal overflow after 2s of animation
- prefers-reduced-motion: reduce leaves the page usable and errors empty