A real phone OS, booting in a browser tab.
Glasshouse runs an unmodified 2017-era phone operating system on an ARM64 processor emulated in WebAssembly. You bring your device's restore image; your browser builds the disk and keeps it. Nothing is uploaded, and nothing proprietary is hosted here.
Desktop Chrome with 64-bit WebAssembly memory, about 12 GB of free browser storage and a fast machine. The first boot takes many minutes: bring a cup of tea.
Checks run in this tab and go nowhere. Choose a layer to read about it.
Four layers of glass, one phone inside.
Everything runs in this tab. The server only hands out static files: the emulator, the kernel and this page. The operating system itself comes from a file you already have.
1The emulator
QEMU, compiled to WebAssembly, with a JIT that turns ARM64 instructions into wasm as the guest runs. It emulates a Cortex-A76 with 3 GB of RAM, which is why it needs 64-bit WebAssembly memory.
2The kernel
A custom arm64 kernel with small drivers for the emulator's disk, console, touch input and frame buffer. It's the only system code this site serves.
3Your restore image
You download your device's restore image yourself and pick the file. The page reads it where it is; it isn't uploaded, and no copy lives on this server.
4The disk, in your browser
A worker unpacks the image and builds the system disk in your browser's private file storage (OPFS). It stays there for the next boot until you delete it.
Measured on our development builds: the instruction rate is a simple guest loop under Node 24, and the disk figures come from the restore image we test with (allocated size, with compression). Your machine and your image will differ.
What you need, honestly.
It's a whole phone running on a pretend processor. That costs memory, disk and time. The preflight at the top checks the first two for you.
| You need | Why |
|---|---|
| Desktop Chrome, current | 64-bit WebAssembly memory (memory64), private file storage (OPFS) and a fast wasm engine. Other browsers aren't there yet. |
| About 12 GB free browser storage | The disk takes about 8.3 GiB, plus room to build it. |
| A fast machine | Every guest instruction is translated twice: ARM64 to wasm, then wasm to your CPU. More cores and memory help; 8 GB of RAM is the floor. |
| Your device's restore image | About 6.2 GB, downloaded by you. The app tells you which build it expects. |
| Patience | The first boot takes many minutes. Keep the tab open and in front; later boots reuse the disk. |
What works, and what doesn't yet.
A research project, reported straight. This list moves as the work does.
| Part | Status | Notes |
|---|---|---|
| Building the disk from a restore image | Works | Placeholder: native and wasm builds produce clean images. |
| Kernel boot and console | Partly | Placeholder: boots with a live kernel log in the app. |
| Lock screen and home screen | In progress | Placeholder: not confirmed in the browser yet. |
| Touch, home and side buttons | Partly | Placeholder: mouse as touch, keyboard shortcuts. |
| Disk kept between visits | Works | Placeholder: stays in OPFS until you delete it. |
| Speed | Slow | Placeholder: one emulated core; many minutes to first boot. |
| Several cores, snapshots | Not yet | Placeholder: planned. |
| Sound, network, camera | Not yet | Placeholder: not emulated. |
Placeholder list for the launch page. Each row will say what was tested, on which machine and when.
Straight answers.
- Is anything uploaded?
- No. The restore image is read inside the tab and the disk is written to your browser's own storage. There's no account and no server-side processing.
- Why is it so slow?
- Your computer is pretending to be a phone, in a language your browser is pretending to be a processor in. It's faster than it sounds, and slower than you'd like.
- Why only desktop Chrome?
- It needs 64-bit WebAssembly memory, OPFS and a lot of RAM in one tab. Today that's desktop Chrome. Phones and tablets don't have the memory to spare.
- Where does the disk live, and how do I remove it?
- In this site's private file storage in your browser. Use Delete disk in the app, or clear this site's data in Chrome's settings.
- Why do I have to bring the restore image?
- Because it isn't ours to hand out. You download it for your own device; Glasshouse only reads it.
- Who makes this?
- An independent research project. It isn't affiliated with, or endorsed by, the maker of the operating system or the device.
Launch Glasshouse.
Pick your restore image, let the disk build, then power on. Keep the tab in front and watch the kernel log scroll by while it boots.
- 1Download your device's restore image
- 2Choose it in the app; the disk builds locally
- 3Power on, and give it a few minutes
Desktop Chrome, about 12 GB free browser storage.