Have you ever ordered something online and wondered why it takes so long to leave the warehouse? We realized that even with robots, a warehouse can get "stuck" if it isn't organized properly. We wanted to solve that invisible puzzle: how to store thousands of boxes so that the ones you need are always right at your fingertips.

Warehouse Simulation is a comprehensive logistics sandbox and benchmarking suite. It simulates an automated 3D silo where boxes arrive at random intervals for different destinations. The system tests multiple storage and retrieval algorithms to find the "Holy Grail" of logistics: maximum throughput with zero relocation penalties. It features a live visualizer to see the shuttles in action and a statistical engine that stress-tests algorithms across different warehouse capacities (0% to 75%).

How does Warehouse Simulation work? Engine: A custom Python simulation core that models 3D coordinates (Aisle, Side, X, Y, Z) and shuttle physics. Algorithmic Suite: We developed a family of algorithms ranging from simple baselines to advanced heuristics like Z-Safe (preventing depth-blocking), Weighted Frequency (learning destination popularity online), and Y-Safe (optimizing vertical shuttle distribution). Benchmarking: A statistical runner that executes hundreds of iterations to provide reliable mean throughput data and Z-block counts. Visualizer: A React-based dashboard (Vite + Tailwind) that renders the warehouse state and live performance metrics.

Some challenges we ran into The Z-Depth: We quickly realized that storing boxes in front of different destinations (Z-blocks) creates a massive "technical debt" in the form of relocation penalties. Solving this without wasting space was our biggest hurdle. Concurrency at Scale: Coordinating 8 shuttles across 8 height levels while keeping the simulation fast enough for iterative testing. Merge Chaos: Working as a team on the same algorithmic files required strict modularity to keep our "Pro" and "Weighted" versions from clashing with experimental teammate branches. Code made by AI was unreliable and unrelied

The achievement we would be most proud of is achieving the best possible efficiency we needed to run multiple algorithms through our sandbox and afterwards analyze the data. This process was tedious but proved extremely rewarding: by looking at the result of each algorithm we were able to find the most optimal way of improving the efficency by understanding the pros and cons of each of them.

We learned that the simplest solution is often the best, but only if you've tested all the complicated ones first. We also learned how to work as a team under pressure, combining different ideas (and fixing each other's bugs) to build something much bigger than we could have done alone.

We want to take this out of the "simulated" world. The next step is making these algorithms smart enough to handle real-world messiness (like broken robots or damaged boxes) and eventually seeing this logic run a real fulfillment center.

Built With

Share this project:

Updates