Kerf

BVX has no specification, so we built one from twelve files

A Hundegger beam saw reads a binary format nobody publishes. Here is how we worked it out, and how we know we got it right.
A timber yard. Everything downstream of here is measured in millimetres.

Kerf writes three machine formats. Two of them are documented. BTLx 2.0.0 has a public XSD, and we validate every file against it before it leaves the browser, so a malformed export is caught by us rather than by a carpenter standing at a machine.

BVX is the other kind. It is what a Hundegger actually eats on a lot of shop floors, and there is no public specification for it. You cannot read the format. You can only read files that already work.

Reading the format backwards

We collected a corpus: twelve real production files from real jobs, covering 879 parts and roughly 9,100 individual operations. Not test fixtures. Beams that had already been cut correctly by a machine, which is the only proof that matters.

Then the slow part. Take an operation you can see in the geometry, find the bytes that must encode it, change one thing in the source drawing, regenerate, diff. Repeat until the guess stops being a guess.

Some of it was quick. Lengths and part counts announce themselves. Some of it was not: the end treatments took three weeks, because an angle and a bevel share a region and the sign convention flips depending on which end of the beam you are describing.

How we know it still works

The corpus is the test suite. Every release regenerates all twelve files and diffs them byte for byte against the originals. If a change to the geometry engine moves a single operation in a single part, the build fails and we find out before anyone else does.

That is what we mean by calibrating against reality. A format is not supported because we wrote a parser for it. It is supported when something physical comes out correct, repeatedly, from files we did not write.

What is still open

BVN is in the same position and has a smaller corpus behind it, so we are more careful about what we claim there. If you run a Hundegger and would be willing to share production files, that is the single most useful thing anyone could send us. It goes straight into the corpus and straight into the test suite.

Contact

Want the longer
version of any of this?

We are happy to go into detail. That is usually the interesting part.

Where
Pampuslaan 59, 1382 JM Weesp, Netherlands
Call
+31 85 400 0005
Write
[email protected]
Hire the agency
brandlevel.nl, in Dutch or English