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

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.
Other dispatches.
What we shipped, what we got wrong, and the formats we had to work out from the outside. Written by the people who did the work.

Why we are not waiting for autonomy

What "live" means on this site
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