Skip to content

[codex] Recalibrate S1 CAD and add multi-scale assets - #22

Draft
recklessnode wants to merge 4 commits into
mainfrom
codex/s1-1-87-recalibration
Draft

[codex] Recalibrate S1 CAD and add multi-scale assets#22
recklessnode wants to merge 4 commits into
mainfrom
codex/s1-1-87-recalibration

Conversation

@recklessnode

@recklessnode recklessnode commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Recalibrates the S1 printable vehicle family around a documented full-size dimensional basis, with HO 1:87.1 as the legacy/default world-scale profile.
  • Extends the CAD generator with named N, HO, O, and custom scale profiles, while keeping full-size design dimensions stored once and manufacturing parameters in model millimeters.
  • Keeps the legacy root HO assets and checked-in generated profile assets under cad/s1/generated/ho-1-87/ and cad/s1/generated/o-1-48/.
  • Replaces oversized printed container-like blocks with carrier pockets for store-bought scale containers: HO for HO assets, O for O assets.
  • Regenerates STLs, split alternatives, STL-derived previews, asset reports, asset manifests, and H2C-oriented generic 3MF import plates.
  • Emits O-scale split and multi-plate H2C projects when complete cars or modules exceed the selected H2C usable area.

Audit Remediation

  • Replaced the old symmetric H2C bed assumption with selectable asymmetric H2C modes: dual = 300 x 320 mm and single = 305 x 320 mm. PR assets validate against the stricter dual-nozzle area.
  • Added deterministic 90-degree H2C packing rotation where required and regenerated every H2C fit claim/project.
  • Derived coupler pivot spacing from the declared over-coupler-face length and added s1_coupler_face_length_reference.stl to validate the assembled sled/coupler measurement.
  • Reclassified generated 3MF archives as generic importable model plates, not native Bambu Studio projects.
  • Added cad/s1/bambu-studio-smoke-test.md and embedded Metadata/bambu-studio-smoke-test.md in each 3MF archive.
  • Proved N and custom 1:64 profile render/validation paths into /tmp/atos-s1-generated without committing those extra generated assets.

Rendering and CAD architecture

  • OpenSCAD remains the editable source of record under cad/s1.
  • Shared source dimensions live in cad/s1/s1_parameters.scad; s1_scale_ratio derives scale-dependent vehicle, module, container, clearance, and split geometry.
  • Manufacturing values such as wall thickness, tolerance, pins, latch slots, split keys, container pocket clearances, and minimum decorative details remain model-space parameters rather than blindly scaled geometry.
  • tools/cad/s1_generate_and_validate.py selects profiles with --profile, --profiles, --custom-scale, --generated-output, --generated-root, and --h2c-nozzle-mode.
  • The validator renders STLs, repairs split meshes through manifold3d, validates profile envelopes, validates scale container pockets, validates assembled coupler-face length, validates split/full external dimensions, validates selected H2C fit, writes generic 3MF import plates, writes manifests, and emits reports and SVG previews.

Container fit

  • HO 40-foot adapter validation: 141.48 x 29.19 mm pocket around the 1:87.1 ISO reference.
  • HO twin-20 adapter validation: two 71.05 x 29.19 mm pockets around the 1:87.1 ISO reference.
  • O 40-foot adapter validation: 255.50 x 51.99 mm pocket around the 1:48 ISO reference.
  • O twin-20 adapter validation: two 127.71 x 51.99 mm pockets around the 1:48 ISO reference.
  • Printed adapters are cradles; purchased scale containers provide the cargo body height and exterior detail.

Generated assets

  • Legacy HO root output remains in cad/s1/stl, cad/s1/previews, cad/s1/3mf, cad/s1/asset-report.md, and cad/s1/asset-manifest.json.
  • Generated HO assets are committed under cad/s1/generated/ho-1-87/.
  • Generated O assets are committed under cad/s1/generated/o-1-48/.
  • N-scale and custom 1:64 generation are validated by command, but their generated assets are not committed because the requested checked-in assets were HO and O.
  • O-scale oversized measurement references remain validated STL assets and are omitted from H2C fixture 3MF plates unless they fit the selected build area.

3MF / Bambu Studio

  • The generated .3mf files are generic 3MF model plates with ATOS metadata.
  • They are not native Bambu Studio project files and do not claim automatic printer, filament, or process setting application.
  • The reproducible manual Bambu Studio open/slice smoke test is documented in cad/s1/bambu-studio-smoke-test.md and embedded in each 3MF under Metadata/bambu-studio-smoke-test.md.

Cross-system impact

  • Updated S1 CAD docs and the dimensional-basis engineering note.
  • No dispatch, simulator, power, editor, backend, or runtime behavior was changed.
  • No architectural doctrine was modified.

Tests and validation

  • python3 -m py_compile tools/cad/s1_generate_and_validate.py
  • python3 tools/cad/s1_generate_and_validate.py --profiles ho,o --h2c-nozzle-mode dual
  • python3 tools/cad/s1_generate_and_validate.py --h2c-nozzle-mode dual
  • python3 tools/cad/s1_generate_and_validate.py --profiles ho,o --h2c-nozzle-mode dual --no-render
  • python3 tools/cad/s1_generate_and_validate.py --h2c-nozzle-mode dual --no-render
  • python3 tools/cad/s1_generate_and_validate.py --profile n --generated-output --generated-root /tmp/atos-s1-generated --h2c-nozzle-mode dual
  • python3 tools/cad/s1_generate_and_validate.py --custom-scale 64 --custom-name custom-1-64 --generated-root /tmp/atos-s1-generated --h2c-nozzle-mode dual
  • python3 tools/cad/s1_generate_and_validate.py --profile n --generated-output --generated-root /tmp/atos-s1-generated --h2c-nozzle-mode dual --no-render
  • python3 tools/cad/s1_generate_and_validate.py --custom-scale 64 --custom-name custom-1-64 --generated-root /tmp/atos-s1-generated --h2c-nozzle-mode dual --no-render
  • Manifest JSON parse validation for root HO, generated HO/O, N, and custom manifests
  • NDJSON parse validation for docs/provenance/ai-contributions.ndjson
  • git diff --check
  • npm test
  • npm run lint
  • npm run build
  • VITE_BASE_PATH=/ATOS/ npm run build

AI provenance

  • Exact runtime model identifiers were not exposed by the Codex environment.
  • Requested Sol/Terra/Luna style boundaries were followed conceptually, with the actual model recorded as inherited-model-unreported.
  • docs/provenance/ai-contributions.ndjson contains the machine-readable records for this PR.
  • No source-file authorship headers were added.
  • No Chromium/browser screenshot capture was used.

Explicit non-goals

  • No dispatch planner, simulation engine, power solver, editor behavior, backend persistence, authentication, vehicle animation, or hardware-control behavior was changed.
  • These outputs remain prototype fit, geometry, packaging, clearance, and CG-study assets, not certified hardware.
  • Physical printing, shrinkage, and commercial container fit still require real-part validation.
  • Bambu Studio itself was not run in this environment; a reproducible manual smoke test is now documented and embedded.

Closes #21
References #17

OpenClaw System Agent added 3 commits July 17, 2026 01:27
AI-Requested-Role: Sol-style dimensional architecture; Terra-style CAD and validation implementation; Luna-style documentation cleanup

AI-Actual-Model: inherited-model-unreported

AI-Model-Override-Available: false

AI-Execution-Environment: Codex

AI-Issue: #21
AI-Requested-Role: provenance follow-up

AI-Actual-Model: inherited-model-unreported

AI-Model-Override-Available: false

AI-Execution-Environment: Codex

AI-Issue: #21

AI-PR: #22
Implement the Issue #21 addendum by deriving S1 CAD dimensions from full-size source values through named scale profiles, adding generated HO/O asset roots, manifests, profile reports, O-scale split and multi-plate H2C projects, and provenance.

AI-Requested-Role: Issue #21 addendum implementation

AI-Actual-Model: inherited-model-unreported

AI-Model-Override-Available: false

AI-Execution-Environment: Codex

AI-Issue: #21

AI-PR: #22
@recklessnode recklessnode changed the title [codex] Recalibrate S1 to 1:87 dimensions [codex] Recalibrate S1 CAD and add multi-scale assets Jul 17, 2026

Copy link
Copy Markdown
Owner Author

PR #22 audit — remaining blockers

The dimensional basis, scale-specific directories, watertight HO/O assets, container pockets, and split outputs are substantial improvements. I am keeping this draft open for four acceptance gaps:

  1. The H2C bed model is incorrect. The generator hardcodes 320 x 320 mm and validates against a 310 x 310 usable square. The H2C specification is 305 x 320 mm for single-nozzle and 300 x 320 mm for dual-nozzle printing. The current HO 300 mm sled 3MF is packed axis-aligned, so the claimed margin is not real. Model the selected nozzle mode, use the correct asymmetric usable area, support deterministic part rotation where needed, and regenerate every H2C fit claim/project.

  2. The 320 mm length over coupler faces is not geometrically validated. Validation only checks the scalar parameter is distinct from the 300 mm body. It never assembles the couplers at their pivots or measures the actual mating faces. With the current 278 mm pivot spacing, 20 mm drawbars, and fixed coupler heads, the CAD extends materially beyond 320 mm. Add an assembled reference/fixture and fail validation unless the measured coupler-face length matches the declared value.

  3. The 3MF files do not yet prove Bambu Studio project compatibility. The writer creates a generic core 3MF plus custom Metadata/atos-print-settings.json; the validator checks that custom file exists, but does not verify Bambu printer/plate metadata or that Bambu Studio applies the recommended settings. Generate actual Bambu-compatible project metadata or document these as generic importable 3MF model plates and add a reproducible Bambu Studio open/slice smoke test.

  4. N and custom profile acceptance is unproven. The CLI supports them, but the reported validation commands exercise only HO and O. Add deterministic render/validation coverage for N and at least one custom ratio, including scale-specific paths, interfaces, splits, bed fit, manifests, reports, previews, and 3MF output.

Please retain the current HO/O mesh and interface regressions while fixing these items.

END PR #22 AUDIT

Fixes PR #22 audit blockers by validating the actual H2C asymmetric bed model, measuring assembled coupler-face length, documenting generic 3MF import plates with Bambu Studio smoke-test instructions, proving N/custom profile generation, and regenerating the checked-in CAD assets.

AI-Requested-Role: PR #22 audit remediation

AI-Actual-Model: inherited-model-unreported

AI-Model-Override-Available: false

AI-Execution-Environment: Codex

AI-Issue: #21

AI-PR: #22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Recalibrate S1 vehicle family to coherent 1:87 dimensions and regenerate CAD assets

1 participant