Skip to content

About

𝐀𝐓𝐋𝐀𝐒 is a desktop warehouse manager with a live 3D robot simulation: A* and greedy pathfinding, simulated annealing slotting, and stock, logs and analytics. Built with Tauri, React, TypeScript and three.js.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

125 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Atlas

βš™οΈ ATLAS β€” Smart Warehouse Management System

ATLAS is a desktop warehouse manager with a live 3D robot simulation. It implements the three AI sub-problems from our Intro to AI course report (report/AtlasWMS.pdf):

  • path finding: A* vs greedy best-first;
  • item placement: Steepest Ascent vs Simulated Annealing;
  • layout reordering: Genetic Algorithm vs Local Beam Search.

All three work under the same constraint model, and the AI Lab page compares each pair live. Built with Tauri 2, React 19, TypeScript and three.js. The original Python research is kept in backend/.

πŸŽ₯ Video Documentation


🧠 AI

Sub-problem Algorithms Where it's used
Path finding A* (f = g + h, octile heuristic) and greedy best-first (h only) every robot trip; switchable live
Item placement, one box at a time Steepest Ascent (hill climbing over nearby free slots, 3 restarts) and Simulated Annealing (Metropolis acceptance, geometric cooling), graded against an exhaustive scan Add Stock, automatic restocks
Layout reordering Genetic Algorithm (one chromosome per rack, order crossover within a shelf level, cross-rack swap mutation, tournament selection, elitism, 500 generations), Local Beam Search (k = 8) and Simulated Annealing Optimize button, AI Lab, automatic reordering

Constraints (CSP). Hard rules:

  • frozen goods stay in the cold room;
  • chemicals never share a shelf with food, beverages, frozen goods or medicine;
  • each shelf level has a weight limit (2,000 / 1,000 / 600 kg).

Soft cost:

  • demand Γ— round-trip distance to the docks;
  • heavy and fragile goods kept low;
  • a bonus for keeping a product's boxes together;
  • a cost per box moved, so reorder plans stay small.

Every algorithm scores layouts with this one model. Incremental swap and insert deltas let the searches evaluate tens of thousands of states in well under a second.

From plan to robots. A target layout becomes a set of robot moves with dependencies: a box only enters a slot after the previous box has left it. Swap cycles are broken through a free buffer slot. Moves that went stale while the search ran are dropped.

Mixer. Tasks are served retrievals first, then insertions, then relocations. Every minute a task waits lifts it one priority level, so nothing starves. The warehouse re-slots itself when a constraint breaks or the layout drifts 3% from its last optimum.

AI Lab (screenshot below) reruns the report's Β§6 comparisons on the current warehouse, in a web worker:

  • 300 random routes with A* and greedy, plus a map of the cells each search expanded;
  • 6 Γ— 40 placements graded against the optimum;
  • the three reorder searches with convergence curves and a one-click "apply".

Typical results on this layout:

Comparison Result
Path finding Greedy expands about 5Γ— fewer cells, but its routes are about 6% longer; A* is always optimal.
Placement Both local searches land within about 6% of the optimum. SA checks less than half as many slots.
Reordering, from a scrambled copy SA reaches the lowest cost, Local Beam is close with the fewest moves, and the GA trails both.

πŸš€ Features

  • 3D warehouse view: 36 racks (6 of them in a separate cold room), 1,005 shelf slots and every stored box rendered from live stock. Robots drive, lift and carry boxes; their planned routes are drawn on the floor. Includes overview, docks, cold-room and follow-robot cameras, hover tooltips per box, and a "find product" highlight.
  • Robot simulation: 1–12 robots with cell reservation, so two robots never share a cell. A blocked robot replans around the others after 1 s and backs off to a free cell after 4 s (deadlock resolution). Play/pause, 1×–10Γ— speed, and live stats: tasks done, average task time, cells expanded per plan, replans, distance driven.
  • Slotting and re-slotting: covered under AI above. The 3D view shows the live layout cost, any constraint violations and the relocations in flight.
  • Stock manager: add stock (category, size, weight, expiry, fragility, demand), take stock first-expired-first-out, and edit or delete products. Deleting is blocked while boxes are still on the shelves.
  • Logs: every insertion, retrieval and relocation, with live progress, search and filters. Old entries are pruned after a configurable number of days.
  • Dashboard: storage occupancy, robot efficiency, throughput history, robot time split (moving / handling / waiting / idle) and current fleet allocation.
  • Simulated orders (toggleable): customers order products in proportion to demand. Each product has a target stock level set by its demand, and a supplier delivery tops it back up when it falls below 40% of that, so stock stays steady while the robots keep working.

State (catalog, stock, logs, settings) is saved locally, so the warehouse picks up where it left off. Robot tasks that were still running when the app closed are counted as finished on the next start.


πŸ› οΈ Tech Stack

Tauri React TypeScript Three.js TailwindCSS Vite Python


πŸ—‚οΈ Project Structure

src/
  ai/           constraint model, placement, reordering (GA / beam / SA), move planning, benchmarks, web worker
  sim/          floor plan grid, A* / greedy pathfinding, robot engine and task mixer
  store/        persisted catalog, stock, logs and settings; turns stock changes and plans into robot tasks
  scene/        three.js scene: building, racks, boxes, robots, cameras
  pages/        Home, 3D Layout, Stock Manager, AI Lab, Logs, Settings
  components/   tables, forms, charts
  data/         rack geometry (from the Figma floor plan) and the seed product catalog
src-tauri/      Tauri 2 shell (frameless window with a custom title bar)
backend/        Python research: pathfinding comparisons, SA / GA placement, notebook
report/         project report (PDF) and notebook

πŸ“Έ Screenshots

3D simulation Following a robot
Home History
Add Inventory Manage Inventory
Take Inventory Settings

AI Lab


πŸ”§ Running it

Needs Node 18+ and, for the desktop build, the Tauri prerequisites (Rust + WebView2 on Windows).

git clone https://github.com/mohaneddz/Warehouse-Optimization
cd Warehouse-Optimization
npm install

npm run tauri dev     # desktop app
npm run dev           # browser only, http://localhost:1420
npm test              # unit tests: path finding, constraints, every optimizer, move plans, engine
npm run tauri build   # installer

Research scripts (backend/)

The Python side is the original course research and isn't needed by the app (pip install -r backend/requirements.txt):

  • functions/test_greedy.py: greedy vs A* experiments on the node graph in data/map.json, with plots.
  • functions/SA.py, functions/genetic.py: simulated annealing and genetic algorithm item placement.
  • AtlasWMS.ipynb, report/: notebook and write-up.

⚠️ Known limitations

  • The app routes robots on a grid built from the rack coordinates, not on the hand-drawn node graph in data/facts.json/map.json. That graph is split into disconnected pieces and has a few bogus long edges.
  • Single user and local only: data lives in the app's local storage, with no server or sync.
  • Robot physics is kinematic: constant speed, no acceleration, collisions avoided by cell reservation.
  • Placement costs are compared on the model's own objective, not measured robot travel time. The Lab's path experiment covers travel separately.

πŸ“„ License

MIT.

About

𝐀𝐓𝐋𝐀𝐒 is a desktop warehouse manager with a live 3D robot simulation: A* and greedy pathfinding, simulated annealing slotting, and stock, logs and analytics. Built with Tauri, React, TypeScript and three.js.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages