Guard House Simulation
A 3D traffic simulation to stress-test our Visitor Management System before real guards do.
Why we built this
We have a VMS (Visitor Management System) that guards use on a tablet to check in visitors, scan plates, verify IDs, and open boom gates. It works fine when you click around in staging. But we never actually sat down and used it the way a guard does, with cars lining up, drivers getting impatient, and Grab riders showing up every 30 seconds.
We wanted to eat our own dog food. Not in a chill "let me test this feature" way, but more like "there are 8 cars waiting and a contractor is yelling at you" kind of way. So we built a simulation.
What it does
It's a 3D scene (Three.js) that looks like a guard house with 4 lanes, boom gates, and vehicles that keep coming. Residents go through ANPR lanes automatically. Visitors, delivery, contractors all go through the manual lane where you (the guard) have to check them in using the actual VMS app on a tablet.
Vehicles spawn with random profiles: plate numbers, driver names, IDs, vehicle types (car, van, motorcycle), categories (visitor, contractor, delivery like Grab/FoodPanda/Lalamove), and a destination house pulled from our real community data.
There's a simple API (GET /api/gate?action=in) that connects the VMS app to the simulation. When the guard taps "Open Gate" in the VMS, the boom gate in the simulation actually opens. The traffic keeps flowing. You can't pause.
What we're looking for
Basically anything that slows down or confuses the guard:
- Too many taps to check in a visitor
- House selection is clunky when you're in a rush (scrolling through 15 roads is not fun)
- Delivery riders who don't know which house they're going to
- What happens when a visitor leaves but was never checked in properly
- Searching for a visitor by plate number during checkout
- Buttons too small for quick tapping
- Guard opens the wrong gate by accident
- Queue builds up and the VMS gives no indication of urgency
- Tablet gets laggy under load
- Internet goes down or server is unreachable, what happens to the check in flow
- Can the guard still do their job when the system is offline
- Can the guard use the app with one hand while waving at drivers with the other
What we found so far
- Check in flow has too many steps for delivery riders who just need to drop something off and leave
- House selection needs search or filter, not just a list of roads
- Guards keep looking for a "quick check in" button that doesn't exist yet
- Plate number text needs to be way bigger
- No visual cue in the VMS when the queue is getting long
The point
You can't find these things by clicking around a staging app. You have to feel the pressure of cars lining up, the clock ticking, and the next driver already honking. That's what this simulation gives us. We run it, we use our own app under stress, we find the rough edges, and we fix them.