One section. Ten real AI edits.
A real DeepSeek session changes elevations, depth, boundaries, soil patterns and observations on the same original synthetic geological section. Each change is reviewed before it becomes editable CAD.
Full, uncut browser recording above. The README GIF is a condensed excerpt from this same video; it does not synthesize frames or model responses.
The ten requests
| Round | Request |
|---|---|
| 1 | Raise SYN-03's collar elevation by 0.65 m, keeping the other holes unchanged. |
| 2 | Extend SYN-08 by 2 m, changing only the bottom weathered-rock interval. |
| 3 | Set SYN-02's stable groundwater depth to 4.90 m. |
| 4 | Move SYN-04's clay boundary down by 0.80 m and update the next interval's top. |
| 5 | Rename all eight first layers to 示例耕植土 and change their lithology, native hatch and legend together. |
| 6 | Add the specified sample at 11.25 m in SYN-05. |
| 7 | Change SYN-03's specified SPT observation to N=32 at 16.50 m. |
| 8 | Delete SYN-06's specified sample at 21.30 m. |
| 9 | Move SYN-05's section station to 85.50 m. |
| 10 | Remove SYN-04's supplied stable-water fact and mark it unknown, retaining its initial water observation. |
What was checked
Every approved revision is compared with a separately compiled expected target: exact source facts, unchanged unrelated facts and objects, and native CAD geometry. The final workflow also exercises native undo, redo, actual browser DXF download and DXF reopening. The manifest includes every captured model request and reported token receipt, including rejected attempts and repairs.
This recorded run used 21 actual requests. The provider reported deepseek-flash for the requested deepseek-chat alias: 380,008 input + 4,492 output = 384,500 total tokens. One invalid boundary proposal was rejected and repaired before review; its 40,321 tokens are included. No unavailable-viewer state was observed by the recorder's browser mutation gate. The preceding run failed to produce a fifth-round proposal and is included in the development-run history.
Reproduce the run
Check out the repository, install its development dependencies and build. Use Node.js 22+, the repository's Playwright setup and your own DeepSeek credential in KJDRAW_DEEPSEEK_API_KEY. Never put a key in the command or commit it.
npm install
node scripts/build.mjs
node scripts/record-synthetic-geology-demo.mjs --live --output .cache/my-live-run --model deepseek-chat --timeout-ms 180000
Use a new output directory for every run. KJDRAW_CHROME_PATH can select an existing Chrome installation. This calls the real paid API; responses, timing and cost can differ. The recorder rejects preset model endpoints and retains failed-run evidence.
Scope and provenance
- All eight holes, 48 intervals, observations and patterns are original public synthetic data, not a private project. No actual organization or personnel information is used.
- The starting drawing is built by KJDraw's trusted host compiler. The ten subsequent edits use real model calls; initial AI creation is not claimed.
- The reproducible harness performs the reviewer approvals. This is not independent human-user acceptance.
- Edits use the retained source-backed document. The exported DXF preserves supported native graphics, not its source recipe or internal UUIDs. Arbitrary imported DXF source reconstruction is not claimed.
- This is a demonstrated workflow, not a comparative benchmark or evidence of universal correctness or token savings.