Venus Animation
Venus Animation is a space animation in the UI HUB space & planets collection. A single Canvas 2D software renderer — no WebGL, no libraries.
The component is driven by 2 documented props (className, style), so colours, intensity, timing and density can be tuned from the call site instead of being hard-coded.
Implementation notes: Canvas 2D context (no WebGL, no three.js/gsap); seeded LCG RNG + 3D value noise with fbm, imul-hash H3, plus an ll() lat/lon -> unit-vector helper; equirectangular texture generator (async, yielding every 16 rows, cancellable): layered warped fbm + cubed ridge + low-frequency term, angular-radius highland ellipses, radar speckle, and radial-profile volcanoes/impact craters/shield domes.
Preview the space animation in the browser above, copy the source, and paste it into your project. Space & Planets components in UI HUB are grouped by category so you can compare effects side by side before choosing one.
What is Venus Animation?
A fully procedural, endlessly rotating Venus rendered entirely in Canvas 2D — no WebGL, no libraries. A seeded CPU pass forges a 1024x512 equirectangular surface (dark umber volcanic plains, the orange-gold highlands of Ishtar Terra / Lakshmi Planum, Maxwell Montes, the Aphrodite Terra spans, Thetis Regio, Alpha / Beta / Atla Regio and Artemis, plus named volcanoes and craters — Maat Mons, Sapas Mons, Ozza Mons, Sif Mons, Rhea Mons, Theia Mons, Idunn Mons, the Mead and Cleopatra craters — over scattered impact craters, shield domes and a fine radar speckle). A per-pixel software sphere pass maps the texture with bilinear sampling, a single directional sun, a soft terminator and a thin atmospheric limb glow. Drag in any direction to turn it, flick for momentum, wheel or two-finger pinch to zoom 0.5x-2.2x, +/- keys or the on-screen buttons to zoom, and press i to probe the surface for its real Magellan geography.
Venus Animation at a glance
- Category
- Space & Planets
- Pricing
- Pro component
- Libraries
- React
- Styling
- Tailwind CSS
- Configurable props
- 2
- AI prompts
- Ready for Advance, Antigravity, Claude Code, Cursor, Lovable
How Venus Animation works
A single Canvas 2D software renderer — no WebGL, no libraries. A seeded CPU pass builds a 1024x512 equirectangular surface: dark umber/orange/gold/pale-yellow volcanic plains driven by layered value-noise fbm (warped fbm, a cubed ridge term and a low-frequency term), real Magellan highlands drawn as angular-radius ellipses on the sphere (Lakshmi Planum / Ishtar Terra, Maxwell Montes, the Aphrodite Terra spans, Thetis Regio, Alpha / Beta / Atla Regio, Artemis), a fine radar speckle, plus named volcanoes and craters stamped as radial profiles (Maat Mons, Sapas Mons, Ozza Mons, Sif Mons, Rhea Mons, Theia Mons, Idunn Mons, the Mead and Cleopatra craters), 80 random impact craters and 45 shield domes. The colours come from a 256-entry ramp LUT (dark umber -> orange -> gold -> pale yellow). buildMap pre-computes per-pixel sphere tables (u/v, latitude, sun shade, rim glow, alpha coverage) for the current tilt; retilt() refreshes them when the camera tilts. renderSphere does a bilinear texture fetch per disc pixel and applies the shade + orange atmospheric limb. drawFrame paints the near-black sky, twinkling stars, a radial orange glow, then blits the disc scaled by zoom. Drag in any direction to turn it with a flick (yaw += momentum, decaying 0.94/frame) and vertical tilt clamped to +/-1.45 rad, wheel or two-finger pinch zooms 0.5x-2.2x, +/- keys or the on-screen buttons zoom, and hovering + i/e toggles an inspect probe that reports lat/lon and the nearest named feature/highland. prefers-reduced-motion stops the auto-spin (still draggable). The whole loop is gated by an IntersectionObserver and the Page Visibility API, the one-time texture build is deferred and yields until on screen, and the raster is capped at ~40fps.
Technical information for Venus Animation
| Category | Space & Planets |
|---|---|
| Libraries | React |
| Styling | Tailwind CSS |
| Rendering | HTML canvas, requestAnimationFrame |
| State change | a loading overlay ('Forming Venus surface…') counting through the texture build, then Venus spinning right-to-left under a black sky with a faint orange glow and a soft atmospheric limb to the user dragging the planet in any direction with momentum, zooming 0.5x-2.2x with the wheel / pinch / buttons, or hovering and pressing i to probe the surface for its real Venusian geography |
| Props | 2 configurable |
| Usage example | Not published yet |
What Venus Animation requires
- Canvas 2D context (no WebGL, no three.js/gsap)
- seeded LCG RNG + 3D value noise with fbm, imul-hash H3, plus an ll() lat/lon -> unit-vector helper
- equirectangular texture generator (async, yielding every 16 rows, cancellable): layered warped fbm + cubed ridge + low-frequency term, angular-radius highland ellipses, radar speckle, and radial-profile volcanoes/impact craters/shield domes
- 256-entry colour-ramp LUT (dark umber -> orange -> gold -> pale yellow)
- per-pixel software sphere mapping tables (u, v, latitude, sun shade, rim glow, alpha coverage) built once per tilt; retilt() refreshes on tilt change; renderSphere does a bilinear fetch + shade + orange limb glow
- a fixed 1024x512 texture blitted onto a container-sized canvas with a twinkling starfield and a radial orange glow
- trackball drag (yaw + tilt, tilt clamped +/-1.45) with a 0.94/frame flick, pointer-capture, wheel + two-finger pinch zoom clamped 0.5x-2.2x, +/- keys, on-screen buttons
- render disc buffer sized to the container's shorter side (capped at 560px) on an rAF-throttled ResizeObserver; pointer maths use getBoundingClientRect
- prefers-reduced-motion matchMedia (stops the auto-spin; still draggable)
- inspect probe (hover + i / Escape) that maps the hovered disc pixel back to lat/lon and the nearest named feature or highland
- IntersectionObserver + Page Visibility gate: rendering pauses off-screen or when the tab is hidden, and the one-time texture build is deferred and paused until the box is visible; the raster is capped at ~40fps
- full teardown on unmount (cancel rAFs, disconnect ResizeObserver + IntersectionObserver, clear the loading timer, remove listeners, abort an in-flight build)
Venus Animation questions
What is Venus Animation?
A fully procedural, endlessly rotating Venus rendered entirely in Canvas 2D — no WebGL, no libraries. A seeded CPU pass forges a 1024x512 equirectangular surface (dark umber volcanic plains, the orange-gold highlands of Ishtar Terra / Lakshmi Planum, Maxwell Montes, the Aphrodite Terra spans, Thetis Regio, Alpha / Beta / Atla Regio and Artemis, plus named volcanoes and craters — Maat Mons, Sapas Mons, Ozza Mons, Sif Mons, Rhea Mons, Theia Mons, Idunn Mons, the Mead and Cleopatra craters — over scattered impact craters, shield domes and a fine radar speckle). A per-pixel software sphere pass maps the texture with bilinear sampling, a single directional sun, a soft terminator and a thin atmospheric limb glow. Drag in any direction to turn it, flick for momentum, wheel or two-finger pinch to zoom 0.5x-2.2x, +/- keys or the on-screen buttons to zoom, and press i to probe the surface for its real Magellan geography.
How does Venus Animation work?
A single Canvas 2D software renderer — no WebGL, no libraries. A seeded CPU pass builds a 1024x512 equirectangular surface: dark umber/orange/gold/pale-yellow volcanic plains driven by layered value-noise fbm (warped fbm, a cubed ridge term and a low-frequency term), real Magellan highlands drawn as angular-radius ellipses on the sphere (Lakshmi Planum / Ishtar Terra, Maxwell Montes, the Aphrodite Terra spans, Thetis Regio, Alpha / Beta / Atla Regio, Artemis), a fine radar speckle, plus named volcanoes and craters stamped as radial profiles (Maat Mons, Sapas Mons, Ozza Mons, Sif Mons, Rhea Mons, Theia Mons, Idunn Mons, the Mead and Cleopatra craters), 80 random impact craters and 45 shield domes. The colours come from a 256-entry ramp LUT (dark umber -> orange -> gold -> pale yellow). buildMap pre-computes per-pixel sphere tables (u/v, latitude, sun shade, rim glow, alpha coverage) for the current tilt; retilt() refreshes them when the camera tilts. renderSphere does a bilinear texture fetch per disc pixel and applies the shade + orange atmospheric limb. drawFrame paints the near-black sky, twinkling stars, a radial orange glow, then blits the disc scaled by zoom. Drag in any direction to turn it with a flick (yaw += momentum, decaying 0.94/frame) and vertical tilt clamped to +/-1.45 rad, wheel or two-finger pinch zooms 0.5x-2.2x, +/- keys or the on-screen buttons zoom, and hovering + i/e toggles an inspect probe that reports lat/lon and the nearest named feature/highland. prefers-reduced-motion stops the auto-spin (still draggable). The whole loop is gated by an IntersectionObserver and the Page Visibility API, the one-time texture build is deferred and yields until on screen, and the raster is capped at ~40fps.
Which category does Venus Animation belong to?
Venus Animation is listed under Space & Planets in the UI HUB catalog. Celestial components that render real planets, moons and orbital scenes in the browser: procedurally textured spheres, rotating bodies and interactive space backdrops. Each one is built as a self-contained React component with documented props, so you can drop a rotating moon or planet straight into a hero, a section or a full-page intro. Preview it live, then copy the exact source.
What does the className prop do in Venus Animation?
Optional class applied to the root container. It defaults to "".
What does the style prop do in Venus Animation?
Optional inline styles for the root container. It defaults to {}.
Is Venus Animation free to use?
Venus Animation is a Pro component on UI HUB. Pro components are labelled in the catalog and come with a documented props table on the component page.
Which libraries does Venus Animation use?
Venus Animation uses React and is styled with Tailwind CSS.
What does Venus Animation need to run?
Venus Animation needs Canvas 2D context (no WebGL, no three.js/gsap), seeded LCG RNG + 3D value noise with fbm, imul-hash H3, plus an ll() lat/lon -> unit-vector helper, equirectangular texture generator (async, yielding every 16 rows, cancellable): layered warped fbm + cubed ridge + low-frequency term, angular-radius highland ellipses, radar speckle, and radial-profile volcanoes/impact craters/shield domes and 256-entry colour-ramp LUT (dark umber -> orange -> gold -> pale yellow).