Skip to main content
Design System

Particle sphere

Fibonacci-distributed dots on a sphere with Y-axis rotation, optional center spokes, and a chart-aligned spectrum or single theme color. Presets cover the top-nav mark, hero scale, and placement patterns — save in development to update shipped JSON.

Particle sphere — Fibonacci-distributed dots on a sphere, rotating around the canvas center. Optional center spokes (radial lines from the sphere origin to each node, spectrum-colored when enabled). Same projection and Y-axis spin as the mesh variant; palette can follow the chart spectrum or a single theme color. Compact matches the 24px sidebar mark scaled to this canvas; Light → Dense add nodes so spacing thins step by step.

Interactive preview

Presets
  • Compact: Exact scaled replica of the 24px compact mark: 22 nodes, same Fibonacci layout, dot radius scaled from the sidebar reference.
  • Light: More nodes than Compact; dot size blends toward standard large spacing (gaps thin progressively).
  • Balanced: Default density (matches component defaults).
  • Heavy: Denser point cloud; standard large dot radius, higher node count.
  • Dense: Richest cloud; standard large dot radius, maximum preset count.
  • Sphere scale (spacing): multiplies the default 3D sphere radius (0.38× canvas size). Lower values pull dots together; higher values spread them on the silhouette (25200%).
  • Dot size: multiplies rendered particle radius only (does not change 3D layout). Range 20300%.
  • Nodes: slider adjusts point count live (4256); density buttons jump to Compact / Light / Balanced / Heavy / Dense counts.
  • Rotation speed: multiplies Y-axis spin (0% stops rotation; 300% is 3× the default rate for each canvas). Spectrum color drift is unchanged.
  • Preview zoom: scales the 500px canvas visually (1–100%) when editing Large or Placement; not saved. 32px / 24px presets (including Top nav logo) use a fixed on-screen scale for visibility.
  • Presets: choose which variant you are editing, then Save preset to persist (in dev, to particleSphereShippedPresets.json). The large display, production sizes, placement patterns, and Top nav logo (32px) (navLogo) — wired to NavbarParticleLogo in the header — use those shipped values (not unsaved slider edits).
  • Spectrum: chart + success sweep on dots. Single color: mesh point token from globals.css.
  • Center spokes: lines from the projected sphere center to each node (same rotation as dots). When spectrum is on, stroke colors match the dot sweep; otherwise they use the single dot color. Saved per preset with Save preset.
  • Spoke stroke: multiplies the default spoke line width (≈1px on large canvases, ≈0.75px on 24/32px marks). Independent of dot size. Range 20300%.

Large display (500px)

Full 500px canvas at 1:1 scale (no preview zoom). Uses the saved Large display (500px) preset — same source as hero-style graphics where the sphere is shown at full density.

Production sizes (reference)

Same pixel frames as the geodesic logo marks. The Top nav logo preset drives the main site header mark (32px); it is independent of the 32px header row preset. Rotation speed is scaled so perceived spin matches the 500px interactive preview (same radians/frame would look frozen on a tiny canvas). Chart + success spectrum and color drift scale the same way; optional center spokes use the same colors.

Top nav (32px)
32px header
24px compact

Placement patterns

Foreground (card tile) vs background (watermark). Canvas sizes are fixed (168px card, 340px hero). Values come from the Placement patterns preset (save from the dropdown above); node count scales from the 500px reference to each slot. Preview zoom only applies to the Large / Placement 500px preview.

Foreground · card

Intelligence module

Live preview using the saved Placement preset (scaled to this tile size).

size=168, pointCount=26 (from saved Placement preset, density-matched).

Background · hero / section

Section or hero title

Decorative layer: lower opacity so copy stays primary. Use pointer-events-none on the wrapper in production.

size=340 here; node count follows the saved Placement preset (scaled). Production full-bleed variants often use 720px canvas.