A drawing with one line left out, marked by the same code that marks yours: “Front view: 1 line is missing.” The missing line is highlighted.
It knows the answer. Every answer is worked out from the part or the construction itself, never typed in by hand, so the question and the marking cannot disagree.
It forgives where, not what. Draw anywhere on the sheet: moving your whole drawing does not change the mark. Leaving out a line, adding one, or using the wrong line type does.
Construction lines are yours. Working lines are ignored when marking, so use as many as you need.
Both projection conventions are taught. First angle and third angle are both correct. Each exercise says which it wants, and whether your views are right is marked separately from where you placed them.
No percentages. A score teaches nothing, so it names the line instead.
Why everything snaps to the grid
draftdrill can only mark what lands exactly on the grid. That is a real limit: some constructions have answers that fall between grid points, and a snapping grid cannot draw them. Rather than mark those “close enough”, which could teach you the wrong thing, they stay out until they can be marked properly.
On the grid: the midpoint lands at (4, 3), so it can be drawn and marked.Between grid points: the tangent touches at (2.8, 1.17…), which no grid point can hold.
Your privacy
There is no account and no sign-in. Your paper colour, and whether you closed the what's-new banner, are saved in your own browser and never sent anywhere. Your drawings are sent only to be marked, and draftdrill does not keep them. Page visits are counted anonymously with Cloudflare Web Analytics, which uses no cookies and nothing that identifies you.
If a mark looks wrong, a prompt is confusing, or something breaks, tell me. A mark you think is wrong is the most useful report there is: it means the answer or the question needs fixing.
For anyone curious about the engineering: the decisions that shaped draftdrill, and the bugs that taught the most.
The gap it fills
Drawing software lets you draw, but it cannot tell you whether a drawing is right. Courses can, through a person critiquing your work: scheduled, paid for, and not there the night before an assessment. I found nothing that gave instant, specific feedback on a technical drawing attempt. So draftdrill is a marker first, and its topics are content the marker is pointed at.
Measure before building
Because answers must land on the grid, the first question for any new topic was whether its answers do. A cheap measurement settled it before any design work:
Construction
Answers on the grid
Parabola, rectangle method
all of them, exactly
Perpendicular bisector, even length
all of them, exactly
Oblique projection, all three types
27,104 of 27,104
Tangent from a point to a circle
0 of 162
Regular hexagon, on squared paper
0 of 30 sizes, and never
Isometric drawing looked impossible for the same reason: no two points on squared paper sit at 60°. A second measurement showed it is exact on isometric grid paper instead, which is what draftdrill now uses for it.
The answer never leaves the server
Each exercise is split in two. The public half, the picture and the prompt, goes to your browser; the answer stays on the server and is used only to mark. That matters more than it sounds, because the part is the answer: anyone holding the part can generate its correct views. A test reads every file's imports and fails if code that runs in the browser imports anything that holds an answer.
Three views do not always pin down a part
The reverse drill asks you to build a part from its three views, and it is tempting to assume three views always determine one. Checking every arrangement of blocks in a 2×2×2 space said otherwise: 255 shapes give only 215 different sets of views, so a few different shapes look identical in all three. If you build one of those, draftdrill says your build matches all three views but is not the part it drew, rather than calling you wrong.
What the tests could not see
The test suite is large and strict, and it still missed the bugs that mattered most, because they were in the words and the layout, not the logic. A hint told students to draw a smooth curve when the answer is straight segments. Prompts on diagonals said “units” where a unit and a grid square differ by √2, describing points that are not on the grid. A layout tweak letterboxed the drawing so that every click silently missed. Each was found the same way: by opening the page and using it as a student would. Two of them now have automated guards.
How it was made
I designed draftdrill, made its decisions and checked its results. AI coding agents (Claude Code) wrote much of the code. The workflow keeps that honest: features start as a written design I approve, become a step-by-step plan, and are reviewed before they merge. Those reviews have caught real defects, including a test that compared a value with itself. Every decision and its reasoning goes into a decision log. Built with Next.js and TypeScript, tested with Node's built-in test runner, hosted on Vercel.