opencad
← Reconstruction corpus
ReconstructionPASS 11/11

NASA axisymmetric transonic bump

The Bachalo-Johnson axisymmetric transonic bump as one solid of revolution for a CFD outer-mould line.

Facts

Backend
Zoo KCL
Gates
11 pass, 0 fail, 1 n/a
Bounding box
1550.0 × 190.5 × 190.5 mm
Volume
29664.26 cm³
Process
CFD outer-mould-line reconstruction; no manufacturing process specified
Release
reconstruction
Truth case
yes, scored against held-back geometry

Source

contract.yaml (design contract)

Design intent

Reconstruct the Bachalo-Johnson axisymmetric transonic bump as ONE solid of revolution for a CFD outer-mould line. The attached spec is inch-native (cylinder diameter 6 in, bump chord 8 in, bump height 3/4 in); convert to millimetres. Frame: +x along the cylinder axis with the bump chord occupying x = 0 to x = c, origin on the axis. Revolve the meridian a full 360 degrees. The bump is a circular arc of radius R1 = 0.5 (t^2 + 0.25 c^2) / t; blend it to the upstream cylinder with a leading-edge fillet R2. The references list R2 as 18.30 cm (use 183.0 mm) with 20.32 cm as a documented alternate (open question, inferred). No trailing-edge fillet. Axial extent is the x-range of the attached surface-point file (nondimensional by the 8 in chord; multiply by 8 inches to get millimetres). Name the two planar end caps. Expose cylinderDiameter, bumpChord, bumpHeight and filletRadius. One solid; export STEP and STL.

Gates

TierGateResultEvidence
Acontract_provenance
Contract validates; every value carries provenance and a tolerance
PASSdesigns/nasa-atb-axisymmetric-bump/contract.yaml: 6 parameters {'stated': 3, 'inferred': 1, 'measured (reference model)': 2}
Aenvelope
Bounding box of the exported STEP equals the contract envelope
PASSresults/nasa-atb-axisymmetric-bump/inspect.json bbox.max_error = 0.0 (tol 0.05)
Amass_properties
Volume, surface area and centre of mass within contract tolerance (independent STEP measurement)
PASSresults/nasa-atb-axisymmetric-bump/inspect.json volume = 29664258.0866 vs 29664257.630154
Afeatures
Every required feature, section and named face verified on the STEP
PASSresults/nasa-atb-axisymmetric-bump/inspect.json features: 6/6 ok; failed required []; failed optional []; unverified []
Areference_fidelity
Deviation from the reference model within the contract band (when a reference exists)
n/aresults/nasa-atb-axisymmetric-bump/inspect.json deviation.p95 = None hausdorff = None silhouette_iou_min = None
Bexport_agreement
KCL (Zoo), STEP (OpenCascade) and STL (trimesh) volumes agree
PASSresults/nasa-atb-axisymmetric-bump/inspect.json agreement kcl=29612763.095428817 step=29664258.086577885 stl=29612762.54172923 (rel tol 0.002)
Bedit_robustness
Declared parameter edits rebuild with the expected effect; baseline re-export hash unchanged
PASSresults/nasa-atb-axisymmetric-bump/edit.json 2/2 edit tests ok; restore.ok = True
Bsource_hygiene
KCL 2, mm, formatted, lint-clean, named parameters match the contract, asserts present
PASSresults/nasa-atb-axisymmetric-bump/verify.json hygiene: kcl2=True mm=True legacy=[] params_ok=True asserts=15
Cexport_integrity
Deterministic STEP (two exports identical), valid B-rep, expected solid count, watertight STL (solid shells == solids)
PASSresults/nasa-atb-axisymmetric-bump/export.json step.deterministic = True sha256 4e9a8107d297; stl=present; glb=present
Ctraceability
Every stage JSON present with tool versions, git head, Codex thread ids, engine-call ledger; no --allow-errors
PASSstages present: {'plan': True, 'model': True, 'verify': True, 'export': True, 'inspect': True, 'edit': True}
Cevidence_separation
Contract agreement, reference agreement and physical validation are reported as separate verdicts
PASSresults/nasa-atb-axisymmetric-bump/inspect.json carries contract checks (volume/bbox/features) and a separate deviation block (reference = None)
Cindependence
The KCL is editable construction: no import of reference geometry, sketch blocks and features present
PASSresults/nasa-atb-axisymmetric-bump/verify.json hygiene.forbidden_imports = [] sketch_blocks = 2 feature_ops = 1 lines = 98