salman asif.
The Kinetic Garden

Find your way.

← FIELD NOTES / Build note

A 3D portfolio should still work without 3D.

The most important layer in an immersive experience is the one that loads before the canvas.

The first render is a product decision

The Kinetic Garden begins as an HTML page. The name, positioning, selected work, and CV navigation do not wait for a renderer. That order matters: the visitor came to understand the work, and the canvas is one way to explore it.

A WebGL context can fail. A GPU can be busy. A visitor may prefer reduced motion. None of those conditions should remove access to a case study.

A boundary around the experience

The public pages use Astro. A React island contains the interactive scene, and the scene module is loaded separately. The reading route uses the same content records but does not import the world.

const World = lazy(() => import('./World'));

// The semantic portfolio has already rendered.
<Suspense fallback={null}>
  <World quality={quality} preferences={preferences} />
</Suspense>

The scene has two failure boundaries: capability detection before initialization, and an error boundary around the mounted world. Context loss also needs handling after the renderer has started. A loading check alone does not cover it.

Make the alternate path useful

Reading mode is a deliberate route with a compact profile, experience, work, skills, and CV actions. It is not an error message. It should be the fastest path for someone who wants to evaluate the engineering rather than explore the sculpture.

What still needs measurement

A split bundle is an architectural choice, not proof of speed. Production verification needs to inspect the actual network waterfall, measure the critical route, and check representative devices. A beautiful desktop render is not a substitute for that evidence.

Connected systems

The Kinetic Garden ↗

Keep reading

Modernize the build. Keep the product steady. ↗
Make yourself at home

Your kind of garden.

15 ways to make it yours. Your choice stays with you.

Make an entrance

Choose how your next style arrives.

Applied when you choose a style. Instant with Motion off or reduced motion.

Visual style

Choose a look to transform the whole page. This panel closes so you can explore it.

Liquid Glass becomes frosted glass with motion off. Parallax adds depth as you scroll.

Prefer a straight read? Recruiter view
Light color palette

Your light and dark choices are saved separately.

Dark color palette

Your light and dark choices are saved separately.