Skip to content
design
Components

Outboard boat

The vessel profile's outline for an outboard boat, and the vessels it draws.

On this page
WLLWL 8.69 mLOA 10.21 mDraft 1.03 mFreeboard 1.51 m
The outboard boat outline as drawn, dimensioned in meters read from its marked points.
Code
import { OUTBOARD_BOAT, VesselProfile, type VesselOutline } from "@bosunkit/components/vessel-profile";
import type { ReactElement } from "react";

export const description: string =
  "The outboard boat outline as traced at 10.21 m, dimensioned in meters read from the points marked on it.";

const outline: VesselOutline = OUTBOARD_BOAT;

/** Drawing units to the meter: the length overall, from the transom to the bow's tip, is the reference length. */
const perMeter: number = (outline.hooks.bowTip - outline.hooks.transom) / outline.referenceLength;

/** A distance on the drawing, in meters. */
function meters(units: number): string {
  return `${(units / perMeter).toFixed(2)} m`;
}

export default function Drawn(): ReactElement {
  const { hooks }: VesselOutline = outline;
  return (
    <VesselProfile
      outline={outline}
      dimensions={{
        lengthOverall: meters(hooks.bowTip - hooks.transom),
        waterlineLength: meters(hooks.waterlineForward - hooks.waterlineAft),
        draft: meters(hooks.keelFoot - hooks.waterline),
        freeboard: meters(hooks.waterline - hooks.deckAtBow),
      }}
    />
  );
}

The outboard boat outline is traced from Grady-White's line drawing of the Canyon 336, a center console of 10.21 m: a gunwale rising to a raked bow, a deep-V bottom running out to an immersed transom, and the console under its T-top with the windscreen's two panes. The outboards hang on the transom and their lower units set the draft; she has no rudder. The seats, the antennas and the rod holders are left out. Her length overall ends at the transom, since ISO 8666 measures it without the engines, and a shorter waterline comes off the bow. The drawing has no waterline, so the trace sets it at Grady-White's hull draft of 0.66 m above the bottom.

The outline is traced at 10.21 m and listed in VESSEL_OUTLINES as outboard-boat; the kit exports it as OUTBOARD_BOAT. The vessel catalog's center consoles, bowriders, deck boats and dual consoles, some 45 models, take this outline. Given a vessel's proportions, the vessel profile stretches it to her length overall, waterline length, freeboard and draft; a particular not given follows the length overall in the outline's proportion.

Examples

Vessels from this outline

WLLOA 6.27 mDraft 0.76 m
Robalo R200
WLLOA 10.52 mDraft 0.91 m
Pursuit S 328
WLLOA 11.10 mDraft 1.12 m
Boston Whaler 360 Outrage
The Robalo R200, Pursuit S 328 and Boston Whaler 360 Outrage, each drawn from the outboard boat outline at her own particulars, her draft with the motors down, and to one scale.
Code
import { OUTBOARD_BOAT, VesselProfile } from "@bosunkit/components/vessel-profile";
import type { ReactElement } from "react";

export const description: string =
  "The Robalo R200, Pursuit S 328 and Boston Whaler 360 Outrage, each drawn from the outboard boat outline at her " +
  "own particulars, her draft with the motors down, and to one scale.";

interface Vessel {
  /** The vessel, as the catalog names her. */
  readonly name: string;
  /** Length overall, meters. */
  readonly loa: number;
  /** Length at the waterline, meters, where the catalog has it. */
  readonly lwl?: number;
  /** Draft, meters. */
  readonly draft: number;
  /** Freeboard at the bow, meters, where the catalog has it. */
  readonly freeboard?: number;
}

/** Particulars from the vessel catalog; the draft is with the motors down, which the outline's lower units draw. */
const VESSELS: readonly Vessel[] = [
  { name: "Robalo R200", loa: 6.27, draft: 0.76 },
  { name: "Pursuit S 328", loa: 10.52, draft: 0.91 },
  { name: "Boston Whaler 360 Outrage", loa: 11.1, draft: 1.12 },
];

export default function Vessels(): ReactElement {
  return (
    <div style={{ display: "grid", gap: "var(--space-md)" }}>
      {VESSELS.map(
        ({ name, loa, lwl, draft, freeboard }: Vessel): ReactElement => (
          <figure key={name} style={{ margin: 0 }}>
            <VesselProfile
              outline={OUTBOARD_BOAT}
              proportions={{ lengthOverall: loa, waterlineLength: lwl, draft, freeboard }}
              frameLength={11.1}
              dimensions={{
                lengthOverall: `${loa.toFixed(2)} m`,
                waterlineLength: lwl === undefined ? undefined : `${lwl.toFixed(2)} m`,
                draft: `${draft.toFixed(2)} m`,
              }}
            />
            <figcaption style={{ marginTop: "var(--space-xs)", color: "var(--text-dim)", fontSize: "0.85em" }}>
              {name}
            </figcaption>
          </figure>
        ),
      )}
    </div>
  );
}
  • Vessel profile: the component, its props, and the outline for each hull shape.