ഇvana sajan pallivathukkal

installable pwa · self-initiated

soundmap

a daily sound journal. record one moment; it becomes a coloured artifact on a calendar.

role
design + build
context
self-initiated · daily sound journal
year
2026

about

once a day you record about thirty seconds. the app reads the sound and renders it as a two-colour gradient drawn from traditional japanese hues, and that artifact takes its place on a month calendar.

the colours are not decoration. they are read from the recording, and the same soundscape always resolves to the same artifact.

credits

design, build, sound analysis
evana sajan
stack
react · web audio · indexeddb
status
installable pwa

the month is already seeded, so tap any coloured day to replay it and watch the gradient re-reveal in step with the audio. recording your own asks for the microphone; decline it and everything else still works.

the real build, running on device. nothing you record here leaves the browser, because there is nowhere for it to go.
one day's finished artifact with its metadata

product thesis

a photo of a moment is easy to keep. a recording of one is awkward to go back to. soundmap is an attempt at a sound you would actually return to, without it turning into a feed.

why this one is different

every other audio journal is a list of files you will never open.

this one gives the day a face before it gives you a filename.

you can recognise a tuesday in march by its colour a year later, which is the whole product.

the systems thinking

read

three things are measured off the recording: loudness, instability and warmth. nothing else.

map

loudness sets where the two colours meet, instability sets how softly they blend, warmth nudges the temperature. the mapping is fixed.

store

audio and artifact both live in the browser's own indexeddb, on one device. there is no account and no server.

share

a shared link carries the visual signature only. the sound is not in it.

key design decisions

01

one recording a day, and no retakes

why

a feed of your own moments is not a keepsake, it is a chore. unlimited capture would turn this into a voice-memo app with a nicer skin.

tradeoff

you cannot fix a bad take, and a day you miss is gone. some people will find that annoying rather than meaningful.

result

the record button spends itself after a single take and rests until tomorrow. the scarcity is what makes the moment worth choosing.

02

make the colour deterministic

why

if the visual were random it would mean nothing, and the calendar would be wallpaper rather than a record.

tradeoff

a strict mapping is much harder to design than a pretty accident, and it rules out tuning a result that comes out ugly.

result

the same soundscape always resolves to the same artifact, so the colour is evidence rather than ornament.

03

keep it local by principle, not by default

why

an archive of your own days should not live on someone else's server, and a sync feature would quietly make it theirs.

tradeoff

no backup, no second device, and if you clear site data the year is gone.

result

the audio never leaves the browser. no sync, no accounts, one device, and the acoustic reading sits behind a quiet toggle for anyone who goes looking.

edge cases accounted for

a day you missed

empty days still render as days. the gaps in the record are part of the record, so a month you fell off does not quietly close up.

a microphone you never granted

the calendar, the artifacts and the replay all work without it. only the record button needs permission, and it is the last thing the app asks for rather than the first.

near-silence, and a fire alarm

the two ends of the loudness range are where a naive mapping produces mud or a flat block. the scale is clamped so a very quiet room and a very loud one still resolve to two distinguishable colours.

a link sent to someone else

a shared artifact is a visual signature with no audio behind it. the failure mode of a sharing feature on a private journal is that it shares the private part, so it does not carry it at all.