Blog
ProductGuidePhase 193D ReconstructionAI AccuracyEngineeringResearchMEP Takeoff

Phase 19 — 3D Product Surfaces Shipped; Peak P&D 80/80 Not Earned

Teraquant Team14 min read
STATUS: CLAIM_NOT_EARNED. Peak P&D 3D Detection / QA@20 ≥80% was not earned. MK artefact apps/web/data/phase19/ is absent. Percents stay null — not 0%. Peak P remains partial / FLOOR_IDENTITY_AMBIGUOUS / 0 floors / persisted false. Corpus badge INSUFFICIENT_CROSS_PROJECT_COVERAGE. Phase 20 S33 SUCCESS_MODEL_PASS (countRows = 11, lengthMetresSum = 0) is a separate offline training win, not this gate. No 80–90% claim. No IFC. Assumed storey height is labelled assumed, never measured.

This is an investigation journal plus a product how-to. Every figure below is copied from product code on main, the Phase 18 reconstruct / qty artefacts, the Phase 20 success report, and the Phase 19 stub (docs/PEAK_PHASE19_ACCURACY_REPORT.md). Nothing was re-scored for publication. There is no MK CLAIM_PASS file. Blocked work stays blocked.

What Phase 19 asked

Phase 18 shipped PDF → in-app world_metres_v1 → Schedule C mapping, then stopped: Peak P is partial, floor identity is ambiguous, and every 3D Detection / QA@20 percent is blocked (null). That path post is /blog/phase18-pdf-to-in-app-3d. Phase 19 set a different product question: unblock floor identity, let a user opt in to generate 3D on upload (default off), give the project a /3d home, and evaluate Peak P&D until 3D Detection and QA@20 each reach at least 80% — or print CLAIM_NOT_EARNED.

The estimand is qty_3d (methodVersion phase19_qty_3d_v1). It is not Phase 5–17 2D QA@20. The two scores must not be blended. Opt-in research flags (EVIDENCE_TILED_EXTRACT, VECTOR_GEOMETRY_COUNT) stay off in the signed-in default extract; they are not this 3D path either.

Verdict: CLAIM_NOT_EARNED

The earned-claim gate required a quantity-blind MK artefact with Peak live project 143a3a07-99c1-46b4-809c-716365a673b8, P drawing 198b4105-324b-4ded-8cf8-a267248b19c4, sheet P&D, both Detection and QA@20 ≥80% with n/N, and claimStatus CLAIM_PASS. That file does not exist. apps/web/data/phase19/ is absent. Phase 20 left peak80Optional.claimStatus: not_evaluated with both percents null. Because the 80/80 gate was never satisfied, this post echoes CLAIM_NOT_EARNED — not CLAIM_PASS, and not a fabricated 0%.

GateResultn/NNote
Peak P&D 3D Detection ≥80%CLAIM_NOT_EARNEDnull / nullMK artefact absent. Phase 18 leftover: blocked, percent null.
Peak P&D 3D QA@20 ≥80%CLAIM_NOT_EARNEDnull / nullSame. Inventory 139 drawable rows is not an evaluated denominator.
Corpus 80–90%not claimed0 evaluated / 21INSUFFICIENT_CROSS_PROJECT_COVERAGE. Peak-only would still need CLAIM_PASS first.

What did ship (and what did not)

  • Upload checkbox Generate 3D model / 產生 3D 模型 — default unchecked. PDF only. Not an accuracy claim.
  • Project page /projects/[id]/3d with a file picker, Model3dViewer, inspector, and a footer that says in-app world_metres_v1 only — no IFC export.
  • Dashboard 3D nav link. Drawing-tab 3D 模型 / 3D model (Phase 18) is unchanged.
  • Qty3dPanel (dashboard Detection / QA@20 / Coverage tiles) was not shipped. There are no qty3d.* strings. Do not read the Peak 研究成果 strip as 3D qty — those tiles are published 2D research (QA@20 37.6%, Detection 78.6%, Classification 90.2%).

Phase 20 S33 is separate

A day later, Phase 20 earned SUCCESS_MODEL_PASS on training_data/澳門大學—S33教職員宿舍建造工程/圖則.pdf: sole-storey G, four printed-label fittings, fabricatedGeometry false, countRows = 11, lengthRows = 0, lengthMetresSum = 0. That model was never persisted to the product database. The signed-in Peak 3D tab does not show those four fittings. See /blog/phase20-first-training-3d-model. Do not import S33’s offline count into a Peak 3D Detection percent.

How to use the shipped 3D surfaces

The rest of this post is a walkthrough of what is on main — not a claim that 3D takeoff is product-default accurate. For upload, extract, legend takeoff, geometric length, Schedule C, and ClaimReview Match on a draft claim, start at /blog/how-to-use-teraquant. Match-to-SOR is a 2D draft-claim path; this post does not attach a ClaimReview to an unearned 3D 80/80 score.

Host: https://www.teraquant.ai. Vertical slice: Peak project 143a3a07-99c1-46b4-809c-716365a673b8, P drawing 198b4105-324b-4ded-8cf8-a267248b19c4. Screenshots below are local captures of shipped chrome on 2026-08-16. They are not a certified production Clerk session. No pipes were painted.

1. Sign in and leave Generate 3D unchecked

Sign in at https://www.teraquant.ai/sign-in. Open The Peak from /projects, or go to /projects/143a3a07-99c1-46b4-809c-716365a673b8. Above the PDF / XLSX dropzone sits Generate 3D model / 產生 3D 模型. It starts unchecked. The helper says the control is optional, default off, PDF-only, and not a quantity-accuracy claim. Spreadsheets are still ingested as SOR. Last-checked is not stored in localStorage.

Peak project dashboard with Generate 3D model checkbox unchecked, PDF dropzone, and a 3D nav button
Shipped upload cluster (2026-08-16 local capture of dashboard chrome). Checkbox 產生 3D 模型 is unchecked. Helper: optional, default off, not a quantity-accuracy claim, PDF only. Header 3D nav is present. Not a signed-in production Clerk session. No reconstruct was triggered for this shot.

2. The dashboard has no 3D qty tiles

Under the title row, Peak shows a 研究成果 / Research findings strip. Those numbers are the published 2D series (Phase 1 classification, Phase 12–14 continuity Detection / QA@20). They are labelled 已發布基準研究 / Published benchmark. They are not qty_3d. Immediately below that strip is the upload checkbox — there is no Qty3dPanel with 3D Detection / QA@20 / Coverage. Missing tiles are not 0%.

Peak dashboard research strip with 2D published metrics, then the unchecked generate-3D checkbox and no 3D quantity panel
Shipped dashboard body (2026-08-16). 研究成果 tiles QA@20 37.6% / Detection 78.6% / Classification 90.2% are 2D published research, not 3D qty. No Qty3dPanel between the strip and upload. CLAIM_NOT_EARNED is the Phase 19 gate, not a number on this screen.

3. Open /3d

Use the 3D button in the header cluster, or go to /projects/143a3a07-99c1-46b4-809c-716365a673b8/3d. The page is full-width: file list, Model3dViewer, inspector. Pick P 06 AI007_Construction Drawing(12-6-2026).pdf. Peak P still reconstructs as partial: 0 floors, 0 elements, FLOOR_IDENTITY_AMBIGUOUS on pages 2 and 3. The empty-state copy says the tab will not invent pipes. The footer repeats: in-app world_metres_v1 only; no IFC export. Open on drawing jumps to the CAD viewer — it does not fabricate a mesh.

Project 3D page on Peak P showing empty diagnostics, FLOOR_IDENTITY_AMBIGUOUS, zero floors, blocked SOR 3D strip
Shipped /projects/[id]/3d (2026-08-16 local capture). Centre: 為何這個 3D 檢視是空的, 0 floors, 0 elements, FLOOR_IDENTITY_AMBIGUOUS p.2 / p.3. Inspector SOR 3D strip: Count —, Length —, 已封鎖(不是 0%). Source: live reconstruct (read-only). No mesh. Do not read this as 3D Detection = 0%.

4. The drawing 3D tab is the same empty Peak P

Open the P drawing. Flip the centre canvas from 圖則 / Drawing to 3D 模型 / 3D model, or open the inspector work tab of the same name. You should see the same diagnostics as /3d: partial, 0 floors, FLOOR_IDENTITY_AMBIGUOUS. The Phase 20 SOR 3D strip (qty_3d, not Schedule C) shows dashes and 已封鎖(不是 0%). 圖紙總覽 / Drawing summary stays on 2D extract plus live SOR match.

Drawing viewer 3D model tab on Peak P: empty diagnostics, no mesh, inspector SOR 3D strip blocked
Shipped drawing 3D tab on Peak P (2026-08-16). 3D 模型 selected. Empty-state title 為何這個 3D 檢視是空的. Causes: floor identity ambiguous, 0 floors, no 3D elements. No fabricated pipe tree. The Phase 5 demo-grid annotator is not used.

5. Assumed storey height is labelled assumed

The inspector exposes Assumed storey height / 假設層高 with a numeric field (library default 3.15 m), Use 3.15 m, Clear assumed height, and Rebuild / Persist. Preview-only until Rebuild. After you opt in, both the canvas and the inspector must show 假設標準層高(非量度) / Assumed typical storey height (not measured). On Peak P the floor count stays 0: assumed height does not invent storeys or pipes, and it is excluded from any measured length. Do not call this 量度.

Peak P 3D tab with assumed 3.15 m storey height banners; still zero floors and FLOOR_IDENTITY_AMBIGUOUS
Opt-in assumed preview on Peak P (2026-08-16). Canvas and inspector: 假設標準層高(非量度). Input 3.15 m. Rebuild / Persist is the persist path; assumed stays assumed. Floors still 0, elements still 0, FLOOR_IDENTITY_AMBIGUOUS unchanged. No pipes painted.

What not to expect

  • No Peak P&D 3D Detection / QA@20 ≥80% headline. STATUS is CLAIM_NOT_EARNED.
  • No corpus 80–90%. Coverage remains INSUFFICIENT_CROSS_PROJECT_COVERAGE.
  • No fabricated pipe tree. If the model is empty, the UI stays empty.
  • No IFC, Revit or glTF export.
  • Do not blend Phase 17 2D QA@20 (or the Peak 研究成果 37.6%) into a 3D score.
  • Do not treat Phase 20 S33 countRows = 11 as Peak 3D Detection.
  • ClaimReview Match-to-SOR stays on 2D draft claims (see the field guide). There is no 3D ClaimReview for an unearned 80/80.

What happens next

  • Peak P still needs title-block floor identity and cropped montage insets before any 3D Detection percent can exist.
  • Do not promote 3D quantity as a product accuracy headline until an MK artefact writes CLAIM_PASS with n/N.
  • Phase 20’s S33 model may be persisted only via the opt-in reconstruct path. It does not unblock Peak.
  • A later dashboard Qty3dPanel, if shipped, must show — for blocked / not evaluated, never 0%.

Internal stub: docs/PEAK_PHASE19_ACCURACY_REPORT.md. Phase 18 path: /blog/phase18-pdf-to-in-app-3d. Phase 20 S33: /blog/phase20-first-training-3d-model. Field guide (including ClaimReview Match on draft): /blog/how-to-use-teraquant.