An interactive cultural curtain. Each country gets its own beaded doorway curtain — woven from its architecture, wisdom, language, and sound. Drag across the hanging strings to play them.
Live: https://niyamvora.github.io/chimes/
This is a rebuild, done purely for fun and learning. It's in no way meant to undermine the original work, creativity, or effort that went into the original — all credit for the concept, design, and craft belongs to the original creator (see Credits). The only goal here is to make something playful and accessible: to poke at the code, learn how the strings physics and synthesized sound work, and let anyone who's curious clone it and try new things. If you like it, please go support the original.
No build step, no backend — it's plain HTML, CSS, and ES modules.
git clone https://github.com/niyamvora/chimes.git
cd chimes
python3 -m http.server 8000
# open http://localhost:8000Any static server works (npx serve, php -S localhost:8000, VS Code Live Server, etc.). It has to be served over HTTP — opening index.html as a file:// won't load the ES modules.
Clone it and go. A few things worth knowing:
- Countries live in
countries.js— each entry has a roof image, selector icon, native/roman eyebrow text, title, and aclothstring of sayings that become the hanging characters. Add a country by adding an entry (plus aroof-<id>.pngandselector-<id>.png) and listing itsidinCOUNTRY_ORDER. - Sound is fully synthesized in
chimes.jsvia the Web Audio API — per-country timbres, no sample files. Sound is gesture-gated by the browser: it only starts once you interact (drag across the strings). - Contributions persist in
localStorage— no server involved. - The Play button opens a live settings panel (gravity, damping, chime volume, grid size) powered by tweakpane.
Push to a GitHub repo and turn on Pages (root of main):
gh repo create my-chimes --public --source=. --push
gh api -X POST /repos/<you>/my-chimes/pages -f "source[branch]=main" -f "source[path]=/"
# live at https://<you>.github.io/my-chimes/ in a minute or two- Original concept, design, and craft — Marina Budarina. This rebuild exists because the original is wonderful; all the ideas are hers.
- Strings physics — Liam Egan.
- Fonts: JetBrains Mono and PP Eiko.