Table of Contents

RPTU Benchmark Parts 4–10: Seven 3-Axis Jobs Set Up and Checked by an AI Agent

An AI agent took seven public test parts — for each, a CAD model, a CAM-posted NC program, a rendering and a line of description — and turned them into HiNC simulation projects through HiNC's web API. It replayed every part twice and let HiNC's results, not its own opinion, decide whether a set-up was right. Along the way HiNC showed where the delivered programs cannot finish the design and where the load is, and confirmed that a shorter tool cuts the same. The agent cut nothing: the data set's authors machined the parts, but none of their results is used here.

Part 7 at a 0.25 mm mesh, at the end of the island's final contour: the Ø6 end mill in its shrink-fit holder; the geometry comparison marks the island's three concave bay tips in blue, where material is left

Part 7, HiNC 3.2.41, stopped at the last block of the final contour's Z-11 pass (line 39,999 of 40,014). Green is within ±0.1 mm of the design; blue marks material left beyond it — the three concave bay tips of the island, whose tips are tighter than the Ø6 tool's radius.

The case

The parts are numbers 4 to 10 of the Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling (Zenodo, CC BY 4.0; its contact is at RPTU Kaiserslautern-Landau, which is where the name “RPTU” on these pages comes from — the record gives no affiliation for its authors). Parts 1–3 were built the same way by a peer agent and have their own page. For each part the data set publishes three files:

  • a STEP model of the finished part;
  • an NC program (.ngc) whose header names a CAM vendor's generic three-axis machine definition, with the tool comment T1 D=6. CR=0. and the deepest depth (ZMIN);
  • a rendering of the part.

Its description adds that every part comes from an 80 × 80 × 50 mm block with a single end mill of at most 6 mm, without re-clamping, and gives one line of features per part.

What it does not give: where the program's zero is on the block, which controller the program was posted for, the workpiece material, the fixture, and everything about the tool beyond its diameter and corner radius — flute length, number of flutes, angles, holder, stick-out. The machine is described only as a three-axis gantry type, and the NC header says all three axes are on the head.

Part Features (read from the data set) NC lines Deepest cut (read)
4 4 holes, surrounding step (circular) 3,676 Z-8
5 4 holes, surrounding step (semi-circular/semi-rectangular) 2,509 Z-7
6 4 holes, surrounding step (rectangular), circular pocket 6,611 Z-7
7 Square pocket with negative freeform 40,014 Z-11
8 Multiple inclined surrounding steps (circular and rectangular) 11,894 Z-17
9 4 holes, circular pocket, multiple negative freeforms 71,377 Z-9
10 4 holes, multiple inclined surrounding steps (circular and rectangular), multiple pockets (circular and rectangular), negative freeform 14,214 Z-19

The data set's own renderings of parts 4 to 10, numbered: 4, a block with a raised Ø70 disc holding four holes; 5, a raised plate, half disc and half square, with four holes; 6, a raised square with a Ø60 pocket and a hole near each corner; 7, a square pocket with a spline-outlined island standing in it; 8, a disc on a square turned 30°, on an inclined step, on a 78 mm square; 9, a Ø75 pocket holding four spline-outlined islands and four Ø4 pins, with a hole in each corner of the block; 10, a raised disc holding a square pocket and, inside it, a circular pocket around a spline-outlined island, on an inclined step and a 78 mm square. Image: M. Schmitz, J. Mertes, F. Schillinger, M. Wagner, Zenodo 17035762, CC BY 4.0, cropped and arranged, part numbers added

Parts 4–10 as the data set renders them, one .png file per part. Every wall is vertical and every floor flat (dilemma 4).

What the agent built

One project per part, built entirely through HiNC's web API in the order of the project construction workflow, each value read back after it was written, then saved and reloaded. The last column says where each value came from.

Item Value Origin
NC program as published, byte for byte, played unchanged read
Target model the STEP meshed to STL and moved into program coordinates: (40.5, 40.5, −53) for parts 4, 7, 9; (41, 41, −53) for 5, 6, 10; (28.534, 40.962, −51.056) for 8 derived from the program's own motion (dilemmas 1, 2)
Stock a box flush with the model's sides and bottom and 1 mm above its top: 80 × 80 × 51 mm (parts 4, 8, 9) or 80 × 80 × 53 mm (5, 6, 7, 10) derived; the stated 50 mm does not fit (dilemma 3)
Program zero G54 at the stock's top, 0.5 or 1 mm outside the block's front-left corner, as the translation above implies derived
Controller HiNC's Fanuc runner chosen; there is no LinuxCNC runner (dilemma 5)
Machine a generic three-axis machine with no shapes, its table moving in X and Y and its head in Z; travel X −800..0, Y −500..0, Z −500..0. The published machine moves all three axes on the head; for a three-axis program the tool's path relative to the part is the same chosen
Fixture a 160 × 120 × 20 mm plate under the stock chosen
Material aluminium alloy 6061-T6 with its cutting parameters, from HiNC's library chosen; the data set names none
Tool Ø6 flat end mill; 3 flutes, 13 mm flute, 57 mm long, 45° helix, 12° rake, 10° relief, carbide diameter and corner radius read; the rest chosen
Holder shrink-fit chuck: Ø21 nose tapering to Ø30 over 55 mm, Ø44 body, Ø63.5 flange; 80 mm gauge length chosen
Stick-out 20 mm (parts 4–7, 9) and 25 mm (8, 10): the larger of the flute length and the deepest cut, plus 5 mm, rounded up to 5 mm derived by rule (dilemmas 6, 7)
Spindle a generic 24,000 rpm, 7.5 kW spindle chosen; the programs run at up to 18,000 rpm (dilemma 8)
Mission one program; collision check on; geometry comparison at the end; a coarse run at a 1 mm mesh, then an acceptance run at 0.25 mm chosen
Pass criteria steps, contact with the stock, every line executed, comparison built, messages accounted for chosen, before the first run

Part by part, the design mesh and the tool (mm):

Part Design mesh, closed Stick-out, tool length Deepest cut Holder nose above the stock top at the deepest cut
4 1,892 triangles 20, 100 Z-8 12
5 1,532 triangles 20, 100 Z-7 13
6 1,856 triangles 20, 100 Z-7 13
7 5,522 triangles 20, 100 Z-11 9
8 712 triangles 25, 105 Z-17 8
9 28,544 triangles 20, 100 Z-9 11
10 4,344 triangles 25, 105 Z-19 6

How the agent managed the work

  • Pass criteria written down before the runs. A replay passed only on evidence read back from HiNC: a step count, the “touched the stock” flag at 1, every NC line executed, the geometry comparison built, and a message list with nothing unexplained. A small checker applied these rules to every run, so a finished run that proved nothing could not pass.
  • Coarse before fine, small before large. Each part ran first at a 1 mm mesh, then at 0.25 mm. The two largest programs (parts 7 and 9) were first played as excerpts of their first two operations, to prove the set-up before committing the time and memory to the whole program.
  • Estimates before runs. Steps were estimated as cutting time × spindle speed, memory at about 5 KB per step (Memory Planning). Runs went one at a time to a 32-thread server.
  • One set-up for all ten parts. The build script was taken from the peer agent that did parts 1–3 and only parameterised, so both batches share every choice that is not part-specific; the dialect handling and the tool rule are the peer agent's, confirmed with it before this agent built.
  • Adversarial review. The written instructions for each part were checked, claim by claim, by reviewer agents told to refute them — two rounds, seven reviewers each — and this page by one more.
  • A blind build. A peer agent got only the shared build guide and part 10's folder — no scripts, no notes — and rebuilt the project.
  • Sharing one server. A HiNC service holds one open project for everyone connected to it. The agent and three peer agents worked on showcase cases at once, each on its own service, and said so to the others.
  • Where a person stepped in.
    • The owner's standing rule for the showcase — every tool in a realistic holder, at the shortest stick-out that reaches — fixed the holder and the stick-out rule.
    • The owner named the service the agent should use, and gave it an account when its own rules refused to read one from deployment files (dilemma 19).
    • The owner changed what a showcase case is for: from a build instruction for students to this record of the work. The agent then measured part 7's left material from HiNC's own result and took the pictures on this page.

The dilemmas

1. Where is program zero?

  • Situation. Nothing in the data set says where the program's G54 is. The STEP models are centred on their own origin: X and Y from −40 to 40, the top face at Z 52 (part 8 is the exception: X from −27.534 to 52.466, the top at Z 50.056).
  • Risk. A guessed zero moves every cut. The simulation still runs, and the geometry comparison then blames the program for a set-up error.
  • How it was noticed. The agent's first guess, a shift of 40 from symmetry, disagreed with the holes' positions in the program.
  • Resolution. The zero was read out of the program's motion. For Z, every floor of the model coincides exactly with a depth the program cuts to, and the model's top lands on the facing pass's depth, Z-1. For X and Y, the Ø10 holes are milled by the Ø6 tool on a 2 mm-radius helix, so every helix centre is a hole axis. Matching single arcs was ambiguous — the four holes of a part can be swapped — so the agent matched the mean of the four helix centres against the mean of the four model hole axes. Part 9 was matched through the centre of its Ø75 pocket's finishing circle, and parts 7, 8 and 10 through the finishing passes that run along straight walls, 3 mm (the tool radius) from the model's walls and on the right side of them.
  • Evidence that it held. The fits are exact: the helix centres fall on the moved model's hole axes, and the finishing passes run 3.0 mm from the moved walls. The adaptive clearings peak at their layer depth (dilemma 12), and part 7's machined workpiece matches the design everywhere except at the bay tips the tool cannot reach (dilemma 14).

2. The same data set, three different placements

  • Situation. Part 4 came out at (40.5, 40.5), like parts 1–3. Part 5 looked like part 4.
  • Risk. Copying part 4's numbers to part 5 would place part 5 half a millimetre off. No message would flag it; the geometry comparison would show it only as the program's error.
  • How it was noticed. The placement check was run for every part — hole helices for parts 4, 5 and 6, the pocket's finishing circle for part 9, finishing passes along straight walls for 7, 8 and 10: parts 5, 6 and 10 came out at (41, 41), and part 8, whose model origin is not at its centre, at (28.534, 40.962).
  • Resolution. Each part carries its own translation.
  • Evidence that it held. For all four holes of parts 4, 5 and 6 the helix centres equal the moved model's hole axes exactly, and for 7, 8 and 10 the finishing passes run 3.0 mm from the moved walls.

The placement part by part, with the stock box it gives, the fixture mount at the centre of the stock's bottom face, and the G54 that HiNC's program-zero call then wrote (mm, program coordinates):

Part Matched on Model moved by Stock X / Y / Z Fixture mount G54
4 the four Ø10 holes: every helix centre (radius 2) on a model hole axis (40.5, 40.5, −53) 0.5..80.5 / 0.5..80.5 / −51..0 (40.5, 40.5, −51) (−440.5, −290.5, −529)
5 the same, all four holes (41, 41, −53) 1..81 / 1..81 / −53..0 (41, 41, −53) (−441, −291, −527)
6 the same, all four holes (41, 41, −53) 1..81 / 1..81 / −53..0 (41, 41, −53) (−441, −291, −527)
7 the finishing passes along the pocket's straight walls, 3 mm (the tool radius) off them; all six matches agree (40.5, 40.5, −53) 0.5..80.5 / 0.5..80.5 / −53..0 (40.5, 40.5, −53) (−440.5, −290.5, −527)
8 the finishing passes along straight walls; the model's centre, (12.466, 0.038) in its own coordinates, lands on (41, 41) (28.534, 40.962, −51.056) 1..81 / 1..81 / −51..0 (41, 41, −51) (−441, −291, −529)
9 the centre of the Ø75 pocket's finishing circle (40.5, 40.5, −53) 0.5..80.5 / 0.5..80.5 / −51..0 (40.5, 40.5, −51) (−440.5, −290.5, −529)
10 the finishing passes along straight walls; all five matches agree (41, 41, −53) 1..81 / 1..81 / −53..0 (41, 41, −53) (−441, −291, −527)

3. The stated stock does not fit the models

  • Situation. The data set says 80 × 80 × 50 mm. The programs face 1 mm off the top, and the models below that face are 50 or 52 mm tall.
  • Risk. A 50 mm stock would end above the model's bottom, and HiNC's comparison of the machined part with the design would report 1–3 mm of “missing” material that no program could have left.
  • How it was noticed. The model heights were measured when the stock box was first computed.
  • Resolution. The stock is flush with the model's sides and bottom and 1 mm above its top: 51 or 53 mm tall. The change and its reason are recorded with each case.
  • Evidence that it held. The facing pass reads a 1.0 mm cut in every part, and nothing in the comparison flags the part's sides or bottom.

4. “Freeform” — surfaces or outlines?

  • Situation. The data set lists “negative freeform” features in parts 7, 9 and 10.
  • Risk. Planning for 3D freeform surfaces means a ball end mill, a fine mesh to show curvature, and a different acceptance.
  • How it was noticed. Before planning, the agent looked at the renderings and sliced the models.
  • Resolution. The walls are vertical, the floors flat, and the outlines are free-form splines; every operation in the programs is a 2D one with a flat end mill. They are 2.5D features. The mesh question became whether the width resolves the smallest feature — part 9's Ø4 pins, sixteen cells across at 0.25 mm.
  • Evidence that it held. Part 7's island walls, cut with the flat end mill, match the design at every height except at the bay tips the tool cannot reach and one mark the design's own mesh causes (dilemma 14).

5. A program posted for LinuxCNC (inferred), on a controller HiNC does not have

  • Situation. The programs use G64 P0.01 Q0.01, G91.1 and the .ngc extension, which point to a LinuxCNC post-processor. HiNC's controllers are Fanuc, Siemens, Heidenhain, Syntec and Mazak.
  • Risk. Rewriting the programs would put the agent's edits between the published program and the result.
  • How it was noticed. The dialect was checked before any build, together with the peer agent doing parts 1–3.
  • Resolution. The programs play unchanged on the Fanuc runner. G91.1 means “arc centres are incremental”, which Fanuc always assumes; G64 P Q is a path-blending tolerance, which the simulation does not model. HiNC reports both as Parsing--Unconsumed and plays the same path.
  • Evidence that it held. In all fourteen replays every NC line executed, and the only warnings were the three Parsing--Unconsumed; the G18 and G19 arcs (in the X-Z and Y-Z planes), G53 and the % markers raised nothing.

6. A tool that is “Ø6” and nothing more

  • Situation. The only tool data is T1 D=6. CR=0.
  • Risk. A tool with no holder, or with more stick-out than it needs, simulates without complaint and misleads anyone who looks at the result.
  • How it was noticed. The owner's standing rule for the showcase.
  • Resolution. A Ø6 three-flute carbide end mill with a 13 mm flute in a shrink-fit holder, and a stick-out equal to the larger of the flute length and the deepest cut, plus 5 mm, rounded up to 5 mm: 20 mm for parts 4–7 and 9.
  • Evidence that it held. HiNC's tool-offset table reads back 80 mm gauge plus stick-out (100 and 105 mm), and both pictures show the holder above the stock.

7. The long tool that was not needed

  • Situation. Parts 8 and 10 cut down to Z-17 and Z-19. The agent read that as walls 16 and 18 mm tall — longer than the 13 mm flute — and gave both parts a long tool (24 mm flute) at a 30 mm stick-out. Both replays passed.
  • Risk. A tool 5 mm longer than needed is less stiff, and this page would have recommended it.
  • How it was noticed. A reviewer agent measured the walls on the model: they are stepped, and the tallest single wall is 8 mm in part 8 (Z-9 to Z-17) and 10 mm in part 10 (Z-9 to Z-19).
  • Resolution. Both parts were rebuilt with the standard tool at a 25 mm stick-out and replayed.
  • Evidence that it held. The step counts rose by 8 and the simulated time by 0.03 s; depths, forces and messages stayed the same; the final contours' peak depths (8 and 10 mm) stay inside the 13 mm flute; and at the deepest point the holder's nose is 8 mm (part 8) and 6 mm (part 10) above the stock's top.

Part 8 at the last block of its final contour, Z-17: the shrink-fit holder above the stock at the 25 mm stick-out the rule gives

Part 8, HiNC 3.2.41, stopped at the last block of the final contour (Z-17).

8. A spindle that is too slow

  • Situation. The programs run at 18,000 rpm (the hole milling of parts 4, 5, 6 and 9 at 16,000); the spindles in HiNC's library stop at 12,000.
  • Risk. A spindle below the programmed speed makes the power and torque figures meaningless.
  • How it was noticed. While choosing the spindle.
  • Resolution. A generic 24,000 rpm spindle was defined for the showcase cases and loaded into each project.
  • Evidence that it held. Each project reads the spindle back by name, its 24,000 rpm is above every speed the programs call, and no run reported a missing physics input.

9. How much memory, and for how long?

  • Situation. The programs range from 63 kB to 1.8 MB.
  • Risk. A simulation that runs out of memory stops near the end, after most of its time.
  • How it was noticed. Planned before the first run.
  • Resolution. Part 9's path, at its feeds and spindle speeds, estimates to about 408,000 steps and 2 GB of step results. Parts 7 and 9 were checked on excerpts first.
  • Evidence that it held. The measured step counts came within −5 % to +7 % of these estimates (part 9: 435,627), and every run finished.

Each part's memory, worked from its measured steps at about 5 KB a step, plus about 1 GB base and an assumed 0.3 GB for the cut surfaces' mesh at 0.25 mm (of the step estimates made beforehand, the record keeps two: about 137,000 for part 4 and 408,000 for part 9):

Part Feed-path cutting time Steps Step results Estimated peak
4 7.4 min 131,253 0.66 GB 2.0 GB
5 6.8 min 120,610 0.60 GB 1.9 GB
6 9.9 min 176,026 0.88 GB 2.2 GB
7 16.3 min 316,161 1.58 GB 2.9 GB
8 10.1 min 192,851 0.96 GB 2.3 GB
9 22.3 min 435,627 2.18 GB 3.5 GB
10 12.7 min 239,526 1.20 GB 2.5 GB

The two excerpts, played at 1 mm: each program up to, not including, its third operation's comment, then a comment line marking the cut, M5, G53 G0 Z0., M30 and %; both touched the stock and raised only the three expected warnings:

Part Operations played Lines Steps Depth peak Force peak
7 the facing PLANEN3 and the pocket opening 2D-TASCHE2 717 98,852 2.0 mm 134 N, in the pocket opening; 54 N in the facing
9 the facing PLANEN2 and the corner holes' 2D-TASCHE1 736 107,776 4.0 mm, in the hole milling 54 N, in the facing; 51 N in the hole milling

10. “Finished” is not “passed”

  • Situation. A replay that never mounts a tool produces no steps and still ends “Finished”; the end-of-play Play-Touch--None warning needs steps, so often no message says so.
  • Risk. Accepting a run that cut nothing.
  • How it was noticed. Known from the replay acceptance workflow.
  • Resolution. Every run was accepted only on the pass criteria above, read back from HiNC.
  • Evidence that it held. The checker, once corrected (dilemma 11), passed all fourteen runs.

11. A check that failed for the wrong reason

  • Situation. Part 7's first full replay failed the agent's own check: it expected four Parsing--Unconsumed warnings, one for G91.1 and one per G64 line, and HiNC reported three.
  • Risk. Chasing a build error that does not exist, or loosening the check until it proves nothing.
  • How it was noticed. The checker failed on the message count while every other check passed.
  • Resolution. The agent read the messages before blaming the build. HiNC reports the first occurrence of a warning on its own and folds all the later ones into a single entry on the last line, [repeated 3x in this run, first at Sn=16], whose count includes the first. Parts 1–6 have one or two G64 lines, where both rules give the same count. The check was corrected: three warnings per replay from two G64 lines up (part 1, with one, reports two).
  • Evidence that it held. Parts 8, 9 and 10, with 7, 5 and 9 G64 lines, each report exactly three, the last one reading [repeated 7x …], [repeated 5x …] and [repeated 9x …].

Part by part (G91.1 is reported at line 8 and the first G64 at line 16; the third entry lands on the last G64 line, and each play also lists one Sys-Init--FileLines note and nothing else):

Part G64 lines Third entry
4 2: 16, 308 line 308, [repeated 2x in this run, first at Sn=16]
5 2: 16, 315 line 315, [repeated 2x …]
6 2: 16, 315 line 315, [repeated 2x …]
7 3: 16, 308, 38,286 line 38,286, [repeated 3x …]
8 7: 16, 315, 3,528, 3,545, 10,711, 10,752, 11,834 line 11,834, [repeated 7x …]
9 5: 16, 309, 734, 906, 68,036 line 68,036, [repeated 5x …]
10 9: 16, 315, 4,147, 4,168, 5,671, 6,796, 12,581, 12,610, 14,154 line 14,154, [repeated 9x …]

12. A depth that looked like a datum error

  • Situation. Part 5 at 0.25 mm reported a peak cutting depth of 5.89 mm. The program clears in 2 mm layers, and at 1 mm the same part read 2.0 mm.
  • Risk. A wrong Z zero looks exactly like this.
  • How it was noticed. The peak was compared with the programmed layer depth, as every run's was.
  • Resolution. The run was split by operation: each operation's first NC line maps to its first simulation step, and the peaks were read per step range. The 5.89 mm came from the hole milling, whose peak force is 20 N against the clearing's 107 N. Part 4's holes — the same helix, 7 mm deep — read 0.69 mm at the same width, and part 5's read 1.44 mm at 1 mm. So it is not a cut of that depth; the likely reading is the tool's side against the finished hole wall, which the fine mesh registers over the wall's height (inferred, not traced step by step). The depth datum is taken from the adaptive clearing operations.
  • Evidence that it held. In every part the adaptive clearings named as the datum peak at 2 mm in both runs, except part 9's, cut in 1.5 mm layers, which reads 1.5 mm at 0.25 mm and 2.0 mm at 1 mm.

13. Finishing passes that take a whole wall

  • Situation. The final contour of parts 7–10 reads deeper than any layer: 5, 8, 8 and 10 mm.
  • Risk. Mistaking it for a datum error, or not noticing the load it carries.
  • How it was noticed. In the per-operation peaks of dilemma 12.
  • Resolution. In parts 8 and 10 the final contour is one pass at the bottom: the 78 mm square's wall rises to the step above it on the two sides where that step is flush, and the pass meets all 8 or 10 mm of it at once. In parts 7 and 9 it is two passes (Z-6 then Z-11, Z-6 then Z-9), and the lower pass meets the 5 mm of island wall below the first (part 7) or the whole 8 mm pocket wall (part 9) (inferred from the model and the program).
  • Evidence that it held. Each peak equals the wall height left for that pass, and they are the same at 1 mm and 0.25 mm.

14. The comparison has a picture, not numbers

  • Situation. The geometry comparison colours the machined part, but the web API gives no way to read its values.
  • Risk. Claiming “material is left at the island's bay tips” from geometry alone, without HiNC having shown it.
  • How it was noticed. The claim was first written from the model and the tool radius; a reviewer marked it as inferred.
  • Resolution. The agent exported HiNC's machined workpiece as STL after a 0.25 mm replay and compared it with the design slice by slice.
  • Evidence that it held. At every height of the island (Z-5.5 to Z-10.9) three spots are left, about 2.0, 1.8 and 0.6 mm² in plan and up to 0.7, 0.65 and 0.28 mm thick — the three bay tips, as the geometry predicted — and nothing is over-cut. A fourth, thinner mark (up to 0.2 mm) near X59 Y52 comes from the design STL itself, one of whose facets lies inside the true wall. The comparison on screen marks the three bay tips (the picture above).

15. A screenshot shows the tool where the run ended

  • Situation. Selecting a step in the web client highlights it but does not move the tool; the 3D view shows the tool where the replay ended, retracted above the part.
  • Risk. A picture without the tool at work, or with the holder out of sight.
  • How it was noticed. The first captures showed the tool far above the part.
  • Resolution. For each picture the agent played the saved project up to a chosen NC line (the program's lines up to it plus M30), captured the view, then reloaded the project so nothing was saved.
  • Evidence that it held. The two pictures show the tool at the chosen lines; the saved projects are unchanged.

16. The agent's own written claims

  • Situation. Each part's instructions were written by the agent from its measurements.
  • Risk. A plausible sentence that nobody checked becomes the published fact.
  • How it was noticed. By the adversarial review rounds.
  • Resolution. Among what they caught: an island given as 55 × 45 mm that measures 49 × 52 mm; the tall wall of parts 8 and 10 placed on the wrong sides; a 3° angle copied from part 8 into part 10, where the edges run at 2.2° and 2.3°; a check that “proved” a helical entry with a number a straight plunge would give too; author affiliations the record does not state; and a licence argument that reached the right answer for the wrong reason. All were corrected.
  • Evidence that it held. The first round checked 839 claims and returned 76; after the fixes the second checked 580 and returned 32, smaller ones, which were fixed as well; the blind build then matched every number.

17. What the blind build found

  • Situation. A peer agent rebuilt part 10 from the shared guide and the part's folder alone.
  • Risk. Instructions that only work for the agent that wrote them.
  • How it was noticed. It was the purpose of the blind build.
  • Resolution. It reported two traps, both added to the shared guide: a mistyped GET route answers “200 OK” with the web client's page instead of an error (a mistyped POST answers 405); and a list entry read back after a play shows that play's run-time values: the Machining Motion Resolution entry reads the feed per spindle revolution the play left and an infinite rotary step, which the JSON sends as the string "Infinity", while the project saves only that entry's Scale and MinLinearResolution_mm.
  • Evidence that it held. Its numbers matched the reference on every row: steps, executed lines, per-operation depths, simulated time, program zero and tool length.

18. Sharing a server and a repository with other agents

  • Situation. Several peer agents built showcase cases at the same time, on one server and in shared working copies.
  • Risk. One agent's project load or reset stops another's run; one agent's commit sweeps up another's files; line endings are rewritten on commit, so the published files no longer match the data set's checksums.
  • How it was noticed. A peer agent's run was closed mid-way by an unknown client and the question came to this agent; the shared checkout converts line endings by default.
  • Resolution. Each agent took its own service and announced it; this agent's client was fixed to its own. Commits staged exact paths only. The source files were marked “no line-ending conversion”. When a project someone else had left open was in the way, the agent reopened it when done.
  • Evidence that it held. None of this agent's runs was interrupted, and the committed source files match the checksums the data set publishes.

19. A login the agent could not read for itself

  • Situation. The service required a login.
  • Risk. Taking credentials from deployment files would bypass the owner.
  • How it was noticed. The agent's own safety rules refused to read them.
  • Resolution. The agent asked the owner, who gave it an account.
  • Evidence that it held. Every call from then on used that account alone.

Results and benefits

The fourteen replays' numbers were measured on HiNC 3.2.45; part 7's measurement and the two pictures were made on 3.2.41, and the excerpts (dilemma 9) and the long-tool runs (dilemma 7), played while the cases were built, on 3.2.39.

Part Steps Simulated time* Replay at 1 / 0.25 mm Depth peak at 1 / 0.25 mm Depth datum (clearing)
4 131,253 7.6 min 25 / 70 s 2.0 / 2.0 mm 2 mm
5 120,610 7.0 min 25 / 60 s 2.0 / 5.89 mm (hole milling, dilemma 12) 2 mm
6 176,026 10.0 min 35 / 95 s 2.0 / 5.89 mm (hole milling) 2 mm
7 316,161 16.5 min 65 / 135 s 5.0 / 5.0 mm (final contour) 2 mm
8 192,851 10.4 min 35 / 90 s 8.0 / 8.0 mm (final contour) 2 mm
9 435,627 22.6 min 85 / 165 s 8.0 / 8.0 mm (final contour) 1.5 mm at 0.25 mm
10 239,526 13.0 min 40 / 100 s 10.0 / 10.0 mm (final contour) 2 mm

*The program's path over its feed rates with rapids, as simulated; no acceleration.

The simulated machining time of RPTU parts 1 to 10, one bar each with its step count: part 1 3.0 min and 52,600 steps, part 2 4.9 min and 84,637, part 3 7.5 min and 126,971, part 4 7.6 min and 131,253, part 5 7.0 min and 120,610, part 6 10.0 min and 176,026, part 7 16.5 min and 316,161, part 8 10.4 min and 192,851, part 9 the longest at 22.6 min and 435,627, part 10 13.0 min and 239,526

The simulated machining time and the steps of all ten parts; parts 4–10's values are in the table above, parts 1–3's on their own page.

All fourteen replays passed: steps, contact with the stock, every NC line executed, the comparison built, and only the three Parsing--Unconsumed warnings. HiNC's collision check, which covers the fixture and also the holder and the shank against the stock, reported no contact in any replay; the machine has no geometry, so nothing on its side is checked.

Each program operation by operation, as the agent read it: the line of the comment that opens the operation, its steps (the same at both resolutions), and the peaks over them at 1 mm / 0.25 mm, one value where both runs agree:

Part Operation (line) What it cuts Steps Depth peak (mm) Force peak (N)
4 PLANEN2 (11) the top face, 1 mm off, at Z-1 47,002 1.0 54
4 2D ADAPTIVE2 (307) around the Ø70 disc in 2 mm layers at Z-3 and Z-5, all posted as short G1 segments (3,107 lines); the disc's wall takes about 370 of them a layer 30,127 2.0 (datum) 107
4 2D-TASCHE1 (3,414) the four Ø10 holes, on a helix descending 0.44 mm a turn, at S16000 54,124 1.44 / 0.69 45 / 20
5 PLANEN2 (11) the top face, 1 mm off, at Z-1 48,514 1.0 54
5 2D ADAPTIVE2 (314) around the D-shaped plate in 2 mm layers 23,483 2.0 (datum) 107
5 2D-TASCHE1 (2,267) the four Ø10 holes, helically, at S16000 48,613 1.44 / 5.89 45 / 20
6 PLANEN2 (11) the top face, 1 mm off, at Z-1 48,514 1.0 54
6 2D ADAPTIVE3 (314) around the raised square, down to Z-5 16,935 2.0 (datum) 102
6 2D ADAPTIVE4 (978) the Ø60 pocket in three 2 mm layers, each entered on a helix 61,952 2.0 (datum) 111 / 107
6 2D-TASCHE2 (6,369) the four Ø10 holes, helically, at S16000 48,625 1.44 / 5.89 45 / 20
7 PLANEN3 (11) the top face, 1 mm off, at Z-1 47,000 1.0 54
7 2D-TASCHE2 (307) the pocket, down to the island's top, at Z-3 and Z-5 51,543 2.0 (datum) 134
7 2D ADAPTIVE2 (713) around the island in five 2 mm layers, Z-3 to Z-11 201,830 2.0 (datum) 114 / 111
7 2D-KONTUR3 (38,285) the pocket wall from the faced top to the island's top, one pass at Z-5 2,836 4.0 223 / 218
7 2D-KONTUR2 (38,305) the pocket walls and the island, passes at Z-6 and Z-11 12,952 5.0 290 / 281
8 PLANEN2 (11) the top face, 1 mm off, at Z-1 48,512 1.0 54
8 2D ADAPTIVE6 (314) around the Ø54 disc, Z-1 to Z-5 46,116 2.0 (datum) 107
8 2D-KONTUR1 (3,527) the disc's wall 2,285 4.0 167 / 138
8 2D ADAPTIVE7 (3,544) around the 54 mm square turned 30°, down to Z-9 65,463 2.0 (datum) 111 / 107
8 2D-KONTUR2 (10,710) the turned square's wall 2,931 4.0 108 / 82
8 2D ADAPTIVE9 (10,751) the 1 mm rim, down to Z-17, before the step above it 12,762 2.0 (datum) 84 / 69
8 2D ADAPTIVE8 (11,312) around the inclined step, down to Z-13 7,782 2.0 (datum) 107 / 102
8 2D-KONTUR5 (11,833) the inclined step's front and left edges 2,444 4.0 139 / 102
8 2D-KONTUR4 (11,868) the 78 mm square's wall at Z-17, 8 mm high on the back and right, where the inclined step is flush with it 4,556 8.0 192 / 156
9 PLANEN2 (11) the top face, 1 mm off, at Z-1 47,002 1.0 54
9 2D-TASCHE1 (307) the four corner holes, helically in 0.58 mm steps, at S16000 60,498 4.0 / 3.5 51 / 23
9 2D-KONTUR3 (732) the holes' walls, passes at Z-5 and Z-7, back at S18000 5,996 4.0 210 / 189
9 2D-TASCHE2 (905) the pocket, down to the islands' tops 17,699 2.0 115
9 2D ADAPTIVE8 (960) around the islands and pins, down to Z-9 in 1.5 mm layers 278,447 2.0 / 1.5 (datum) 114 / 93
9 2D-KONTUR1 (68,035) the pocket wall, the islands and the pins, passes at Z-6 and Z-9 25,985 8.0 210 / 165
10 PLANEN2 (11) the top face, 1 mm off, at Z-1 48,511 1.0 54
10 2D ADAPTIVE3 (314) the square pocket, down to Z-5 46,486 2.0 (datum) 111 / 107
10 2D-KONTUR1 (4,146) the square pocket's 4 mm wall 2,264 4.0 223 / 215
10 2D-TASCHE2 (4,167) the circular pocket around the island, layers at Z-5.6, -7.2, -8.8 and -9 33,448 3.8 138 / 114
10 2D-KONTUR2 (5,670) the island's outline and the Ø52.3 wall, at Z-7 and Z-9 7,360 6.0 120
10 2D ADAPTIVE5 (6,795) around the Ø74 disc 58,678 2.0 (datum) 107
10 2D-KONTUR3 (12,580) the disc's 8 mm wall, passes at Z-5 and Z-9 5,914 4.0 167 / 138
10 2D ADAPTIVE7 (12,609) the 1 mm rim, down to Z-19, before the step inside it 19,138 2.0 (datum) 84 / 69
10 2D ADAPTIVE6 (13,450) around the inclined step, Z-9 to Z-13 10,630 2.0 (datum) 107 / 102
10 2D-KONTUR4 (14,153) the inclined step's wall 2,448 4.0 139 / 126
10 2D-KONTUR6 (14,188) the 78 mm square's wall at Z-19, 10 mm high on the back and left, where the inclined step is flush with it 4,649 10.0 192 / 156

Part 4's operations at 1 mm and 0.25 mm: the facing reads 1 mm and 54 N; the adaptive clearing 2 mm, on the 2 mm clearing layer, and 107 N; the hole milling 1.44 and 0.69 mm, 45 and 20 N

Part 4: each operation's peak cutting depth and peak force at 1 mm and 0.25 mm, against the 2 mm clearing layer; every value is in the table above.

Part 5's operations at 1 mm and 0.25 mm: the facing reads 1 mm and 54 N; the adaptive clearing 2 mm, on the 2 mm clearing layer, and 107 N; the hole milling 1.44 mm at 1 mm and 5.89 mm at 0.25 mm, 45 and 20 N

Part 5: each operation's peak cutting depth and peak force at 1 mm and 0.25 mm, against the 2 mm clearing layer; every value is in the table above.

Part 6's operations at 1 mm and 0.25 mm: the facing reads 1 mm and 54 N; the two adaptive clearings 2 mm, on the 2 mm clearing layer, at 102 N and 111 / 107 N; the hole milling 1.44 mm at 1 mm and 5.89 mm at 0.25 mm, 45 and 20 N

Part 6: each operation's peak cutting depth and peak force at 1 mm and 0.25 mm, against the 2 mm clearing layer; every value is in the table above.

Part 7's operations at 1 mm and 0.25 mm: the facing reads 1 mm and 54 N; the pocket and the adaptive clearing 2 mm, on the 2 mm clearing layer, at 134 N and 114 / 111 N; the pocket wall's contour 4 mm and 223 / 218 N; the final contour the deepest and the heaviest, 5 mm and 290 / 281 N

Part 7: each operation's peak cutting depth and peak force at 1 mm and 0.25 mm, against the 2 mm clearing layer; every value is in the table above.

Part 8's nine operations at 1 mm and 0.25 mm: the facing reads 1 mm and 54 N; the four adaptive clearings 2 mm, on the 2 mm clearing layer, at 84 to 111 N at 1 mm; the three 4 mm contours 108 to 167 N at 1 mm; the final contour on the 78 mm square's wall the deepest and the heaviest, 8 mm and 192 / 156 N

Part 8: each operation's peak cutting depth and peak force at 1 mm and 0.25 mm, against the 2 mm clearing layer; every value is in the table above.

Part 9's operations at 1 mm and 0.25 mm: the facing reads 1 mm and 54 N; the hole milling 4 and 3.5 mm at 51 and 23 N; the holes' wall contour 4 mm and 210 / 189 N; the pocket 2 mm and 115 N; the adaptive clearing 2 mm at 1 mm and 1.5 mm, its layer, at 0.25 mm, 114 / 93 N; the final contour the deepest, 8 mm, at 210 / 165 N

Part 9: each operation's peak cutting depth and peak force at 1 mm and 0.25 mm, against the 1.5 mm clearing layer; every value is in the table above.

Part 10's eleven operations at 1 mm and 0.25 mm: the facing reads 1 mm and 54 N; the four adaptive clearings 2 mm, on the 2 mm clearing layer, at 84 to 111 N at 1 mm; the circular pocket 3.8 mm and 138 / 114 N; the contours 4 and 6 mm, the square pocket's wall the heaviest at 223 / 215 N; the final contour on the 78 mm square's wall the deepest, 10 mm, at 192 / 156 N

Part 10: each operation's peak cutting depth and peak force at 1 mm and 0.25 mm, against the 2 mm clearing layer; every value is in the table above.

For a machining engineer

  • Part 7's program cannot finish its island. Its three bay tips keep about 2.0, 1.8 and 0.6 mm² of material in plan over the island's full 6 mm height, up to 0.7 mm thick: the bays narrow to tips of about 1.4–1.8 mm radius, tighter than the Ø6 tool's 3 mm radius. If the design matters there, a rest-machining pass with a smaller tool is needed.
  • Thin walls in part 6. The holes come within 2.5 mm of the raised square's sides and 3.9 mm of the pocket's wall; worth an inspection on a real part.
  • Shorter tools are enough. A 25 mm stick-out reaches everything in parts 8 and 10; the obvious long tool at 30 mm is 5 mm longer than needed. At the deepest cut the holder clears the stock by 8 and 6 mm.
  • Where the load is. Clearing operations peak at about 84–134 N (1 mm runs; 138 N in part 10's pocketing). The highest peaks are on wall-finishing contours: 290 N on part 7's final contour, 223 N on part 10's first contour (the square pocket's 4 mm wall) and on part 7's pocket wall, 210 N on part 9's hole finishing and final contour, 192 N on the final contour of parts 8 and 10. The 0.25 mm runs read the same or up to about 27 % lower. If deflection or finish matters, those are the passes to split into axial steps.
  • Setting up. The program zero sits 0.5 or 1 mm outside the block's corner, depending on the part; touching off on the corner would shift those parts by that much.
  • The data set itself. The stated 50 mm block is too low for every model here, and part 10's feature list names four holes the model does not have (its four radius-3 features are the square pocket's corners).

For a teacher or a student

  • A simulation that “finished” has proved nothing until it shows steps, contact, executed lines and a clean message list.
  • Program zero, stock and tool can be read out of a CAM program's own motion, and should be checked there rather than guessed: in this data set the zero moved between parts.
  • One peak value over a whole run can mislead. Split it by operation and compare each with what that operation was programmed to do.
  • A data set's description is a claim, not a measurement: here the block height, one feature list and the word “freeform” all needed checking.
  • Choose the tool by the tallest single wall and the stick-out by the deepest cut.

For someone weighing whether this approach is worth using

  • What it cost. The fourteen replays on this page took about 17 minutes of server time on a 32-thread machine. Building the cases, with the excerpts, the long-tool runs later replaced, the measurement of part 7 and the pictures, took about 40 minutes of server time. The estimated peak memory per run was 1.9–3.5 GB (not measured). The two review rounds took about 40 minutes each and the blind build about 13 minutes, all run by agents.
  • What it caught that a single pass would not have. A zero that moves between parts; a stock the data set states wrongly; a tool longer than needed; a depth reading that looked like a datum error; and 76 and then 32 wrong or unclear written claims.
  • What it did not replace. A person set the rules the agent worked to, supplied the account, and redirected the work; and nothing here was cut.

Honest limits

  • All simulated. The agent cut nothing. Run numbers are HiNC's; the estimates, the holder-nose heights in the part table of What the agent built and part 7's left-material areas are the agent's own geometry, arithmetic or off-line measurement, while HiNC's collision check found no contact between the holder or the shank and the stock in any replay.
  • The agent's choices, not the authors'. Material, machine, fixture, spindle, tool geometry beyond the diameter, and the holder are the agent's choices. Forces, power and times depend on them.
  • The stock differs from the stated 80 × 80 × 50 mm for the reason in dilemma 3.
  • Cycle times have no acceleration model, and the G64 blending the real controller would apply is not simulated.
  • Inferred explanations are marked as such: the hole-milling depth reading (dilemma 12) and where the final contours meet the whole wall (dilemma 13).
  • Part 7's left-material areas come from the agent's off-line slicing of HiNC's exported workpiece; HiNC's own comparison values cannot be read through the API.
  • Forces differ between the 1 mm and 0.25 mm runs, by up to about 27 % in clearing and finishing and up to 56 % in the hole milling, whose peaks are low (45 → 20 N).
  • Memory per run was estimated, not measured.

What a reader can take to their own case

  • Derive program zero from the program: match hole helices, pocket circles or finishing walls against the model, over the whole feature set. A check that the moved model's outline equals the stock's only means something when the stock was given independently.
  • Check a stated stock against the model and the facing depth before using it.
  • Look at the model before believing a feature list.
  • Play the program unchanged when the controller's meaning matches, and list the warnings that remain with the reason each is harmless.
  • Choose the tool by the tallest single wall, the stick-out by the deepest cut, and check the holder clearance.
  • Estimate steps and memory before the first run; prove the set-up on an excerpt of a large program.
  • Write the pass criteria down before running, and read every run against them.
  • Read peaks per operation; take the depth datum from a clearing operation.
  • When a result looks wrong, read HiNC's messages and the geometry before changing the build.
  • Have someone else rebuild the case from your instructions, and have your written claims checked.

Source and licence

M. Schmitz, J. Mertes, F. Schillinger, M. Wagner, Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling, Zenodo, version 1, 2025, https://doi.org/10.5281/zenodo.17035762 (record: https://zenodo.org/records/17035762). Search terms if the link moves: Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling, zenodo 17035762.

Licensed under Creative Commons Attribution 4.0 International. This site offers no download; fetch the files from the record.

Model, NC program and rendering: M. Schmitz, J. Mertes, F. Schillinger, M. Wagner, “Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling”, parts 4–10, https://doi.org/10.5281/zenodo.17035762, licensed CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), provided without warranty.

What was changed: the models were meshed to STL and moved into program coordinates; the NC programs were played as published in every full replay; the two datum-check excerpts of parts 7 and 9 (dilemma 9) run each program up to, not including, its third operation's comment and end with a comment line, M5, G53 G0 Z0., M30 and %; and for the two pictures the programs were cut off at a chosen line with M30 appended (dilemma 15). The simulation set-up — stock, placement, machine, fixture, tool geometry, holder, material, spindle — is the agent's, as described above; the stock is 51 or 53 mm tall instead of the stated 50 mm (dilemma 3). The pictures on this page are HiNC simulations of these parts and the charts are drawn from HiNC's replays of them, except the renderings in The case: the data set's own, cropped, arranged and numbered.

A file fetched from the record can be checked against the one simulated here by its SHA-256, as each part's source notes give it:

Part File SHA-256
4 4.ngc 6240d35afb5e7de046e0249b23072db63f3a20d0aecb756de2419c91f697b1f6
4 4.step 9779d88de7a615c439a76582341eb8244c2c73acc3e67c64c8332856e19437da
4 4.png 852a37b8bef2c5fa08fa1b6b4d8ed337b8c3b60db879b485462270800130f651
5 5.ngc d268fec818e49cbc329969d5ccc29334ca2f0ad8851b1f288caafe6ca60dbf5e
5 5.step 2e77b32274a0b7ab62dcf6ccb8fc47077a8968cce0e3cd466de7abad1cd693f7
5 5.png 06684bcae0e31ea2bd877b75e73bb8ca4e616883228c9932f417e338e7220706
6 6.ngc 318245efdccabd466cb53b6a0349242fcda79f82feb7c776187d03338c746d96
6 6.step 30328dbe66955e34db199c9a36f0674548941c59164c12e48ea3bf4bca5eade7
6 6.png 392457b9ed3d44dced973098e6ac22e4f84a2d9d2284227fac0af1bce6204534
7 7.ngc df9c904dd52e5908006b37744abbff6a9f9cf4094eaf3602dfe3f97e147e6860
7 7.step 1fdc0a1ccfdf92f6bee6e67c8e29c0308dafee104025923315a58a0998f9cec3
7 7.png b93436d7bb4ef3ffaa0692e7126b3fd16bc3b8462c19a48c4e20a43cddfb9842
8 8.ngc 57b637a6533710dc9e11cc90945edea39bc3d0792d1e7ba7273805dd3af6dfb3
8 8.step bb7f3809b3e5610dfde77aaf4cd388426bd06a47267cf021587f6bca23822bb7
8 8.png 781d89c0dd409571fbe04161102dc5a56e39914692d0e77834d6e5adccc948d9
9 9.ngc d944a8d0d40f0c97e5d0f64c097785561503b61f8b1b0eb7b5682f84925445da
9 9.step 3658eb09d100e75cc57e0e18fb7850eb0de456ac141c6b8a17e21141f8edfd32
9 9.png c5f99a9dedd360e4a7636a5ee2abb139b3f7c4179b743120eee9809117f56174
10 10.ngc 4b90bb4a916bcda7f4812298ae1aabe907b2fefbcd18e76e2f901709d4e942b9
10 10.step 91c23f1fb78ab88b50e9bf46af2f5a08774a56a772d66d8922801a6fbe2001ab
10 10.png 45b0870f7b08e2f9f5f16c84ac7f9d505cfa4129e9e3816a17725ed0ba40323c