Bilas Try it live
Web · PWA · Android · iOSlive

A quiet coin laundry.

A calm, first-person 3D coin laundromat with synthesized ASMR: no score, no timer pressure, just the sounds and small gestures of doing laundry.

Web · PWA · Android · iOS
bilas · live demolive demo
Bilas screenshot
4platforms: Web, PWA, Android, iOS
MITopen source licence
Why it exists

Laundry, slowly.

Feed a note into the changer, load the washer shirt by shirt, pour detergent, drop coins in the slot and watch the water, foam, drain and spin.

Every sound is synthesized live with Web Audio and placed in the room: about 30 effects plus machine loops, rain and room tone.

What's inside

Inside the laundromat.

Change

Feed a note into the changer and scoop the coins from the tray.

Wash

Open the door, drag shirts from the basket into the drum, hold the bottle over the drawer to pour detergent, drag coins into the slot and press start.

Dry

Drag a coin into the dryer, tumble, then pull the lint screen and peel the felt off.

Hang

Peg wet shirts on the line by the window; the drips slow as they dry.

Fold

Smooth the wrinkles by dragging, fold sleeve, sleeve, bottom up, and stack.

Sit

Stay a while and listen to other customers' machines and the rain.

Hands, not buttons

Drag a shirt into the drum and let go, or hold the bottle to pour; a half pour stays half full. Taps still work for every step.

Every sound made live

About 30 effects plus machine loops, rain and room tone, synthesized with Web Audio. On iPhone it plays even with the silent switch on.

Two moods, two languages

Night with rain or morning light, in English or Bahasa Indonesia, with cycles from 45 seconds to 3 minutes.

Works offline

Installable web app with a service worker, plus a signed Android APK and a native iOS app built from the same files.

How it works

One load, start to finish.

  1. 1

    Step inside

    Open juw12.github.io/bilas and tap Step inside.

  2. 2

    Wash a load

    Change a note for coins, load the washer shirt by shirt and press start.

  3. 3

    Dry, hang, fold

    Tumble dry, peg the shirts by the window, then smooth and fold them into a stack.

Good to know

Honest limits.

Straight from the README, so you know what you're getting before you try it.

  • Needs WebGL; shows a friendly message if it is unavailable.
  • Not on the App Store or Google Play; the iOS app is an unsigned sideload build.
Under the hood

How it's built.

Built with

Language
JavaScriptHTML/CSS
Platform
PWAOffline service worker
Mobile
Capacitor
Testing
Automated tests
UI
Multi-language UI

88 files in the repo · last updated 8 Nov 2026.

Browse the code
Questions

Good questions.

What does it run on?

Web, PWA, Android, iOS. You can try it in the browser with nothing to install.

Where do I start?

Step inside: Open juw12.github.io/bilas and tap Step inside. Headphones help.

Where does my data go?

No accounts, no analytics and no network calls: everything, including the sound, is generated in your browser.

What doesn't it do yet?

Needs WebGL; shows a friendly message if it is unavailable. Not on the App Store or Google Play; the iOS app is an unsigned sideload build.

Is it finished?

Not yet: it's marked “live” and still changing. The README always has the current state.

Is it free?

The source is public on GitHub under the MIT licence.

Who made it?

Juwen Lie, an R&D mechanical engineer in Batam, Indonesia, as an independent personal project.

Keep exploring

More from the same workbench.

Step inside.

A quiet coin laundry.