Inspiration

Small warehouse teams need to know what is on a shelf, where it is, and whether it is usable. Manual counts are slow, while a single photograph misses hidden boxes and cannot verify the contents of sealed cartons. We wanted one workspace that connects camera evidence, inventory records, and a spatial view without treating a label as proof of stock.

What it does

SI Storage brings multiple warehouses into a 3D operations dashboard. Its Template Warehouse is a clearly labeled, generated sample with many food products, varied carton sizes, and mixed conditions. The shared Main Warehouse reads actual inventory balances and events from Neon PostgreSQL. Users can inspect racks and shelves, view inventory alerts and history, and manually correct a shelf's product, quantity, and condition. Selecting a zone loads its assigned pair of stored Cloudinary warehouse images, extracts readable labels, and displays the resulting items as pending observations. The planned full version will use calibrated camera captures, cross-view matching, human review, demand forecasts, and warehouse-specific accounts.

How we built it

We adapted the WareTwin warehouse scene with React, TypeScript, Three.js, and React Three Fiber. Firebase Authentication handles registration, sign-in, sessions, and password reset. A Python FastAPI service verifies Firebase ID tokens and reads and writes Neon PostgreSQL inventory. The backend uses Cloudinary originals and an OCR pipeline for label observations; scans and individual observed items are saved separately from verified stock. A manual shelf edit uses an atomic PostgreSQL quantity update and records inventory adjustment events. The statistics panel uses inventory events, with dispatch events serving as a demo sales proxy. Inventory Chat reads a bounded set of database facts and can use Gemini when configured.

Challenges we ran into

A warehouse image shows only visible surfaces. Boxes can hide each other, printed quantities may not match their contents, and two camera angles can show the same carton. Our existing database also starts with broad section names rather than measured rack coordinates. We therefore keep section-based placements illustrative, show OCR results as pending, and require a deliberate shelf edit before those observations affect the ledger. We also had to keep generated template activity separate from Neon data.

Accomplishments that we're proud of

The dashboard combines a densely populated sample warehouse with a Neon-backed warehouse, rack and condition views, database-driven panels, event history, stored image loading by zone, and a manual shelf editor that persists changes. The zone workflow keeps source images, scan records, individual label observations, and verified balances distinct. The warehouse view can return to its overview after inspecting a zone or rack.

What we learned

Reliable inventory automation needs stable location IDs, camera calibration, cross-view deduplication, product identifiers, review, and an audit trail. A convincing 3D scene is useful for exploration, but it should not claim measured shelf positions until those positions have been captured. Inventory movements are also only a proxy for sales; revenue and demand forecasting need actual order and price history.

What's next for SI Storage

We plan to map real camera poses to shelf IDs, detect and match cartons across multiple views, and build a review workflow that promotes accepted observations into inventory events. We also need per-user warehouse ownership and permissions, a live camera feed, measured location layouts, and real order data before forecasting and order tracking can be operational features.

Share this project:

Updates

Submission history