Ma

I spend my days making systems that never let you make a mistake. This one has no wrong move.

A garden of seven surfaces, each its own physics. Rake sand, ripple water, bleed ink, tread snow, part the fog, feed the koi, map the stars. Turn the season and slide the sun; everything re-tints and re-lights. No score, no streak, no goal — the opposite register of my day work.

Role · Design + engineering, solo Medium · Single-file Canvas 2D Register · Warm · tactile · deliberately calm Year · 2026

A design study, not a product. Ma runs entirely in your browser. Nothing is collected, no account, no analytics on the garden itself, no server. It is craft made to be felt, not measured — and it is deliberately engineered to the same standard as the regulated-finance work in the rest of this portfolio.

The inversion

Restraint is my whole career. This is restraint with the pressure taken off.

For nearly five years I have designed regulated-finance interfaces — trading screens, risk warnings, suitability gates — where every default carries a consequence and the highest compliment is that an auditor can follow the logic line by line. The discipline underneath that work is not compliance. It is restraint: knowing what to leave out, how to weight a hierarchy, when silence is the design.

A karesansui — a Japanese dry garden — is the same discipline with nothing at stake. Sand for water, stone for mountain, a rake for a current that will never run. No data, no goal, no right answer. I built Ma to prove something a portfolio of dashboards can't say out loud: the same hands that make scrutiny legible can make stillness.

Same control of rhythm and hierarchy. Pointed at calm instead of compliance. — the one line I'd put on the wall
The thing itself

Rake it. It's already running.

Drag across the sand below. Switch the surface to water and touch it — the rings spread and cross. Drop a stone, drag it, double-click to remove it, or swap it for another shape. Move the light. When it feels like yours, keep it as a link.

edwson.com / Ma Live

Best on a wide screen with sound on. Open it full-screen ↗

Seven gardens

Seven surfaces. Each one its own physics.

Switch surface from the dock and the whole world changes — the material, the light, the sound, the way it answers your hand. Across all seven you can turn the season (春夏秋冬) and slide the sun from dawn to dusk, and breathe with an optional guide.

Sand

Rake a live heightfield into grooves that cast real shadow; place stones and the sand ripples around them in concentric rings — drag, remove, or swap between five carved variants.

Water

Touch still water and a genuine wave simulation spreads your ripples, reflects them off the banks, and lets them cross and interfere before settling.

Ink

One brush on white paper. A reaction-diffusion field lets the ink bleed and feather at the edges, and run dry to flying-white when your hand moves fast.

Snow

Tread fresh snow and your steps press deep with a raised rim; move the low winter light across it — and the prints soften, as if quietly covered.

Mist

Part the drifting fog with your hand and it clears a soft trail — then, being fog, it creeps back in. A flow-field you can never quite hold.

Koi

A pond with a school of koi. They flock, scatter from your touch, and come when you feed them — each dropped morsel dimpling the water.

Stars

A night sky. Place stars where you like and drag between them to draw your own constellations; every so often a meteor crosses.

How the sand thinks

A stone doesn't sit on the sand. It bends it.

This is the core mechanic, isolated. The sand is a height field; the stone imprints concentric rings into it; and every frame the surface is lit by a movable sun from its own slope. Drag the stone, move the light — this is the real rendering engine from the garden, in miniature.

Drag the stone · move the light · watch the shadows re-cast

Anatomy

Soft on the surface. Engineered underneath.

The whole thing is one self-contained HTML file with no framework and no build step — the same constraints I hold my production work to.

Seven physics engines rendering

One canvas, seven behaviours: heightfield sand and snow shaded per-cell from their own slope; a damped two-buffer wave solver for water and the koi pond; a reaction-diffusion field for ink; a flow-field for mist; a boids flock for the koi; and a particle sky for the stars — most lit by the same movable sun via surface normals, and all re-tinted by a season dial.

Seeded reproducibility share

Every garden is a seed plus a compact record of stones and strokes, encoded into the URL. Open the link and the garden rebuilds — the same reproducible-from-seed pattern as my open-source work.

Synthesised ambience web audio

No audio files. Wind is filtered noise; the rake is band-passed hiss gated by your hand's speed; a stone rings a two-partial bell. All generated live, muted until you ask.

The craft contract a11y

Reduced-motion is a real path, not an afterthought; the canvas is keyboard-reachable; device-pixel-ratio is capped for performance. The same non-negotiables as every component I ship.

A position, not an oversight

The features I left out are the design.

My day job includes measuring engagement funnels and the cost of attention. So the absences here are deliberate — a designer stating, on the record, what this is not for.

No

score or streak

Nothing to optimise, nothing to lose by leaving. A garden is finished the moment you feel it is.

No

notification

It will never ask you to come back. If you return, it's because you wanted the quiet, not because it pulled you.

No

data collected

The garden watches nothing. What you rake is yours, held in your browser and in a link only you choose to share.

Honest by construction

What it evidences — and what it doesn't.

What it evidences

  • Aesthetic range beyond dense institutional work — warm, tactile, gallery-grade.
  • Canvas / real-time-rendering and motion craft, engineered to a production standard.
  • Sound design and a genuine reduced-motion + keyboard accessibility path.
  • A clear design position: attention treated as something to protect, not harvest.

What it does not claim

  • It is not a shipped product, a business, or a validated wellness intervention.
  • The physics is artistic, not simulation-accurate — believable, not literal.
  • It is not a substitute for real meditation or clinical care.
  • Very full gardens share their essence, not every last grain — the URL is finite.

Take a minute. Rake something.

The garden is always open, always empty, always waiting to be nothing in particular.