Inspiration
We spend our entire lives surrounded by invisible data. Every second, there is a massive ocean of information flowing through the air and the wires under our feet, but we never really get to see it. I usually just stare at boring spreadsheets or 2D graphs that tell me what is happening, but never capture how it feels.
I wanted to change that. Drawing inspiration from the anime Serial Experiments Lain and the Netrunner interfaces in Cyberpunk 2077, I asked myself a simple question: What if I could actually fly through my Wi-Fi card? I built Navi to turn abstract network administration into a place I can visit.
What it does
Navi is a flight simulator for your network interface. It captures the live data flowing in and out of your computer and uses it to generate an infinite 3D world in real time.
- See the traffic: Every packet that leaves my computer is rendered as a high-velocity projectile. I can see TCP handshakes as cyan streams and UDP packets as orange flares flying past me.
- Touch the data: The walls are covered in "Digital Rain" that isn't just a loop. It is generated from the actual hexadecimal payloads of my traffic.
- Fight the system: Running processes appear as satellites orbiting the core. If a program is stuck, I don't need Task Manager. I can just fly up to it and destroy it to kill the process.
- Explore the deep: The further I fly, the stranger it gets. I start on a clean grid, move through a dense city of local data, and eventually hit the "Blackwall," a distorted firewall boundary that tries to push me back.
How I built it
I decided to build my own engine from scratch using Python 3.10 and PyOpenGL instead of using a pre-made game engine. I wanted full control over how the data controlled the visuals.
- The Sniffer: I used Scapy and Npcap in a separate background thread to capture packets without freezing the graphics.
- The Sensor: To see local Wi-Fi networks, I had to hook directly into native Windows WLAN APIs using
ctypes. This lets me visualize signal strength as physical towers in the tunnel. - The Visuals: I wrote custom GLSL shaders to create the chromatic aberration and CRT distortion effects seen in the deeper levels.
- The Ghost: I used OpenCV to grab the webcam feed and apply edge detection. This projects a "ghost" reflection of my face into the game world, putting me inside the machine.
Challenges I ran into
The biggest headache was definitely performance. Trying to pipe thousands of live packets from the sniffer thread into the OpenGL render loop caused a lot of micro-stutters at first. I had to implement a thread-safe buffer to smooth it out.
Also, working with the native Windows APIs was tough. The documentation for ctypes and system handles is sparse, so getting the Wi-Fi scanner to work without crashing the app took a lot of trial and error. On top of that, I had to brush up on my linear algebra to get the procedural generation for the infinite tunnel working correctly.
Accomplishments that I'm proud of
- It's real data: The coolest part is that the "Digital Rain" is actually my data. If I stop browsing the web, the rain stops falling. It feels alive.
- The vibe: I managed to nail that unstable, glitchy Cyberpunk atmosphere using custom shaders and audio effects. It genuinely feels like I am somewhere I shouldn't be.
- Kinetic task management: There is something incredibly satisfying about "shooting" a frozen program to close it instead of just clicking "End Task."
What I learned
I learned a ton about low-level networking, especially how TCP and UDP headers are structured and how to capture them in promiscuous mode. I also learned how to build a 3D graphics pipeline from scratch, managing everything from Vertex Buffer Objects to culling logic without relying on a heavy engine like Unity. It taught me how to bridge the gap between serious system tools and interactive art.
What's next for Navi
I think this would be amazing in VR. The infinite tunnel structure is perfect for it, so I want to port the camera logic to OpenVR. I also want to add multiplayer support so that multiple "Netrunners" can jack into the same server, see each other's ghosts, and work together to secure the network.
Note
The previous submissions to TecaHacks has been removed/hidden by the organizers per my request after I realized in the rules of this hackathon that there should be exclusive submission unless if it's a different idea.
Log in or sign up for Devpost to join the conversation.