MatrixRain

MatrixRain

The Matrix's digital rain, brought into your room.

Wave your hand through it, and it splashes like water

The Matrix's digital rain, brought into your room.

Wave your hand through it, and it splashes like water

THE IDEA

It started in my terminal. I'd run cmatrix and watch the green code rain from The Matrix pour down my screen; it was so cool.


One day I caught myself wondering: what if it didn't stay on the screen? What if the rain fell around me — and I could reach out and catch it, the way you'd catch real rain in your hand?


That question was the whole project. So I brought the digital rain into Apple Vision Pro.

DEVELOP TOOLS

DEVELOP TOOLS

  • Xcode(SwiftUI)

  • Reality Kit

  • AR Kit HandTracking

  • Reality Composer Pro

  • Apple Vision Pro

The Matrix's digital rain, brought into your room.

Wave your hand through it, and it splashes like water

The Matrix's digital rain, brought into your room.

Wave your hand through it, and it splashes like water

System architecture

System architecture

The Challenge, Part 1 — Filling the room with rain

The Challenge, Part 1 — Filling the room with rain

The Challenge, Part 1 — Filling the room with rain

Before anything could be touched, the rain had to exist; falling all around the room, not just floating on a screen.

I started by generating the characters themselves. First, I wrote a Python script that procedurally builds a sprite sheet of random characters with controlled spacing between columns.

From there, I mapped the sprite sheet onto planes and drove the falling animation with a custom Shader Graph pipeline I built node-by-node in Reality Composer Pro. It was my first time in the tool, so I leaned on AI to move quickly — learning the node system and iterating through shader variations far faster than I could have alone. The result: dense, continuous digital rain that fills the space on the GPU, cheaply enough to cover an entire room.

The Challenge, Part 2 — Making the rain touchable

The Challenge, Part 2 — Making the rain touchable

The Challenge, Part 2 — Making the rain touchable

The room was full of rain. But it was pure GPU animation, with nothing real to touch. My hand would pass straight through it.

So I thought, what if I turn every character into a real object? Then the rain could hit things in the room and feel real. But that would mean thousands of physics objects falling at once, and the frame rate would just tank. So I had to let that idea go.

The way I finally solved it was to split the rain in two. Most of the rain stays as shader animation. But the characters near your hands become real RealityKit entities, with mass and collision. Then I put an invisible box on my hand. When a raindrop hits that box, it collides, the character disappears, and a little splash of particles spawns right where it hits. So it looks just like rain landing on your hand and splashing away.

I really loved this project. It was so much fun to make.