Art Direction

The brand's signature graphic language: particle clouds. One material — brand-role points displaced and sized by a shared noise field — applied to a family of forms. The hero sphere is the headline; these are the rest of the set.

import from src/components/heros/HeroParticles.astro · src/components/sections/ParticleStream.astro

One material, many forms

Every particle graphic on the site is built the same way, so they read as one family rather than a pile of effects. Points are coloured from the brand roles — amber (--primary) at the top easing to crimson (--accent) at the bottom — and a single simplex-noise field both nudges each point off its lattice and sets its size. Change the palette and every shape follows, because none of them names a colour.

The hero sphere is this treatment on an icosahedron; the ember river is the same lattice unfolded flat and set flowing. The primitives below are the rest of the vocabulary — reach for one when a section needs a backdrop, not a new idea.

The primitives

Sphere Geodesic
Cube Box surface
Box Wireframe edges
Tetrahedron Tetrahedron
Octahedron Octahedron
Dodecahedron Dodecahedron
Icosahedron Icosahedron
Square Pyramid Square pyramid
Cylinder Cylinder
Cone Cone
Torus Torus
Torus Knot Torus knot
Wave Displaced plane
Static Field Frozen point cloud

How they differ

  • Solids (the platonic set, cube, cylinder, cone, pyramid, torus, knot) hold a fixed silhouette and turn slowly. The noise there drives only point size — a live shimmer across a rigid form, never a wobble that melts it.
  • Box samples points along the wireframe edges only, for a lighter, structural read.
  • Wave is the lattice as a flat sheet, the noise travelling through it as a swell — the closest cousin to the ember river.
  • Static Field is the exception that proves the rule: a frozen cloud, no time term, sizes fixed. Use it when you want the texture without the motion.

Rules

  • Particles are always backdrop, never content. They sit behind, are aria-hidden, and take no pointer or scroll events. Nothing on the page depends on them rendering.
  • Colour comes from the roles, never a literal. A specimen that hard-codes amber has broken the one rule that lets the whole set re-skin at once.
  • WebGL is the site's one heavy dependency, and it is opt-in per surface. A marketing section adds a particle backdrop deliberately, knowing the cost; the rest stay zero-JS.
  • Everything pauses off-screen and collapses to a single still frame under prefers-reduced-motion. Ambient motion is never load-bearing.