Conway's Game of Life over Fully Homomorphic Encryption
This demo runs Conway's Game of Life entirely on encrypted data using Fully Homomorphic Encryption (FHE). The server never sees the board state in plaintext — it computes the next generation directly on ciphertexts.
Encrypted checkpoints are large, so the client doesn't fetch every generation. Instead, it runs a local Game of Life simulation between checkpoints to maintain smooth animation. When a new checkpoint arrives, the local state snaps to the decrypted result.
Decryption uses CKKS (a leveled HE scheme for approximate arithmetic). The client attempts WebGPU NTT for GPU-accelerated number-theoretic transforms, falling back to a WASM implementation if WebGPU isn't available.
Drag patterns from the sidebar onto the board at any time. Your pattern is encrypted client-side and queued for the next server tick — the server merges it in without ever seeing which cells you placed.
Open the console from the topbar to see real-time logs of sync cycles, decryption times, encryption operations, and rendering stats. The goal: demonstrate that FHE can run interactive applications at practical speeds.
Built by 0xPARC