Nine edits. One continuous build.
The sample follows a bolt from a hexagonal head blank to a fully threaded solid. Each edit connects a plain language instruction to before and after STEP references, complete CadQuery script states, and the code diff between those states. You can inspect the geometry, run either script, and see what changed in code.
The sequence covers a conical head trim, a shank, a Boolean join, a junction fillet, an end chamfer, and an M12 × 1.75 external thread. The library offers 20,000 instruction-led CAD editing tasks for delivery in 7 to 30 days. This nine-edit bolt sequence shows the script-rich sample format.
001: Start with the head blank

Reference STEP 001. The first script produces this blank.
011: Build the bolt body

Reference STEP 011. The head and shank have been joined, filleted, and chamfered.
015: Cut the external thread

Reference STEP 015. The final task cuts the helical thread into the bolt.
What a task contains
tasks.jsonl has one record per edit. Every record links its instruction to shared before and after states and to a unified script diff. Consecutive edits reuse the same state files, so the sequence stays connected without duplicating assets.
{
"id": "007_to_008",
"instruction": "Add a 0.6 mm fillet all the way around the junction where the shank meets the underside of the head.",
"before": {
"state": "007",
"reference_step": "states/007/reference.step",
"script": "states/007/model.py"
},
"after": {
"state": "008",
"reference_step": "states/008/reference.step",
"script": "states/008/model.py"
},
"script_diff": "tasks/007_to_008/script.patch"
}
The sample contains 9 tasks, 15 original STEP snapshots, 10 runnable CadQuery states, and 9 script diffs. Every task endpoint has a script. Five additional STEP snapshots show construction tools or components used between edits.
Sample package
cad-editing-tasks-sample.zip
├── README.md
├── manifest.json
├── tasks.jsonl
├── states.json
├── states/
│ ├── 001/
│ │ ├── reference.step
│ │ └── model.py
│ ├── ...
│ └── 015/
│ ├── reference.step
│ └── model.py
└── tasks/
├── 001_to_003/
│ └── script.patch
├── ...
└── 014_to_015/
└── script.patch