# SW15-PANEL-ASSET R0 preliminary: 3D hull-panel asset **Verdict:** all checks pass. Generated by `hydro/hull_panel_asset.py 1.1.0` from source commit `884cbb488c99aab21efc4e932f7b4e37d2795f14`, lines SW-LP01 Rev 0a, lines geometry hash `fcf36bc01a65`, asset geometry hash `32e22d12d52f`. The file shows the eight hull panels of each demihull (four strakes per side) as named surfaces, with the keel, both chines and the boot seam as explicit lines, and places both demihulls at the source-controlled hull-centre spacing of 5.00 m. It ends at station 0 and station 10 because the source defines the stem, the stern platforms and the transom in profile only. It is a visualization of preliminary lines, not a construction model. ## Size and counts | Quantity | Value | |---|---:| | File size | 530,380 bytes | | Panel meshes per demihull | 8 | | Panel instances (both hulls) | 16 | | Triangles per demihull / scene | 4,800 / 9,600 | | Mesh edges per demihull | 7,508 | | Welded vertices per demihull | 2,709 | | Seam, edge and waterline segments per demihull | 3,316 | | Samples per edge | 301 | ## Verification | Check | Result | Measured | Tolerance | |---|---|---:|---:| | Seam vertices on source curves | pass | 8.86e-08 m | 1.91e-05 m | | Seam chord sagitta | pass | 8.07e-05 m | 1.00e-03 m | | Panel vertices on their edge curves | pass | 8.86e-08 m | 1.91e-05 m | | Open boundary only at stem edge, sheers, transom edge | pass | 616 boundary edges, 1 loop | 616 edges, 1 loop | | Interior seams manifold | pass | 0 non-manifold edges, Euler 1 | 0, 1 | | Self-intersections | pass | 0 | 0 | | Normals unit length and outward | pass | min dot 0.939 | > 0 | | Duplicate panels | pass | 8 distinct | 8 | | Two instances at hull-centre spacing | pass | 5.000 m | 5.000 m | ## Panels | Mesh | Strake | SUN-57 zone | Side | Edges | Vertices | Triangles | Max deviation (m) | |---|---|---|---|---|---:|---:|---:| | `panel_bottom_starboard` | bottom | bottom | starboard | keel / chine1 | 602 | 600 | 6.81e-08 | | `panel_bottom_port` | bottom | bottom | port | keel / chine1 | 602 | 600 | 6.81e-08 | | `panel_bilge_starboard` | bilge | lower bilge | starboard | chine1 / chine2 | 602 | 600 | 6.02e-08 | | `panel_bilge_port` | bilge | lower bilge | port | chine1 / chine2 | 602 | 600 | 6.02e-08 | | `panel_upper_bilge_starboard` | upper_bilge | upper bilge | starboard | chine2 / boot | 602 | 600 | 6.51e-08 | | `panel_upper_bilge_port` | upper_bilge | upper bilge | port | chine2 / boot | 602 | 600 | 6.51e-08 | | `panel_topside_starboard` | topside | topside | starboard | boot / sheer | 602 | 600 | 8.86e-08 | | `panel_topside_port` | topside | topside | port | boot / sheer | 602 | 600 | 8.86e-08 | ## Lines | Mesh | Kind | Source curve | Vertices | Max vertex deviation (m) | Max chord sagitta (m) | |---|---|---|---:|---:|---:| | `seam_keel` | seam | keel | 301 | 6.81e-08 | 8.07e-05 | | `seam_chine1_starboard` | seam | chine1 | 301 | 5.72e-08 | 4.98e-05 | | `seam_chine1_port` | seam | chine1 | 301 | 5.72e-08 | 4.98e-05 | | `seam_chine2_starboard` | seam | chine2 | 301 | 6.02e-08 | 4.51e-05 | | `seam_chine2_port` | seam | chine2 | 301 | 6.02e-08 | 4.51e-05 | | `seam_boot_starboard` | seam | boot | 301 | 6.51e-08 | 2.83e-05 | | `seam_boot_port` | seam | boot | 301 | 6.51e-08 | 2.83e-05 | | `edge_sheer_starboard` | edge | sheer | 301 | 8.86e-08 | 4.21e-05 | | `edge_sheer_port` | edge | sheer | 301 | 8.86e-08 | 4.21e-05 | | `edge_station0` | edge | station 0 section | 9 | 3.35e-08 | 0.00e+00 | | `edge_station10` | edge | station 10 section | 9 | 3.21e-08 | 0.00e+00 | | `line_dwl_starboard` | waterline | dwl | 301 | 7.29e-08 | 2.97e-05 | | `line_dwl_port` | waterline | dwl | 301 | 7.29e-08 | 2.97e-05 | ## 1:15 model-assembly scene `model_1_15` All model checks pass. One demihull at 1:15 with the released canoe-body strakes and the SW15-ENDS R0 preliminary end parts (artifact commit `c7ced99`, geometry source commit `d308e7e`): 28 parts, 6,285 triangles, 14 lines, length 1040.000 mm, 834 interpenetrations over 21,852 candidate pairs, sides mirror to 0.0e+00 mm. Model geometry only. **Assembly finding.** The accepted SW15-ENDS R0 backing strips are full-width inner offsets of their strakes, so adjacent strips overlap each other at every chine and the two bottom strips overlap at the keel, each by up to one skin thickness times tan(half the panel turn); the topside strip END-ST-BKG-04 keeps its full height to the transom crossing over its whole 10 mm span, so aft of station 10 it passes through the sole plate and the transom plate. The record defines no mitre, notch or trim for these, and this asset reproduces the record as accepted. Resolution belongs to an SW15-ENDS R1, not to this visualization. Crossing triangle pairs by part pair: `END-ST-BKG-01-P x END-ST-BKG-01-S` 58, `END-ST-BKG-01-P x END-ST-BKG-02-P` 98, `END-ST-BKG-01-S x END-ST-BKG-02-S` 98, `END-ST-BKG-02-P x END-ST-BKG-03-P` 110, `END-ST-BKG-02-S x END-ST-BKG-03-S` 110, `END-ST-BKG-03-P x END-ST-BKG-04-P` 110, `END-ST-BKG-03-S x END-ST-BKG-04-S` 110, `END-ST-BKG-04-P x END-ST-SOLE` 27, `END-ST-BKG-04-P x END-ST-TR` 30, `END-ST-BKG-04-S x END-ST-SOLE` 53, `END-ST-BKG-04-S x END-ST-TR` 30. Unexplained pairs: none. | Inspection nominal | Record | Measured | Difference | Tolerance | Result | |---|---:|---:|---:|---:|---| | length stem tip to trailing edge (mm) | 1040.000000 | 1039.999980 | -1.95e-05 | 1e-03 | pass | | stem tip x (mm) | -20.000000 | -20.000000 | +4.47e-07 | 1e-03 | pass | | stem tip z (mm) | 131.333333 | 131.333336 | +3.23e-06 | 1e-03 | pass | | trailing edge x (mm) | 1020.000000 | 1019.999981 | -1.91e-05 | 1e-03 | pass | | trailing edge keel z (mm) | -5.000000 | -5.000000 | +1.12e-07 | 1e-03 | pass | | keel at station 10 z (mm) | -7.266667 | -7.266667 | +2.60e-07 | 1e-03 | pass | | keel run-out angle (deg) | 6.465932 | 6.465939 | +6.74e-06 | 1e-03 | pass | | station 0 joint line x (mm) | 3.333333 | 3.333333 | +4.14e-07 | 1e-06 | pass | | station 10 joint line x (mm) | 1000.000000 | 1000.000000 | +0.00e+00 | 1e-06 | pass | | sole top z (mm) | 23.333333 | 23.333333 | +4.33e-07 | 1e-03 | pass | | transom foot x at the sole (mm) | 1002.666667 | 1002.666712 | +4.48e-05 | 1e-03 | pass | | platform sole length along the side skin (mm) | 17.333333 | 17.333269 | -6.39e-05 | 1e-03 | pass | | trailing-edge plate x (mm) | 1020.000000 | 1019.999981 | -1.91e-05 | 1e-03 | pass | | transom rake from vertical (deg) | 12.000000 | 12.000007 | +6.55e-06 | 1e-03 | pass | | transom sheer corner on H1-S-STR-04 (mm) | 0.000000 | 0.000024 | +2.41e-05 | 1e-03 | pass | | transom sheer corner on H1-P-STR-04 (mm) | 0.000000 | 0.000024 | +2.41e-05 | 1e-03 | pass | | transom plane crosses the station 10 plane at z (mm) | 35.879014 | 35.879012 | -1.80e-06 | 1e-03 | pass | | stem profile x at z = 0.0 mm (mm) | 3.328713 | 3.326786 | -1.93e-03 | 5e-02 | pass | | stem profile x at z = 23.3 mm (mm) | 2.889898 | 2.876142 | -1.38e-02 | 5e-02 | pass | | stem profile x at z = 66.7 mm (mm) | -0.032830 | -0.033743 | -9.13e-04 | 5e-02 | pass | | stem profile x at z = 100.0 mm (mm) | -5.005091 | -5.005187 | -9.58e-05 | 5e-02 | pass | | stem profile x at z = 131.0 mm (mm) | -18.355217 | -18.357506 | -2.29e-03 | 5e-02 | pass | | stem profile x at z = 131.3 mm (mm) | -20.000000 | -19.999973 | +2.67e-05 | 5e-02 | pass | | sheer extension maximum z (mm) | 131.439310 | 131.439283 | -2.65e-05 | 5e-02 | pass | | Record item | Points | Max distance (mm) | Tolerance (mm) | Result | |---|---:|---:|---:|---| | END-ST-STR-01-S edges_3d_mm | 62 | 5.82e-05 | 1e-03 | pass | | END-ST-STR-02-S edges_3d_mm | 62 | 5.82e-05 | 1e-03 | pass | | END-ST-STR-03-S edges_3d_mm | 62 | 5.82e-05 | 1e-03 | pass | | END-ST-STR-04-S outline_3d_mm on the part boundary | 26 | 4.86e-05 | 1e-03 | pass | | END-ST-TR outer_outline_3d_mm against the plane mapping | 50 | 8.94e-07 | 1e-03 | pass | | END-ST-TR deducted_outline_mm | 50 | 5.89e-05 | 1e-03 | pass | | END-ST-SOLE deducted_outline_mm | 18 | 5.66e-05 | 1e-03 | pass | | END-ST-TE deducted_outline_mm | 9 | 1.91e-05 | 1e-03 | pass | | END-SP-BLOCK outer_surface_rulings_mm | 139 | 7.43e-06 | 1e-03 | pass | | END-SP-BLOCK station_0_face_outer_half_section_mm | 5 | 2.77e-06 | 1e-03 | pass | | END-SP-BLOCK tongue sections | 8 | 6.66e-06 | 1e-03 | pass | | released topside trim_line_3d_mm on H1-S-STR-04 | 13 | 2.90e-05 | 1e-03 | pass | | released topside trim_line_3d_mm on trim_line_S | 13 | 2.90e-05 | 1e-03 | pass | | stern_surface edge keel on the seam line | 31 | 5.82e-05 | 1e-03 | pass | | stern_surface edge chine1 on the seam line | 31 | 5.82e-05 | 1e-03 | pass | | stern_surface edge chine2 on the seam line | 31 | 5.82e-05 | 1e-03 | pass | | stern_surface edge boot on the seam line | 31 | 5.82e-05 | 1e-03 | pass | | END-ST-BKG-01-S one or two skins inside the strake section | 156 | 1.30e-02 | 5e-02 | pass | | END-ST-BKG-01-S span [14.925, 15.075] m full (ends move with the panel-normal offset) | 2 | 1.94e-01 | 5e-01 | pass | | END-ST-BKG-02-S one or two skins inside the strake section | 156 | 1.38e-02 | 5e-02 | pass | | END-ST-BKG-02-S span [14.925, 15.075] m full (ends move with the panel-normal offset) | 2 | 2.18e-01 | 5e-01 | pass | | END-ST-BKG-03-S one or two skins inside the strake section | 156 | 1.52e-02 | 5e-02 | pass | | END-ST-BKG-03-S span [14.925, 15.075] m full (ends move with the panel-normal offset) | 2 | 2.28e-01 | 5e-01 | pass | | END-ST-BKG-04-S one or two skins inside the strake section | 156 | 1.76e-02 | 5e-02 | pass | | END-ST-BKG-04-S span [14.925, 15.075] m full (ends move with the panel-normal offset) | 2 | 2.43e-01 | 5e-01 | pass | | Part | Closed | Vertices | Triangles | Boundary edges / loops | Non-manifold | Euler | Result | |---|---|---:|---:|---|---:|---:|---| | `H1-S-STR-01` | open | 602 | 600 | 602 / 1 | 0 | 1 | pass | | `H1-P-STR-01` | open | 602 | 600 | 602 / 1 | 0 | 1 | pass | | `H1-S-STR-02` | open | 602 | 600 | 602 / 1 | 0 | 1 | pass | | `H1-P-STR-02` | open | 602 | 600 | 602 / 1 | 0 | 1 | pass | | `H1-S-STR-03` | open | 602 | 600 | 602 / 1 | 0 | 1 | pass | | `H1-P-STR-03` | open | 602 | 600 | 602 / 1 | 0 | 1 | pass | | `H1-S-STR-04` | open | 620 | 618 | 620 / 1 | 0 | 1 | pass | | `H1-P-STR-04` | open | 620 | 618 | 620 / 1 | 0 | 1 | pass | | `END-SP-BLOCK` | open | 216 | 291 | 139 / 1 | 0 | 1 | pass | | `END-SP-BLOCK/tongue` | yes | 13 | 22 | 0 / 0 | 0 | 2 | pass | | `END-ST-STR-01-S` | open | 62 | 60 | 62 / 1 | 0 | 1 | pass | | `END-ST-STR-01-P` | open | 62 | 60 | 62 / 1 | 0 | 1 | pass | | `END-ST-STR-02-S` | open | 62 | 60 | 62 / 1 | 0 | 1 | pass | | `END-ST-STR-02-P` | open | 62 | 60 | 62 / 1 | 0 | 1 | pass | | `END-ST-STR-03-S` | open | 62 | 60 | 62 / 1 | 0 | 1 | pass | | `END-ST-STR-03-P` | open | 62 | 60 | 62 / 1 | 0 | 1 | pass | | `END-ST-STR-04-S` | open | 34 | 32 | 34 / 1 | 0 | 1 | pass | | `END-ST-STR-04-P` | open | 34 | 32 | 34 / 1 | 0 | 1 | pass | | `END-ST-BKG-01-S` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-BKG-01-P` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-BKG-02-S` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-BKG-02-P` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-BKG-03-S` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-BKG-03-P` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-BKG-04-S` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-BKG-04-P` | yes | 28 | 52 | 0 / 0 | 0 | 2 | pass | | `END-ST-TR` | yes | 100 | 196 | 0 / 0 | 0 | 2 | pass | | `END-ST-SOLE` | yes | 36 | 68 | 0 / 0 | 0 | 2 | pass | | `END-ST-TE` | yes | 18 | 32 | 0 / 0 | 0 | 2 | pass | ## Frames, datum, units - Units: metres. Datum: Design waterline (z = 0), station 0 (x = 0), boat centreline (X = 0) at half load, 12.7 t. - Source frame: x aft from station 0 at the forward end of the design waterline; y half-breadth from the demihull's own centreline, starboard positive; z up from the design waterline (DWL). - glTF frame: glTF 2.0 right-handed: +Y up, +Z forward towards the bow, +X to port; X = -y_starboard, Y = z, Z = -x; origin at the boat centreline, station 0, DWL. - Hull centres: 5.00 m; port demihull at X = +2.50 m, starboard at X = -2.50 m. ## Omitted source geometry - spoon stem forward of station 0 (profile only in offsets.stem_profile) - stern platforms, keel run-out and reverse transom aft of station 10 (profile only in offsets.stern_platform_profile) - decks, bridgedeck, house and roof (arrangement profile only) ## Checks - `panel_vertices_on_source_edges`: pass - `normals_unit_length`: pass - `normals_point_outward`: pass - `winding_outward_and_consistent_with_normals`: pass - `no_degenerate_triangles`: pass - `no_duplicate_panel_meshes`: pass - `sides_mirror_exactly`: pass - `single_open_boundary_at_stem_sheer_and_transom_only`: pass - `manifold_interior_seams`: pass - `no_self_intersections`: pass - `seam_vertices_on_source_curves`: pass - `seam_chords_within_sagitta_tolerance`: pass - `seam_lines_coincide_with_panel_edges`: pass - `lines_are_line_strips`: pass - `two_instances_at_hull_centre_spacing`: pass - `every_panel_instanced_once_per_hull`: pass - `instances_do_not_overlap`: pass - `model_scene_separate_from_full_size_scene`: pass - `model_required_parts_present`: pass - `model_sides_mirror_exactly`: pass - `model_parts_well_formed`: pass - `model_normals_unit_length`: pass - `model_crossings_only_at_documented_backing_strip_overlaps`: pass - `model_skins_plates_and_block_free_of_crossings`: pass - `model_matches_ends_record`: pass - `model_inspection_nominals`: pass - `model_joint_lines_on_the_strake_edges`: pass - `model_all_pass`: pass - `all_pass`: pass ## Tolerances, uncertainty, software Positions are float32; below 16 m one ULP is 1.907e-06 m, so a vertex can sit at most half that from its float64 source value per axis. seam_vertex_deviation_m is ten times the ULP. seam_chord_sagitta_m is the sampling resolution: 30 columns per station bay (0.05 m). The lines are unfrozen (SW-LP01 Rev 0a, preliminary). The asset reproduces the faired ruled surface defined by offsets.py; it carries the uncertainty of that surface and adds only float32 rounding and the chord sagitta stated above. It is not a developed-panel model and says nothing about plywood forming, scantlings or stability. Software: {"python": "3.12.14", "numpy": "2.5.4", "scipy": "1.18.1", "generator": "hydro/hull_panel_asset.py 1.1.0", "sunwake_package": "0.1.0", "scale_model_basis": "SW-MODEL-15 Rev 0"}. Preliminary visualization of the SW-LP01 Rev 0a lines for design development. Not a construction drawing, not a cut file, not approved for construction, and no statement of stability or seaworthiness.