For warehouse safety managers who must fix a blind forklift crossing, FloorGuard turns one photo into a simulation in which NVIDIA Nemotron on Nebius Token Factory proposes fixes, stress-tests them, and revises from measured close calls, with each fix priced from real supplier pages by Tavily, before any money is spent.

Inspiration: the corner that waits for someone to get hurt

In 2024, 84 US workers died in forklift incidents, and in 2023–24 another 25,110 were hurt badly enough to miss work or be put on restricted duty (NSC Injury Facts, BLS data). Each of those injuries also lands on the business: the average medically consulted work injury costs $48,000 (NSC). OSHA's forklift standard was its 8th most-cited in FY2025, with 1,826 violations (OSHA), and a serious violation can cost up to $16,550, a willful one up to $165,514.

Many of these happen at one kind of place: a blind corner, where a forklift lane meets a crossing and a column or pallet stack hides each from the other. A steel column. A forklift you can't see coming. About 1.8 seconds to react.

Near misses at that corner rarely make it into a report, so nobody can see the danger until someone is hurt. Then the fix is chosen by habit or by a vendor's pitch: a convex mirror and a speed sign. At the corner we modelled, that "usual fix" still leaves 1.2 close calls every shift. Nothing lets a manager test the fix at that corner before buying it.

What it does: today vs with FloorGuard

Today With FloorGuard
How the fix is chosen Habit, a vendor, or after an incident Every option measured on 10,000 simulated crossings
Does it hold when people don't behave? Unknown until it fails Stress-tested: gates propped open, tired night shifts, shortcuts
What it costs A quote, later Priced from supplier pages today, with links
What goes to the site director An opinion A one-page brief: the fix, the numbers, what to check before and after

A manager uploads one photo of the intersection, and FloorGuard works through six visible steps:

  1. Nemotron 3.5 Super VL reads the photo: forklifts, people, the crossing, and everything that blocks a line of sight. At the same time, Tavily searches industrial suppliers for today's price of every control.
  2. 2D map. The scene becomes a floor plan in metres, which a person confirms.
  3. Simulating crossings. Each option faces 10,000 simulated crossings, varying speed, reaction time, braking and line of sight. A close call is time-to-collision under 1.5 s, post-encroachment time under 1 s, or contact.
  4. Blind spots. What a person waiting to cross cannot see.
  5. Nemotron 3 Ultra proposes fixes, Nemotron 3.5 Lightning picks the stress tests most likely to break them, and Ultra revises from what broke.
  6. Python decides, and the report and brief are ready. The model never computes an outcome.

A real run: the first answer broke

This is the run in our video, live on Nebius Token Factory, with a fresh Tavily search:

Option Close calls per 1,000 interactions Per shift
Today 53.9 2.2
Usual fix: mirror + 8 km/h sign 29.1 1.2
Ultra's first pick: pedestrian gate 6.7 0.27
Ultra's revision: gate + floor warning light 4.5 0.18
  1. The first answer passed. The gate met the target of 10 per 1,000.
  2. The stress test broke it. Lightning picked "40% of people prop the gate or step around it", and the simulator measured 22.7, above the stress limit of 20.
  3. Ultra revised. It read that failure and added a sensor-triggered floor warning light.
  4. The revision holds in all three stress tests (12.4, 4.5, 5.2) and adds 0.62 s of delay per truck.

From 2.2 close calls a shift to 0.18, about one every six shifts, for $3,185. The light is priced at $1,985, from two supplier prices Tavily found ($1,915 and $2,055); the gate is a labelled $1,200 estimate. That is less than a tenth of the average cost of a single injury.

The run in numbers: 6 Nemotron calls, 240,000 simulated crossings, 9 verified supplier prices, about a minute, $0.03.

How we built it

  • NVIDIA Nemotron on Nebius Token Factory, one job per model.
    • Super VL reads the photo.
    • Nemotron 3 Ultra, with reasoning on, plans and revises from measured numbers.
    • Nemotron 3.5 Lightning reads prices, picks stress tests and writes the brief, in under two seconds per call.
    • This is the track's own advice: Ultra for serious reasoning, a fast model for everyday calls. Every call is recorded with its model, tokens, latency and cost.
  • Tavily makes the budget check real.
    • Four searches across Uline, Global Industrial, Grainger, Zoro and Seton return supplier pages with their text.
    • Lightning reads each page's price, and Python keeps a price only if that exact figure is printed on the page.
    • Those prices decide which packages fit the manager's budget.
  • The simulator is deterministic and written in NumPy, using common random numbers so every option faces the same crossings. It models stopping distance, reaction time, occlusion by tall racks and columns, mirrors, gates, warning lights and compliance. It is covered by 15 automated tests.
  • Python decides: a package must meet the manager's limits and stay under twice the target in every stress test. It then ranks by fewest close calls, then cost, and rejects repeated packages.
  • The app is built on FastAPI with a JavaScript and SVG front end:
    • a dashboard of past reports;
    • the live six-step simulation, streamed;
    • a report with every price, model call and stress result.

Access is by invite link, any run can be replayed without a model call, and it is deployed on Google Cloud Run.

Challenges we ran into

  • Reasoning had to be on. With Ultra's thinking off, one run re-proposed a package it had already tested and called 22.7 "well below" a target of 10. Turning reasoning on for Ultra only, plus a guard against repeats, fixed both.
  • Web prices are messy. Generic searches returned crypto tickers and gate-repair shops. Restricting the search to industrial suppliers, reading the page text, and verifying each price on its page made them usable.
  • Honest numbers. We keep rates per 1,000 interactions and per-shift estimates apart, label every result "simulated", and still show the worst-case contact after the fix.

Accomplishments that we're proud of

  • The recommendation changed because a measured experiment broke the first answer, and the run record shows exactly how.
  • Every number on screen traces to a simulator result, a supplier price printed on a page, or a labelled assumption.
  • A real web search and three NVIDIA models, end to end on Token Factory, in about a minute for three cents.

What we learned

  • Nemotron's value here isn't computing safety. It's proposing combinations, choosing the experiments most likely to break them, and revising from evidence.
  • Matching the model to the job matters. Ultra's reasoning changed the outcome; Lightning kept the everyday calls fast.

What's next for FloorGuard

  • A measured, editable scene for every site, so each uploaded photo becomes its own map.
  • Calibration against observed traffic and compliance.
  • Quotes in local currencies.
  • Pilots with warehouse safety managers.

Limitations

  • Decision support, not a safety certification.
  • Results are simulated close calls in a simplified 2D model of one intersection, under stated assumptions; they are not injury predictions.
  • Uploaded photos are read by Nemotron, but the simulation uses the confirmed sample map.
  • Web prices are a starting point; get your own quotes.

Sample photo: "Modern warehouse with pallet rack storage system" by Axisadman, Wikimedia Commons, CC BY-SA 3.0.

Built With

Share this project:

Updates

Submission history