mohan-bee/tscircuit-robot-vacuum
A tscircuit package created by mohan-bee.
- Version
- 1.0.0
- License
- unset
- Stars
- 0
docs/build-report.md
# Final build report — robot vacuum R0
Verified 3 November 2026 using the pinned dependencies in this project. This report describes the delivered design, not a tested physical robot.
Publication preparation on 3 November 2026: constrained the cloud build and preview to `index.tsx`, retained explicit schematic positions to clear label collisions, and adjusted passive PCB orientations recommended by the placement checker. TypeScript, netlist, schematic placement, PCB placement, native CLI build and structural verification passed. The standalone source and native previews were regenerated. The 18 existing native warnings and engineering-draft status remain.
## Results
| Check | Observed result |
| --- | --- |
| TypeScript | `npm run typecheck` passed, exit 0. No dependency type errors after targeting ES2023. |
| Native assembly/electrical generation | `npm run build` passed, exit 0. |
| Physical main PCB | Exactly one board, 160 × 130 × 1.6 mm, four layers. |
| PCB placement | 79 PCB component records including four bare DNP test pads; 239 SMT pads, 51 plated holes and four mounting holes. |
| Electrical source | 63 named nets and 276 source traces. These are logical connections, not final copper tracks. |
| Schematic | Eight native sheets. Shared nets belong to the same physical board. |
| Assembly | 15 native printed parts, 15 approximate purchased part envelopes, and 75 physical component CAD records. |
| Mounting | Native `CHASSIS.pcb` reference; posts and board holes use the same (±72, ±52) mm coordinates. |
| Exploded view | Three native stages; four moves. Full-board coverage is incomplete for the reason below. |
| Native errors | Zero error records in final Circuit JSON. |
| Native warnings | 18 total: 17 unresolved connector MPNs; one incomplete collision check for the PCB body. Warnings remain in `dist/diagnostics.json`. |
| Native 3D scenes | Assembled, exploded and lid-removed GLBs exported successfully. PNGs were rendered with the tscircuit ecosystem's PoppyGL renderer and visually inspected. |
| PCB/schematic | Native SVG exports generated, plus a PCB PNG. |
| Printable mesh delivery | All 15 parts exported as separate native-mesh STLs. Every part has zero boundary, nonmanifold, inconsistent and degenerate counts in the final manifest. |
| Native STEP | `assembly-step` exported successfully; archive contains 15 separately named printed-part STEP files. |
| Netlist/BOM | Native readable netlist and a draft electronics inventory are included. No purchasing/fabrication completeness is asserted. |
| Structural verification | `npm run verify` passed the board, hole, sheet, driver, printed-part, stage, reference, native-error and mesh checks. |
## Reproduced problems and workarounds
**PCB collision coverage:** a native pin header generates a `circular_hole_with_rect_pad` record. The pinned core's drill parser rejects that shape and excludes the complete board substrate. Bare-board and ordinary round-hole controls pass. The warning is retained in the final artifact. This is a reproduced tscircuit defect, with a minimal probe and source analysis in the gap register. Component and mechanical meshes are checkable; zero collision errors does not establish full board coverage.
**Native CSG mesh robustness:** the initial chassis and caster cup had nonmanifold/degenerate triangles at nearly coincident cylinder seam vertices. The native `StableCylinder` authoring workaround shifts the tessellation phase by 0.017 radians. All 15 final mesh checks pass without external mesh repair. A mesh diagnostic pass does not certify tolerances, self-intersection, strength, printability or fitting to purchased hardware.
**Flat schematic routing:** an initial flat schematic remained in `SchematicTraceRender` for 66 seconds before that run was stopped. Eight native schematic sheets complete successfully. This is one observed run and workaround, not a general performance benchmark.
**Chat viewer integration:** the embedded PCB viewer tool returned internal service errors on two full-source submissions. No successful inline interactive session was available. Native local compilation, TSX source and GLB/STEP/image exports succeeded. Use `npm run dev` or open `robot-vacuum.circuit.tsx` in the tscircuit editor. This service failure is not evidence that core lacks the assembly capability.
## Separate four-layer routing experiment
The final `index.tsx` intentionally keeps copper routing disabled. The separate probe in `capability-audit/routing-probe.tsx` tests actual native routing without claiming a finished power layout.
| Probe | Result |
| --- | --- |
| Default routing | Preflight stopped before invoking a solver because more than 50 traces remained. This is a policy guard, not routing incapability. |
| Supported `routeRemaining=true` | Completed in 20.335 seconds (native routing completion event at 19.199 seconds). |
| Output | 213 PCB traces, 173 vias, all four copper layers used. |
| Connectivity | Zero autorouting errors and zero unconnected-port errors. |
| Diagnostics | 17 unresolved connector MPNs and one trace-style warning in the separate experiment. |
| Width | All 1,705 wire segments were 0.15 mm wide. This is unqualified for the robot's motor/blower power distribution. |
| Evidence | Separate input, result JSON, summaries, logs, and native `dist/routing-experiment.svg` / `.png`. |
The experiment proves that this circuit graph can be routed by the native four-layer solver. It is not substituted for a reviewed copper design. Ground planes, power widths, switching loops, EMI return paths and driver thermal vias still need engineering.
## Release status
**Not fabrication-ready; not a working autonomous vacuum.** Charging and 5 V/3.3 V regulation are absent. Service rails are provided through a connector. The battery, motor, blower, connector, fuse and wire ratings are not qualified. Firmware, room mapping and app control are not implemented. Purchased mechanical bodies are simplified envelopes. Suspension, seals, latches, mounting hardware, print-bed splitting and airflow performance remain unfinished.
The body height is 110.5 mm including the nominal LiDAR body. The cover is Ø320 mm; the bumper and side brush extend farther. The detailed electrical and mechanical audits separate these project omissions from actual tscircuit limitations.
No Gerbers or other files advertised as orderable manufacturing data are included. The STEP/STL pack is for engineering inspection and prototype fit planning.