Skip to main content

← All posts

Build Log

The AI Drew It. The Machine Cut It. It Fits.

· 11 min read

Last time we wrote about the CNC, the machine was fine and the table underneath it was bent. That table is now gone. The one that replaced it is nine feet long, big enough to hold a full sheet of material, and from its highest point to its lowest it varies by about a quarter of a millimetre. Roughly three sheets of paper, across the whole span. Here is the part we did not expect to be writing: we did not draw it. We asked an AI agent to.

The finished torsion table in the shop, its MDF egg crate core visible along the open edge, with the CNC machine's rails being fitted down one side
The finished table with the rails going back on. The grid you can see along the open edge is the whole trick, and it never gets seen again once the skins are down.

The actual question we were asking

We have been using AI agents around the shop for a while now. They wrote the firmware for our CNC pendant. They walked us through tuning a smaller CNC by reading numbers back and forth until it was dialled in. All of that is software, or software telling a person which knob to turn.

This was a different question. Could an agent take a request written in plain English and end up with a real object you can lean your weight on? Not just draw a picture of one. Design it properly, check its own work, and produce the instructions a machine follows to cut it. Would the parts be the right size. Would they fit together.

So we gave it the job. Design a torsion table for the CNC, sized so the machine can reach every corner of a full sheet, and generate the cutting files.

Why flat is not a detail, it is the whole job

Here is the reason we cared enough to spend a month on a piece of shop furniture.

The trailer needs cabinets, and they are not wood. The structure is extruded aluminium, the same sort of profile you see holding up machine frames and shop fixtures, bolted together rather than glued and clamped. The panels, doors, and drawer fronts are HDPE, which is the tough plastic sheet that cutting boards and playground equipment are made from.

We picked that combination for three fairly plain reasons.

Moisture stops being a problem. The inside of a rig does not see rain, but it does see humidity swings, condensation on cold mornings, the odd spill, and now and then a leak that nobody finds for a week. That is the sort of moisture that works on wood slowly, over years, and it is why cabinets in older rigs go soft at the bottom edges. Neither HDPE nor aluminium swells, rots, or comes apart from any of it.

Strength goes up, because aluminium extrusion carries a load that plywood of the same weight simply cannot. And it is easier to work with rather than harder. There is no grain to fight, no moisture content to worry about, and no finishing stage at all. You cut the parts and you bolt them together.

Which also means the cabinets end up being a set of files rather than a set of skills, and that turns out to matter more than the material does. We will come back to it.

We want inlays in the doors. An inlay here is simply a recessed area cut into the face, a decorative pattern milled into what would otherwise be a flat slab of plastic. A trail marker on a drawer front. Contour lines running across a cabinet door. It is the difference between a panel and a piece of furniture.

And it is completely unforgiving about a flat table.

The machine measures depth from the surface it sits on, and a decorative recess is shallow by nature, so the depth of that cut is the entire effect. If the surface dips half a millimetre under one corner of a door, the recess there is half a millimetre shallower, and on a cut that shallow to begin with, that is the difference between a crisp pattern and a faint one. It reads strong at one end of the door and fades out at the other. You would notice it long before you could explain it, and once you have seen it you cannot stop seeing it. On a workbench nobody cares. On a cabinet door at eye level, in a space the size of a trailer, every single day, you care a great deal.

The old table was off by about half an inch from its high spot to its low spot. It was built from big box lumber, which is dried in a hurry and stacked badly and sold to people building garage shelves, and it had moved. No amount of skimming the surface flat gets half an inch back. That is why the table had to be rebuilt before a single door gets cut.

What the agent actually did

The short version is that it behaved like a careful person who never gets bored.

It refused to trust the cut list we handed it and went and measured the source file instead, which is how it caught a problem in the numbers we were about to cut from. It argued with us about the size of the table, and it was right. Then it redesigned the thing so the outer wings are part of the box rather than bolted onto it, which means nothing can twist independently of anything else.

The assembled egg crate core lying on the shop floor, dozens of interlocking MDF ribs forming a grid roughly five feet by nine feet
Every rib slotted together, dry, before any glue. There are 108 joints in there and not one of them needed a hammer.

Six sheets of material went into it. Two of them were never cut at all, and that is deliberate. They are the skins that go on the top and the bottom, and the top one has no seam anywhere in the middle to telegraph through. A single uncut sheet, held dead flat by the grid underneath it, becomes the reference the whole machine works against from then on.

Before it generated a single cutting file, the agent built the entire table as a 3D assembly and checked every joint in it. All 108 of them came back with nothing overlapping and no gaps at all. That is the sort of check a person does on a sample of maybe six joints and then decides life is short.

It went wrong four times

We would be doing nobody a favour by pretending this went smoothly. Four separate times the agent was confidently, expensively wrong, and each one would have cost us a sheet of material or a whole day.

One of them would have ruined the table outright. There is a feature that has to be cut into all 108 joints or none of them seat properly, and it made it into the drawing but never into the instructions the machine was actually going to receive. Another happened mid-cut, with a half finished sheet screwed down and the machine out of travel, which is the exact moment a bad call turns expensive material into scrap.

The fourth is the one worth understanding if you ever work this way, because it is not a glitch. It is a constant pull, and catching it is the human's job.

All four are better watched than read. You can see the actual files on screen as it happens, and judge the calls for yourself rather than taking our word for how close it got. That is the video below.

Long ribs cut into a sheet of MDF on the CNC bed, each with a row of slots and stepped ends where they splice together
Long ribs still in the sheet. The stepped ends are where two halves splice into one nine foot rib, because no eight foot sheet can give you one in a single piece.

The number at the end of it

A quarter of a millimetre, worst spot to worst spot, over nine feet. Three sheets of paper. It holds a full sheet of material with room to spare, the machine can now reach all four corners of it, and it is not going to move.

That is a better result than we expected, and honestly better than we would have got by hand with a calculator and a straightedge.

The machine made the thing that fixes the machine

There is a loop in all of this that is worth stopping on.

The first real job this machine ever did was cut its own strut plates, which are structural parts of the machine itself. The second was cutting the table it is now standing on. It made the thing that fixed its own worst weakness, and every part it cuts from here on is better because of it. Some of its own parts are being remade longer as well, for the same reason.

Most tools cannot do that. A table saw will never make itself more accurate. You buy a better one, or you live with it. This machine improved itself with six sheets of material and its own time, and it can do it again the next time we find something holding it back.

The part that surprised us is that it did not have to be accurate to pull that off. It cut the new table while sitting on a surface that was out by half an inch, which is a long way out. What it had to be was repeatable, and honest about where the error was. Measure the low spot, tell the machine the material starts lower than it looks, cut deep enough to cover it. The accuracy came out of knowing the size of the problem, not out of not having one.

That is not really a CNC idea. It is also more or less what we ended up doing with the agent.

What we think this actually means

It is tempting to write this up as either a miracle or a gimmick, and it is neither.

Something real happened here. An agent took a request in ordinary English, designed a large physical object around the constraints of the specific machine in our shop, caught mistakes in the source material it was given, verified its own geometry more thoroughly than a person would have, and produced the instructions that cut it. The thing exists. It is holding a CNC up right now.

And a person stood at the machine for every hour of it, asking awkward questions and stopping it from doing dumb things. Four separate times it was confidently, expensively wrong. Every one of those was caught by a human who knew enough to be suspicious. Take the human out and you would have a pile of ruined MDF and no idea why.

So the honest read is this. The gap between describing a thing and holding the thing has got dramatically shorter. It has not closed, and the part that has not closed is judgement. That is worth knowing whichever way you feel about any of it.

The whole story, on video

This post is the short version. The full build is the video, and it is the better way to take this in, because most of what matters here is watching it happen rather than being told about it afterwards.

All four failures in full, including the one that would have ruined the table and how close it came to running. The real conversations with the agent, on screen, not summarised. The machine cutting, the mid-job save with the sheet still clamped down, and the part where we lost patience with it. Plus the table going together, and the measurements at the end.

What gets cut next

Doors and drawer fronts in HDPE, with the inlays that started this whole detour, going onto aluminium frames. Then the cabinets themselves, which is where this comes back around to the rest of what we do here.

Some of those cabinets are being designed with TrailCurrent hardware living inside them from the start. Wiring runs already in the structure. Enclosures built into the furniture instead of screwed to a wall beside it. A control panel that sits in a door rather than on top of one. That only works if the furniture and the electronics get drawn in the same place, which they now are.

All of it gets shared, including the furniture

Earlier we said the cabinets end up being a set of files rather than a set of skills. This is where that lands.

What we do here has not changed since the first module. We build the thing for real, and then we give it away, so somebody else can use it, learn from it, or push it further than we took it. That has always covered the circuit boards, the firmware, the enclosures, and the documentation. It covers the cabinets too. The models, the dimensions, the cut files, the extrusion and hardware lists, on the same terms as everything else.

Starting with this table. Everything involved in making it is published, and that includes the parts that made the AI side of it possible:

  • The table itself. The FreeCAD model as it was actually cut, not a cleaned up version of it. If you have a LowRider or anything else that needs a flat reference this size, start here rather than from scratch.
  • The skills we gave the agent. An agent on its own does not know how to drive a CAD program, and left to guess it will take shortcuts that produce files nobody can check. These are the written instructions that stop that, built up over months of watching it get things wrong. This is the piece that did the most work.
  • The FreeCAD plugin. The bridge. FreeCAD has no way for an outside program to reach in and drive it, so we wrote one. Without this, none of the rest of it happens.

All of it MIT licensed, same as everything else on our GitHub.

The cabinets follow. If you are converting a cargo trailer, building out a van, or kitting an overland rig, the goal is that you can take the whole system and the furniture it was designed to live inside, not just the electronics. Not "here is our system, work out where to mount it." Here is the system, here are the cabinets, cut both.

And none of it comes with strings. Take what we worked out about getting a machine flat and use it to build a workbench, a boat, a set of bookshelves, something with nothing to do with vehicles at all. That still counts, and it counts just as much. Knowledge that only helps if you use it our way is not really being given away.

Which is the real reason this has been about accuracy rather than speed, and why a month went into a table nobody is ever going to look at. A design only travels if it produces the same part in somebody else's shop that it produced in ours, and that starts with being honest about whether our own numbers are real.

None of the chain that got us here cost a licence or a subscription. The machine design is Ryan's at V1 Engineering, given away free, and we would not have a CNC without it. The controller firmware is FluidNC. The model and the toolpaths are FreeCAD. The pendant we drive it with is published like everything else we make. That is not a coincidence, it is the entire point.

We will post the first doors when they come off the machine. New posts land here first, and the videos go up on the open source channel as we make them.