Inspiration

Airport security is slow and annoying. We've all stood in that line while the belt stops because one bag needs a second look. Then we thought about the officer behind the screen, looking at X-rays for hours with a few seconds per bag. That's tiring, and tired people miss and slow things. So we built a tool that spots the risky bags for them, so the line moves faster and they can focus on the bags that matter.

What it does

  • Upload X-ray scans, and two AI models check each one for knives, blades and scissors.
  • Each scan becomes a bag on a 3D belt. Clear bags keep moving. Flagged bags get pushed aside: red for a likely threat, orange for "look closer."
  • Click a held bag to see a 3D view of the scan and the owner's info.
  • The officer makes the final call, and every decision is saved to History.

How we built it

  • AI: We trained a YOLO26s model on Roboflow and paired it with an open-source YOLOv8s model. We merge their results so one catches what the other misses.
  • In the browser: Both models run locally with onnxruntime-web, so scans never leave the computer.
  • 3D: three.js for the belt and the scan view.
  • App: React + TypeScript, with a small Node/Express backend for History.

Challenges we ran into

  • Our dataset named five classes just "0" to "4," so we had to figure out what each one was.
  • The model isn't perfect yet. Its precision is around 80–90%, and it still misses some prohibited items.
  • We ran out of credits for training our models.
  • At first, the 3D belt and the Console didn't agree on which bags were flagged. We rebuilt it so both use the same result.
  • Our first UI was confusing, so we started over with a cleaner one.

Accomplishments that we're proud of

  • As an all-freshman team, we built a working product, not a mockup.
  • Trained two AI models running fully in the browser.
  • A 3D lane that makes the AI's decisions easy to see at a glance.
  • A good-looking and easy to understand UI/X

What we learned

  • Data matters more than model choice. Labels, class names and preprocessing (stretch vs. letterbox resizing) changed our results more than switching architectures.
  • How to export models to ONNX and run them in the browser with WebAssembly.
  • 3D on the web with three.js, from a moving conveyor belt to a height map of a scan.
  • Good UX for high-stakes work means being calm and clear, not flashy. Showing uncertainty honestly builds more trust than pretending to be sure.

What's next for GILGAMESH

  • Train on larger, more varied X-ray datasets, and add more threat types (guns, batteries, liquids over the limit).
  • Use dual-view X-rays (top and side), the way real airport scanners do, for better 3D reconstruction.
  • Learn from officer feedback, so every Clear and Hold decision improves the model.
  • Add a real database and officer accounts.

Built With

Share this project:

Updates

Submission history