A practical request
Laura wanted a 3D grocery-shopping experience that could make online shopping feel more natural.
Michael's wife, Laura, wanted a 3D way to shop for groceries online. Somewhere between the shopping cart and the cereal aisle, the brief became a browser game about destroying the entire store.
Free in your browser · Desktop + keyboard recommended

The origin story
SmashMart was never the sensible answer. It became something more useful: a compact way to learn 3D rendering, physics, interaction design, asset pipelines, testing, and how to coordinate agents around one stubbornly visual goal.
Laura wanted a 3D grocery-shopping experience that could make online shopping feel more natural.
Michael got distracted by the physics and built a store where the objective was to cause damage instead.
Rather than hide the first attempt, both versions stay playable. The gap between them is the point.
Side by side
V1 proves the game. V2 shows what changed after building it once. Neither is hidden behind a highlight reel.

The first playable store
A bright, low-poly supermarket assembled from simple pieces, custom product labels, and a lot of physics. Pick up groceries, push carts, smash fixtures, and chase a dollar-value destruction target.
Original store design · Three.js + Rapier · Complete gameplay loop
Play SmashMart v1 →
The unfinished second pass
The rebuild starts with a purchased premium supermarket environment, then adds a new first-person controller, physics, carts, interactions, products, and early destruction work. It is bigger, more detailed, and still visibly in progress.
Purchased store asset · Rebuilt systems · Work in progress
Play the SmashMart v2 preview →

Choose your aisle
Both versions run in the browser. Start with the fully playable low-poly original, then walk through the unfinished premium rebuild.
Want to build something equally unreasonable? Get AgentGrid