myibrahim.cloud

Case study · Game · 2025

Hamour · a 100-level 3D shooter built with Three.js, no install required

A full first-person shooter — 100 waves, a boss fight, four game modes, custom 3D model import — that loads in a browser tab and plays on a phone. Built solo, as a test of how far the web platform can be pushed.

Screenshot of Hamour: A 3D shooter in the browser: save Mr. Krabs' secret recipe from Plankton's robots.

The idea#

Games are the hardest thing to make fast on the web: physics, animation, audio, input on both keyboard and touch, and hundreds of objects on screen at once. Hamour started as a question — can a real 3D shooter run well inside a browser with nothing to install? — and became a playful homage to a certain cartoon fast-food kitchen under siege by a robot army.

What I built#

  • A first-person shooter with 100 escalating waves and a final boss fight, plus endless survival, a no-damage training range and free roam.
  • Seven weapons, movement and camera tuned for keyboard and mouse, with touch controls and a landscape layout on phones.
  • Custom 3D model import: players can drop in their own GLB, GLTF or OBJ files and see them in the game.
  • A custom asset pipeline for the GLTF models, animations and effects so everything loads quickly.

How#

Three.js and WebGL with a custom game loop, spatial audio, and a lot of attention to performance: instancing, object pooling and careful state management to keep frame rates steady as waves grow. Solo design and development.

Outcome#

A live game people can open from a link and play immediately — and a demonstration that "a web app" can mean real-time 3D with hundreds of moving parts. The same engineering shows up in the 3D island on this site.

Want something like this? Pick the service and send me a ready-made message on WhatsApp or email. I reply within 24 hours.