Inspiration

Siemens' 2024 True Cost of Downtime report found that the average large plant loses $253 million a year to unplanned downtime, and it often starts with one small part. Even the cheapest replacement isn't the cheapest recovery: a $128 part in three days leaves the line exposed, while the $142 part arriving tomorrow doesn't. We wanted a system that sees a failure coming and handles the scramble afterward.

What it does

ForgeFlow learns what a machine feels like when it's healthy, then watches for drift. When something goes wrong, it texts the machine operator on iMessage, asks what they see, hear and feel, explains the likely cause, gets quotes from seven supplier agents, and orders nothing until the machine operator texts a clear "yes."

How we built it

We're three students from the University of Florida who flew to Michigan with just ESP32s, jumper wires, sensors, and nothing else. We spent 40 minutes outside grinding pencils down to fit as axles (hence the very accurate PencilGrinders... ). The belt is a strap cut off a backpack; the rest is parts found randomly inside the Duderstadt building and glue from Kroger.

  • Hardware: an ESP32 with an accelerometer streams vibration to a receiver. After a 60-second baseline, each second is scored with $z = \frac{x-\mu}{\sigma}$, and sustained $|z| \ge 4$ escalates through watch, degraded and critical. In our demo, 60 seconds is an 8-hour shift, so 10 seconds is about 1.33 hours.
  • SpacetimeDB holds every incident live and is also the rulebook: its code refuses any approval that isn't a recorded, clear yes from the operator's number.
  • Fetch.ai agents (an Analyst, a Buyer and seven suppliers) diagnose and negotiate, while a Watcher senses.
  • Photon carries the whole conversation over iMessage.

Challenges we ran into

The hardware. We showed up with no machine and no parts, so the conveyor had to come from whatever we could find in the building. Nothing fit anything: we spent 40 minutes outside grinding pencils down until they would work as axles, cut a belt off a backpack, used tape that we luckily spun at the Figma stand table, pizza boxes for cardboard for our foundation, and held the rest together with glue from Kroger. Then we had to ask the ultimate scrap-built machine for a vibration signal steady enough to learn what "normal" looks like.

The approval rule. Our first version counted "ok but wait" as a yes, and any phone number could send it. Detecting failure turned out to be easier than deciding who gets to act. We rebuilt it so the database itself demands a short, whole-message yes from the operator's number.

Accomplishments that we're proud of

  • A working loop from a jolt on a conveyor to an approved order, built in 24 hours from parts we found.
  • A conveyor made from pencils, a backpack strap and building scraps that actually runs, and detects its own failure.
  • An approval rule that holds: our automated checks (17 of 17 pass) confirm that replies like "ok but wait" and texts from the wrong number can't approve an order.

What we learned

Trust is the product: humans stay in the loop, and the rules belong in the database, not in the agents. And you can build a surprising amount with almost nothing. Hardware to software abstraction was trickier than originally thought.

What's next for ForgeFlow

Real machines, real supplier catalogs (today's quotes and payment are simulated), and stronger operator authentication.

Built With

Share this project:

Updates

Submission history