01
Reward Modelling
There is currently no real metric that tell a model what “good” looks like. Almost every CAD benchmark today answers that with geometry - IoU or Chamfer distance against a single reference shape.
This reward measures the wrong thing. It rewards a model for occupying the reference envelope, even if the feature that gives the part its job is missing. It gives no gradient toward real engineering details - a bolt hole 2 mm off barely moves IoU, yet the part no longer assembles. A sturdy chair that is slightly larger in some dimensions gets penalized, while a weak chair that overlaps the ground truth gets promoted. And because there is only one reference, every valid alternative design is marked wrong for being different.
Training a model on that signal teaches it to copy shapes and give beautiful renders - it does not learn engineering.
02
RLFPC
We built RLFPC to fix the reward. The reward is calibrated on accomplishing the function, proven through simulation and manufacturability. Running it naively puts a CAD kernel and a simulator inside every single training rollout, so we built RLFPC to optimize for compute.
Every part gets its own rubric, leveraging the EDSX representation, generated from its requirements: what the part has to do, the dimensions, interfaces and tolerances it has to hold, and how well it was constructed. That rubric is graded together with checks on the built part itself - it regenerates cleanly in the kernel, holds its loads in simulation and can be made by its stated process. The judges never see the reference part. Any construction that meets the requirements earns full reward, which means the same reward that trains Euclid-1 to rebuild known parts carries straight over to designing new ones from requirements alone.
03
Results
We evaluate on ELCDB, our CAD design benchmark: a diverse dataset of complex parts - cast engine cylinders, helical gears, pump bodies, suspension arms - each graded on function, specification and construction quality by a panel of model judges with the reference part withheld, then reviewed by engineering experts. Every model gets the same brief, the same reference images and the same tools, and builds in the same live kernel. The harness for every run was the Archimedes agent in Enginuity Design Studio.
| Model | ELCDB (Functionality) | Cost per task (USD) |
|---|---|---|
| Euclid-1 | 71.3 | $1.60 |
| GPT-6 Astra | 47.4 | $5.30 |
| Fable 5.1 | 38.6 | $2.80 |
| Inkling (base) | 13.1 | n/a |
Euclid-1 goes from 13.1 to 71.3 over its base in its functionality scores - about 50% above GPT-6 Astra and nearly double Fable 5.1. It is also the cheapest to run, at $1.60 a task: 43% below Fable 5.1, the next cheapest, and 70% below GPT-6 Astra.
That jump is RLFPC at work. Inkling, the base, is a poor designer on its own: it scores 13.1 on ELCDB, and on the sample task below it builds a finned cylinder with no head. Post-trained with RLFPC, the same base becomes Euclid-1 and scores 71.3, ahead of every frontier model we tested.
04
Sample Task Comparison
One task from ELCDB: a single-piece cast aluminium cylinder from an air-cooled aircraft engine, 600 faces in the source part, with a finned barrel, a faceted head, stepped ports and a mounting spigot. Every model received the same written brief and three reference views of the part:
Model a single-piece cast aluminium air-cooled aircraft engine cylinder, providing the pressure chamber and piston guide while rejecting combustion heat through the fins. Hold the overall envelope to 224 × 254 × 378 mm and the continuous cylinder bore to 127 mm diameter; the lower mounting spigot is 157 mm outside diameter and 30 mm long. Use 21 main cooling fins at 6 mm pitch, plus 12 collar fins, each 1.5 mm thick at 3 mm pitch. Include two coaxial stepped internal ports on 60 mm centres, each opening at 53.3 mm diameter and reducing to 35 mm for 93 mm depth, paired 20 mm swept passages, and the 12 mm diameter, 231 mm-deep drilled passage. Preserve bore alignment, sealing faces, and adequate fin-root continuity.


The judges grade each part against 23 function claims and 96 specification claims written from the brief, plus a separate construction-quality score. The final score weights them 50, 20 and 30, and each layer is discounted by the share of its claims that were missed, so a part that looks close but misses many details still scores low.
Euclid-1 met every function claim, and its part matches the source volume of 4,757 cm³. Its only misses are two partial spec claims on the stepped ports: the judges read the 53.3 mm openings as running along the bore axis while the 35 mm branches cut across it, so they did not credit the two sections of each port as coaxial.
GPT-6 Astra built the barrel, fin stack, spigot and a faceted head, but simplified the head’s working detail. Its two ports turn across the bore instead of running along it, the tapered webs and collars that tie them into the head are missing, and the 12 mm drilled passage is blind and on the wrong axis. The fin root is 156 mm against the source part’s 137 mm, and the part has 40% more volume than the source.
Fable 5.1 reached a similar outline. Its ports open straight into the chamber with no reduced branches, and a single rectangular port plate stands in for the individual raised collars. The fin root is 164 mm, which leaves an 18.5 mm wall where the source part has 5 mm, and the part has 48% more volume than the source.
Inkling, the base model Euclid-1 was post-trained from, produced a finned stepped cylinder with no head, chamber or crown, a spigot that blocks the bore, and a part 408 mm long instead of 378 mm. Euclid-1, post-trained from this same base with RLFPC, scored 82.7 on the task.
05
What’s next
RLFPC got Euclid-1 here on a small fraction of the compute a frontier lab spends. That scales with compute, and so does what Euclid can design: from single parts to assemblies, to entire automobiles, aircraft and spacecraft.
Engineers stop moving geometry by hand and start directing agents that do - designing hardware at the speed of software.
The next industrial revolution is coming.
