Complete dining furniture with observed-point and native checks
The table, two backed chairs and accepted stool form four editable roots with 37 closed parts. Original-frame owner-observation gates pass; the separately authored layout certifies all 507 cross-furniture pairs at at least 5 mm separation. Full-reference table reverse-area P95 remains 48.378 mm.
Complete the table and both backed chairs alongside the accepted stool
The editable dining asset now contains four furniture roots and 37 closed components: an eight-part table, two eleven-part backed chairs and the preserved seven-part stool. CPU fitting uses the original synthetic captured observations; native Blender keeps the source geometry available in a switchable comparison collection.
The selected table and chair families use rectangular primary surfaces and four straight supports. Training observations support the visible connecting members and curved cushions. Even frames determine the fitted shapes, while every original-owner odd-frame point remains in the exported-triangle validation below; zero validation points are excluded. Candidate box membership recovers support evidence lost to competing ownership assignments.
These numbers describe the frozen fitted shapes in their original fitting coordinates. The final furniture placement is separately authored: the chair roots translate outward by 111.876 mm and 105.957 mm to remove their original intersections with the table. The table, accepted stool and fitted shape meshes stay unchanged. All 507 cross-furniture component pairs are independently certified at at least 5 mm separation in the native scene, fresh reopen, after undo and visible GLB round trip; the measured minimum is 5.550 mm. Layout edits do not change the frozen fit or its observation measurements.
The owner-observation gate does not establish full hidden-surface accuracy. For the table, fitted-area-to-full-reference P95 is 48.378 mm, compared with 17.933 mm for the original observed baseline. The completed unseen regions remain imperfect, even though the measured owner points pass the fixed 10 mm gate.
| Fitted object | All owner odd points | Triangle P95 (mm) | Within 10 mm | Closed parts |
|---|---|---|---|---|
| Table | 2,840 | 3.692 | 99.894% | 8 |
| West chair | 1,848 | 5.668 | 98.593% | 11 |
| East chair | 2,451 | 7.570 | 97.103% | 11 |

Compare with the original incomplete table and chairs
This before view uses the same comparison camera as the complete view. It shows the observed table and chairs before this completion step, alongside the already accepted stool. The original source identities, geometry, transforms, materials and face attributes remain available in the saved Blender comparison collection.
The captured scene is synthetic development evidence. Retaining the observed environment and the previous furniture observations makes the added structural surfaces and authored placement reviewable.

Inspect the complete furniture and edit it in Blender
The front view makes both chair backs, seats and support sets visible. Select a furniture root to move, rotate or scale one whole object, or select a child component to edit its native mesh. Fitted primitive parameters and provenance remain stored with the components.
Native move, yaw, scale, undo and redo checks cover the table and both newly fitted chairs; all four furniture roots are independently selectable. The saved scene reopens in a fresh process, and the visible GLB round trip is checked against the native oriented triangles and the 507 actual cross-furniture separating certificates. Frozen fitting coordinates and authored scene-layout transforms are recorded separately.
| Native scene check | Recorded result |
|---|---|
| Furniture roots | 4 independently selectable |
| Closed editable components | 37 |
| Retained source objects | 17 geometry / transform / attribute / material records |
| Native operations | Table and two chairs: move / yaw / scale / undo / redo; fresh scene reopen passed |
| Visible GLB | 38 meshes; maximum corner error 1.17727e-6 m |
| Cross-furniture pairs | 507 / 507 certified in native, fresh reopen, after undo and GLB |
| Minimum certified clearance | 5.550 mm in native, fresh reopen, after undo and GLB; required >=5.000 mm |

Inspect the supports, connections and floor contacts
The underside view exposes the table rails and support connections that are difficult to inspect from the main camera. The newly fitted table and each backed chair have four independently editable floor supports. The accepted stool retains its original three-leg structure.
Independent actual-mesh checks confirm closed positive-volume components, connected intended solid contacts and feet within 3 mm of the measured floor for the three newly fitted objects. The separate authored layout checks every vertex of all 37 furniture components against independent separating planes, certifying all 507 cross-furniture pairs at >=5 mm. Continuation through unobserved regions and hidden closed faces are declared structural completion.

Keep full-reference errors beside the observed-point acceptance
Independent reference evaluation ran after the fitted shapes were frozen and did not change their parameters. Reference-ray recall measures the fraction of valid physical reference hits within 10 mm of the fitted surfaces. Reverse-area P95 samples the complete fitted area and measures its distance to the full reference, including structurally completed surfaces.
The table reverse-area tail becomes worse than the original observed baseline, while both chair reverse-area tails improve. This is a bounded completion of one synthetic captured scene; the observation gate, structural checks, layout checks and full-reference diagnostics answer different questions. These results do not establish general real-scene reconstruction accuracy.
| Object | Reference-ray recall within 10 mm | Fitted-area P95 (mm) | Original-area P95 (mm) |
|---|---|---|---|
| Table | 96.887% | 48.378 | 17.933 |
| West chair | 94.467% | 25.088 | 27.120 |
| East chair | 92.972% | 23.502 | 35.599 |
Open the fitted stool in its original dining scene
The accepted original stool has been inserted into a copy of the dining author task at its existing world-space coordinates. The saved Blender scene contains the seat, three legs and three braces as separate editable parts, alongside the original table, chairs and environment.
All nine source objects retain their geometry, transforms, colors and source properties. The observed stool is preserved in a named comparison layer and hidden in the repaired view. Native undo and redo move the seven fitted parts together, and the unchanged saved scene opens in a fresh process.
The visible GLB contains 12 meshes and excludes the hidden original stool. Its oriented triangles match the visible scene with maximum corner distance 1.17727e-6 m. Native per-face lineage remains available in the Blender file; the GLB carries the checked visible geometry, colors and object metadata.
| Scene check | Recorded result | Scope |
|---|---|---|
| Original source objects | 9/9 retained | Geometry, transforms, colors and source properties |
| Editable replacement | 7 parts | One seat, three legs and three braces in original coordinates |
| Native operations | Undo / redo / reopen passed | Scripted native checks; fresh-process file reopen |
| Visible GLB | 12 meshes | The hidden original stool is excluded |
| Maximum GLB corner error | 1.17727e-6 m | Oriented triangle matching against visible native geometry |

Keep the original observations available for comparison
The original view below shows the fragmented observed stool before insertion. It uses the same camera as the repaired view above. The source stool remains in the saved Blender file so the observed and fitted geometry can be inspected separately.
This integration improves one stool in one authored development scene. The table, chairs, walls and floor retain their original holes and fragments. The earlier point-to-triangle measurements below continue to describe the original bounded stool fit; they do not measure the quality of the whole dining scene.

Six synthetic transfer cases, including the unaccepted controls
Six synthetic development cases were frozen before fitting: two eligible shapes, one partial/noisy stress case, and three negative cases covering four legs, an elliptical seat and an upper-only crop. The final candidates accepted are the two eligible cases and the stress case; all three negative cases remain unaccepted. Each accepted candidate also passes independent engineering checks: validation point-to-triangle P95 at most 10 mm, seven closed parts, nine solid contacts, matching assembly geometry and input identity.
The elliptical seat exposed an incorrect runtime decision: the baseline fitter gate passed, while independent triangle P95 was 12.247 mm, above the predeclared 10 mm target. The revision adds a validation-tail limit to the runtime implicit-residual gate, changing that gate from pass to fail. All 40 generated PLY files remain byte-identical on the same inputs. This changes the acceptance decision; it does not improve the candidate geometry.
The upper-only crop produced no evaluable output mesh. Its 812 validation points have no finite triangle distances, so its P95 is recorded as not available. All six initial evaluator calls also failed because of a reference-metadata schema mismatch; the corrected evaluator reran unchanged fits and references, with the original failure logs retained in the report.
The cases were frozen before the first fits, but the elliptical-seat failure was then used to revise the gate. These results are development and regression evidence. The operator-selected circular three-leg family, near-correct object boxes and exact camera poses remain assumptions; the results do not establish independent held-out or general real-furniture performance.
One methodological source is GlobFit by Li et al. (SIGGRAPH 2011), which couples local primitive fitting with global geometric relations. This implementation uses a manually specified stool family as a bounded application of that modeling idea, rather than a full GlobFit reproduction. The citation supplies traceable background, not evidence of methodological novelty.
| Case | Validation points | Triangle P95 (mm) | Baseline → revised gate | Final candidate |
|---|---|---|---|---|
| Compact / tall | 1,523 | 3.012 | Pass → Pass | Accepted |
| Wide / low | 2,338 | 3.135 | Pass → Pass | Accepted |
| Partial / noisy | 1,689 | 7.182 | Pass → Pass | Accepted |
| Four legs | 2,088 | 50.401 | Fail → Fail | Unaccepted |
| Elliptical seat | 1,945 | 12.247 | Pass → Fail | Unaccepted |
| Upper-only crop | 812 | Not available | Fail → Fail | Unaccepted |
Real Table0: background alignment still falls short of tabletop acceptance
The real tea_room Table0 plane probe did not meet the prototype requirement for at least 80% of validation observations to lie within 10 mm, with at least five validation frames. It produces no newly accepted tabletop or complete-table asset. The initial surface contains 895 triangles in 43 connected components. Of 15,361 table-box candidate observations, 9,912 (64.53%) overlap chair priors; the original ownership rule assigns 5,449 observations to the table. Counts retain repeated frames, and prior-box ambiguity is not a measured segmentation error rate.
Fitting uses frame IDs at most 30; validation uses IDs above 30. Candidates come from the Table0 box and a fixed height band from 150 mm below to 50 mm above its original top prior. Every row below retains the same 7,127 validation observations, including outliers. Distances measure agreement with a plane, not physical error against an independent reference tabletop.
The control runs point-to-plane ICP on background alone, excluding every object box expanded by 80 mm along each local axis. Training-frame background supplies the target; validation object points do not participate in alignment. Rigid transforms that pass the predeclared background checks are then applied to the validation observations, while the original trained plane and denominator remain fixed. Mean distance and the fraction within 10 mm improve, but P95 worsens and support remains below the 80% requirement.
An independent shared-cell check finds positive median height offsets of 13–18 mm for frames 46–49 relative to frame 4 in common 5 cm cells; all participating cell differences in those comparisons are positive. This supports a cross-frame geometric offset, while pose error, depth error and object motion remain unresolved causes. The next background-alignment step must also validate target geometry and tail error; background matching scores alone cannot establish a usable tabletop.
| Comparison | Mean distance (mm) | P95 (mm) | Within 10 mm |
|---|---|---|---|
| Original RoomPlan top plane | 68.1603 | 91.3593 | 0.6174% |
| Plane fitted on training observations | 15.4891 | 26.4092 | 22.7585% |
| Background-only ICP, fixed fitted plane | 11.7867 | 35.5102 | 58.1170% |
A complete editable stool in one development case
The earlier native workflow preserved source geometry through editing and export, yet the reconstructed stool still had broken legs and missing braces. That distinction prompted a separate asset-quality check: produce recognizable, closed stool parts and inspect their connections as well as the saved data.
The completed assembly contains seven individually closed editable parts: one seat, three legs and three braces. All nine intended leg-to-seat and brace-to-leg contacts have positive solid overlap. These are separate overlapping shells, so each part remains editable; the result is not a welded union mesh.
The local CPU fitter uses 3,812 prior-assigned observations from 18 frames and an explicitly operator-selected three-leg stool family. It reads the observed scene and points without reference geometry. The family supplies the part structure, including surfaces that the observations do not establish on their own.

Measure the exported triangles and retain the scope
The 1,927 even-frame points supply fitting, initialization and model selection. The 1,885 odd-frame points supply same-scene validation. Independent checks measure unsigned point-to-triangle distance on the final exported parts: the validation mean is 1.047 mm and P95 is 2.954 mm. These are triangle distances, rather than the fitter’s signed-distance residual.
The odd-frame split separates the reported points within this authored development fixture. Earlier human-directed iterations mean it cannot establish an untouched independent holdout. Contact checks establish solid overlap of the final parts, while their individually closed topology establishes editable component integrity.
This bounded result was produced with the existing local CPU tools. Full-scene quality, generalization to unseen furniture or real rooms, independent held-out evaluation and interactive performance remain pending. The S2a and earlier scene-preservation evidence below retains its original scope.
| Check | Recorded result | Denominator / interpretation |
|---|---|---|
| Development input | 3,812 points · 18 frames | Prior-assigned points from one authored stool |
| Training / validation | 1,927 / 1,885 points | Even / odd frames from the same scene |
| Editable topology | 7/7 individually closed parts | One seat, three legs and three braces |
| Intended contacts | 9/9 positive solid overlaps | Three leg-to-seat and six brace-to-leg contacts |
| Validation mean distance | 1.047 mm | Unsigned distance of 1,885 points to final triangles |
| Validation P95 distance | 2.954 mm | 95th percentile over the same 1,885 points |
S2a: different mechanisms behind the same omission metric
Competing target boxes account for 99.46% of the dining target’s missed, scorable area; 99.19% of the shelf target’s missed area lies outside its target box and is assigned to the environment. Eleven area categories preserve the original B1 predictions, confusion, unscorable and TP/FP/FN totals, with a maximum difference of 6.8213e-13 m².
All six B1 exports, native editing workflows and independent source-lineage checks passed across 491,066 faces. Twenty-four edits and 24 undo/redo cycles took 152.59 seconds; maximum source corner error was 6.1440e-7 m. Unresolved ownership stays separate. Reference labels enter only the later diagnostic.
The next task is to perform one actual competing-ownership correction, then separately investigate observed surface outside an incomplete box. Fixed scripted selections verify preservation; boundary improvement, human effort and held-out generalization are not measured. Percentages below divide by each target’s missed, scorable surface area.
| Target | Target-box overlap | Outside target box → environment |
|---|---|---|
| Contact chair | 96.17% | 0% |
| Same-colour dining | 99.46% | 0% |
| Curved sofa / wall | 0% | 99.73% |
| Occluded shelf | 0% | 99.19% |
| Thin rack / noise | 0% | 100% |
| Combined study | 13.79% | 84.03% |

S1: review observed surfaces in native Blender
The October 6, 2026 checkpoint takes the six authored S0 surface bundles into Blender 5.1.2. The local AlvenX panel imports a hashed surface bundle, transfers selected faces to an existing region, applies translation and rotation in explicit meter/degrees fields, and exports a GLB together with an identity record. Native .blend files preserve source face IDs and reviewed ownership.
Each scene task transfers 12 environmental faces to a primary region, translates that region by (0.25, −0.10, 0) m in Blender Z-up coordinates, rotates a secondary region by 32 degrees about world Z around a recorded pivot, and transfers another eight environmental faces to the already transformed secondary region. The face selections use nearest centroids to the target bounds, without reference instance labels. This checks that reassignment preserves the selected world surfaces even when the destination has moved.
The before/after images below are actual CPU Cycles renders of the combined-study reconstructed surfaces. Missing and fragmented observations remain visible. The workflow preserves and edits observed geometry; semantic quality of these scripted selections and recovery of complete objects require separate evaluation.

Measured native operation and round-trip acceptance
All six tasks passed, with four operations per scene. Every operation ran actual Blender undo and redo on its native background undo stack, then compared the source face identities, ownership, reviewed flags, world triangle corners, observed linear RGBA values and material values against the expected state. Each saved .blend was reopened in a separate fresh Blender process.
GLB verification uses one-to-one oriented triangle matching with face multiplicity at a 50 micrometer geometric tolerance. This fixes the S0 nearest-vertex ambiguity without making welded topology equivalent to surface preservation. Faces whose orientation cannot be resolved at that tolerance are counted explicitly. The original S0 failure is retained as historical evidence.
The six-scene suite took 117.30 seconds on existing local CPU tools with zero new paid services. The largest sampled Blender process-tree RSS was 1.153 GiB at 0.1-second sampling intervals. Twelve bounded face transfers took 0.0416–0.1491 seconds; their empirical 95th percentile was 0.12903 seconds. These are scripted operator timings for 20 selected faces per scene, with human review effort and interactive UI latency outside this measurement.
| Acceptance check | Observed result | Measurement scope |
|---|---|---|
| Native workflows | 6/6 pass | Six authored development scene bundles |
| Native operations + undo/redo | 24/24 pass | Four operations per scene, native background undo stack |
| Fresh-process .blend reopen | 6/6 pass · 0 m state error | World corners, ownership, review flags and metadata |
| Maximum edited corner error | 4.7762e−7 m | Source face identities against expected rigid edits |
| Maximum GLB surface corner error | 1.2839233e−6 m | One-to-one oriented triangle instances; 50 µm tolerance |
| Maximum linear RGBA difference | 1.7881393e−7 | Observed corner colors after GLB reimport |
| Fixed-view render mean RGB difference | 2.74304e−5 | One combined-study render; mean tolerance 0.01 |
| Input and export failure controls | 15/15 pass | Explicit invalid inputs and injected publication failures |
Failure controls and precise evidence boundaries
The 15 native controls exercise empty or whole-region selection, self-destination, missing identity, multi-object Edit Mode, exact selected faces, nonfinite transformations, source hash mismatch, duplicate source UUIDs or current region IDs, hidden regions, excluded view layers, blocked collections, and injected export publication failures. The records retain state comparisons and preservation of previous output hashes where applicable. The scene tasks also reject changed corner colors and changed material values.
For the combined-study fixed view, the source and GLB reimport render had mean absolute RGB difference 2.74304e−5 and maximum pixel-channel difference 0.04706; the recorded acceptance threshold is the mean of 0.01. One view and one scene give limited appearance evidence. Numeric material and observed vertex-color checks do not establish arbitrary Blender shader, UV, texture, seam or lighting fidelity.
Source face IDs live in the native .blend, with an identity sidecar recording package provenance. GLB does not preserve those native per-face editing attributes. Reopen the .blend for continued editing. The one-to-one triangle check validates surface geometry and multiplicity; welded vertex topology, seams and very small face winding remain separately scoped.
S1 is scripted engineering acceptance on six authored development groups. Interactive human correction quality and effort, independent real-instance labels, held-out results, complete-object recovery and whole-machine OS network isolation remain pending. S0 scores below continue to describe reconstructed scorable surface selection.
Open an editable package or replay the native suite
The bundled combined-study archive supplies native .blend, GLB, identity and evidence records from the authored MIT input. Follow the S1 runbook to verify file hashes, register blender_edit.py in Blender, open the saved scene and inspect the AlvenX panel. The .blend is the editable source; the GLB is its checked interchange asset.
For a full replay, prepare the six S0 bundles with the existing development runner and use an empty output directory for run_edit_suite.py. The runner launches native Blender task processes and independent reopen processes, retains logs and writes a deterministic evidence structure with actual measured timing. Dependencies and input assets must be available locally before running.
python run_edit_suite.py --results .\local-s0 --output .\local-s1 --blender "C:\Path\To\Blender\blender.exe"S0: six complex development groups with physical references
The preceding partition checkpoint is the October 4, 2026 S0 development comparison: a contact chair, same-color dining furniture, a curved sofa against a wall, an occluded bookshelf, a thin rack under noise, and a combined study. The groups use 16, 18, 16, 12, 16, and 14 frames, totaling 92. Curves, concavities, thin legs, shelves, and occlusion give their geometry and layouts materially different challenges.
Physical meshes and instance labels are authored before perturbed object boxes. Ray casting uses true camera poses; scan inputs contain noisy depths and measured poses. Box size, orientation, and position errors remain input priors. Independent reference labels are loaded for scoring after all partitions have been computed.
Each group is fused into one shared CPU TSDF mesh before B0, B1, and B2 are compared: 18 of 18 method runs completed using installed local tools and zero additional paid services. The overview shows authored physical references; the measured reconstruction and selection results follow below.

Area measurements expose the tradeoff between three direct rules
B0 preserves the rule requiring all three vertices to share the same unique object owner. B1 uses the unique box owner at the triangle centroid. B2 takes 49 uniform area samples per face and accepts a majority of at least 60%, retaining unresolved overlapping priors. The rules receive identical meshes and priors and leave geometry unchanged.
Scoring weights the fixed reconstructed mesh by surface area and matches its samples to the nearest independent physical surface. The distance tolerance is 0.08 m with seven scoring samples per face; competing reference labels within a 0.002 m distance gap remain unscorable. The table gives scene macro means for six task targets. Both missed and non-target selected area ratios use all scorable target area on that scene mesh as the denominator.
B1 reached mean target IoU 0.823510, about 3.23 percentage points above B0, while non-target selected area increased from 0.0297% to 0.1348%. The additional face samples in B2 did not improve on B1 in these development groups. B1 still missed 34.07% of the same-color dining target and 27.60% of the occluded bookshelf target, leaving a concrete selection problem to improve.
A sensitivity sweep then completed 108 of 108 method runs across three matching tolerances (0.04 / 0.08 / 0.12 m) and two scoring sample counts (7 / 49 per face), with no findings in integrity and replay checks. All 18 original configurations (0.08 m, seven samples) reproduced their recorded per-object scores. Scene macro means ranked B1 > B2 > B0 in all six configurations. Holding scene, method, and tolerance fixed, the largest IoU change from sample count was 0.000826593 for the thin-rack B0 case at 0.04 m. Scorable mesh area ranged from 96.5906% to 99.9691%; this describes correspondence available on the reconstructed mesh, with independent reference surface reconstruction coverage outside the measurement.
| Rule | Mean target IoU | Mean missed target area / target area | Mean non-target selected area / target area |
|---|---|---|---|
| B0 | 0.791204 | 20.8548% | 0.0297% |
| B1 | 0.823510 | 17.5341% | 0.1348% |
| B2 | 0.818533 | 18.0361% | 0.1295% |

Development conclusions and the remaining acceptance tasks
S0 provides partition evidence from six authored development groups, with all 18 method runs completed. S1 above adds scripted native editing tasks; held-out evaluation, independent real-instance references and whole-machine OS network isolation remain pending. These scores concern reconstructed scorable surfaces; complete object coverage and unseen geometry need separate evidence.
The combined-study S0 trial retained a failed environment connectivity check for the before-edit GLB. A read-only diagnosis localized it to unstable nearest-vertex correspondence: two vertices are about 1.609 micrometers apart, all five triangle-index differences arise from that mapping, and local triangle-corner coordinate counts agree. The original record remains available. S1 above uses one-to-one oriented triangle checks and reimports the new edited tasks. The real scan and two-box fixture below retain their earlier selected-region evidence.
Reconstruction and the three-rule comparison took about 30.76 seconds. The process lifetime peak working set was 229.16 MiB for this CPU run. It is the cumulative peak of one process, with per-case incremental memory and the full process tree outside this measurement.
Earlier real-scene checkpoint: verify the edit and export path
The October 4 local run connects RGB-D capture records to measured points, a fused surface, an explicit editable region, and native Blender/GLB outputs. The acceptance gate checks source identity, units, camera conventions, the requested translation, and the geometry recovered after export.
The real input is one LiteReality/example-scans tea_room at commit 3f2ca5d618fe86b264716200baea19ae0aea0d49: 253 files, 10,518,452 bytes, and 62 matching RGB, depth, confidence, and camera records. Git identity, sizes, SHA-256 hashes, image decoding, and USDZ ZIP checks were recorded.
Preserve measured provenance and explicit geometric ownership
The parser scales RGB intrinsics to depth resolution, converts the ARKit camera basis, and preserves a Y-up meter world. It filters invalid depths and low confidence while retaining each point's color, source frame, and depth-pixel coordinates.
RoomPlan oriented boxes and finite structural exclusions supply a geometric ownership prior. Unique candidates become object regions, overlapping candidates stay ambiguous, and the remaining observations stay environmental. This retains what the scan supports while making unresolved selection explicit.
Connect CPU fusion, native editing, and independent reimports
Open3D ScalableTSDFVolume integrates the 62 full depth frames with 0.035 m voxels and 0.105 m truncation. A triangle belongs to an editable region only when all three vertices have the same unique object owner; every other face remains in the environment with a recorded count.
The Blender entry imports hashed PLY parts, converts (X,Y,Z) → (X,−Z,Y) into its Z-up meter scene, preserves source UUIDs and roles, and moves the selected Sofa0 surface region +0.3 m on X. It renders one fixed review view, saves before/after .blend files, and exports both GLBs through native I/O.
Verification imports each GLB into a fresh scene and reopens the edited .blend. It compares UUIDs, roles, triangle counts, connectivity, and world geometry. Bidirectional nearest-neighbor vertex distances allow normal/material vertex splitting; the recorded tolerance is 0.00005 m.
Earlier real scan: selected-region verification
The run used Windows, CPython 3.12.14, NumPy 2.3.5, Pillow 12.3.0, Open3D 0.19.0, and Blender 5.1.2. Reconstruction and rendering ran on CPU, with no paid service calls or model weights.
The real scan yielded 639,790 sampled observations and a fused surface with 83,425 vertices and 155,768 triangles. Sofa0's editable surface has 2,480 vertices and 4,409 triangles. Both GLB reimports reached a maximum bidirectional world-vertex distance of 8.940696716308594e−7 m, within the 50 µm tolerance; reopening the edited .blend gave 0 m.
The point edit moved 37,655 selected measurements with zero saved/reloaded translation error and preserved other points, object metadata, colors, labels, and provenance. The fused mesh retains 275 Sofa0 candidate boundary faces in the environment. The demonstrated native edit therefore covers the selected observed region.
| Real scan check | Observed result | Scope |
|---|---|---|
| Input | 62 RGB-D frames | One tea_room scene |
| CPU TSDF surface | 83,425 vertices / 155,768 triangles | Observed fused surface |
| Sofa0 selected surface | 2,480 vertices / 4,409 triangles | Geometric ownership prior |
| Selected translation | +0.3 m X | Source Y-up meters |
| Original/edited GLB reimports | 8.940696716308594e−7 m max | Bidirectional vertex distance; 50 µm tolerance |
| Edited .blend reopened | 0 m max | Native scene geometry |
| Target boundary retained | 275 candidate faces | Complete semantic extraction unverified |
Earlier public two-box control and native scene downloads
The public image is a separate original analytic fixture: two physical boxes, a floor and a back wall observed by two cameras. Its ray-cast RGB-D input, semantic labels, and physical expectations are authored independently of the scanner data.
The same CPU TSDF and Blender chain produced 9,081 vertices, 16,820 triangles, and three mesh parts. The selected fixture region moved +0.3 m on X and passed native save/export/reopen verification. Its comparison render, before/after GLBs and .blend scenes are provided under MIT, together with exact file hashes.
Real tea_room inputs and all derived geometry/renders remain local because the pinned upstream sample tree has no license file. The text results and source manifest document that experiment; the downloads below contain only the original public fixture.
Reproduce the public chain from prepared local tools
The runbook separates one-time software preparation from local execution. Prepare the pinned CPython 3.12 environment and Blender 5.1.2 first, then set the executable paths below. The fixture can be generated locally without any external scan.
The commands reconstruct the original fixture, fuse its surface, edit synthetic-target, and write native scenes, GLBs, renders, and verification JSON into .local directories. The runbook separately documents the pinned real-input experiment.
$Python = (Resolve-Path '.local\venv312\Scripts\python.exe').Path
$Blender = 'C:\path\to\blender\blender.exe'
& $Python fixtures/make_rgbd_fixture.py --output '.local\fixture-input' --resolution-scale 4
& $Python scan_pipeline.py reconstruct --input '.local\fixture-input' --output '.local\fixture-before' --frame-step 1 --pixel-step 2 --min-confidence 1 --max-depth 6 --voxel-size 0.015 --box-margin 0.025 --structure-tolerance 0.025
& $Python -m unittest discover -s tests -v
& $Python reconstruct_mesh.py --scene '.local\fixture-before\scene.json' --output '.local\fixture-surface' --voxel-size 0.035 --truncation 0.105
& $Blender --background --factory-startup --python blender_scene.py -- --scene '.local\fixture-surface\surface-scene.json' --output '.local\fixture-blender' --object synthetic-target --translate 0.3 0 0Keep completeness, physical accuracy, and network isolation separate
The earlier real-scene checkpoint uses one real scene with no independent object-dimension or semantic-instance ground truth. Inverse projection and same-scanner PCD comparisons check numerical or coordinate agreement. The observed region does not establish a complete furniture asset, unseen backs, or independently measured physical accuracy.
Software and input were prepared online. Python audit guards were installed separately in the reconstruction interpreter and Blender's embedded Python. Deliberate DNS probes were rejected, and recorded execution used prepared local files. Native C networking and independent child processes are outside these guards; whole-machine disconnected execution remains unverified.
The engineering contribution is the bounded scanner parser, preserved provenance, explicit region-selection contract, original negative controls, and native geometry verification connecting established TSDF and Blender tools. Stage 1's three-cuboid experiment remains available as historical evidence.