G-code Preview — API Reference
    Preparing search index...
    interface GcodePreviewProps {
        adjacentLayers?: number;
        buildVolume?: BuildVolumeDef | MachineGeometry;
        cameraMode?: CameraMode;
        cameraState?: null | CameraState;
        colorMode?: ColorMode;
        createWorker?: () => WorkerLike;
        frameContent?: "object" | "all";
        hiddenFeatureRoles?: FeatureRoleValue[];
        interactionQuality?: "auto" | "off";
        layerRange?: null | [number, number];
        onBuildComplete?: (e: { quality: QualityMode; segments: number }) => void;
        onCameraChange?: (state: CameraState) => void;
        onDisclosure?: (text: string) => void;
        onError?: (e: { code: string; message: string }) => void;
        onMachineGeometryDiscovered?: (machine: MachineGeometry) => void;
        onMachineGeometryMismatch?: (message: string) => void;
        onParseCancelled?: () => void;
        onParseError?: (e: { code: string; message: string }) => void;
        onParseProgress?: (
            p: { bytesProcessed: number; totalBytes: number },
        ) => void;
        onProgressPresentationChanged?: (
            e: { mode: string; reason?: string },
        ) => void;
        onQualityFallback?: (
            e: { from: QualityMode; reason: string; to: QualityMode },
        ) => void;
        onReady?: (
            summary: {
                capabilities: Record<string, Confidence>;
                complete: boolean;
                layers: number;
                metadata: undefined | DialectMetadata;
                segments: number;
                warnings: readonly Warning[];
            },
        ) => void;
        onStage?: (
            e: {
                detail?: { built: number; total: number };
                progress?: number;
                stage: PreparationStage;
            },
        ) => void;
        parseOptions?: WireParseOptions;
        progress?: null
        | ProgressObservation;
        progressivePreview?: ProgressivePreview;
        quality?: QualityMode | "auto";
        qualityMode?: QualityPolicy;
        renderer?: RendererMode;
        rendererOptions?: Omit<
            {
                adjacentLayers?: number;
                buildVolume?: BuildVolumeDef;
                cameraMode?: CameraMode;
                chunksPerTick?: number;
                colorMode?: ColorMode;
                createRenderer?: (canvas: RenderTargetCanvas) => GLRendererLike;
                frameContent?: "object" | "all";
                geometryConcurrency?: number | "auto" | "off";
                geometryMemoryBudgetBytes?: number;
                ghostOpacity?: number;
                interactionQuality?: "auto" | "off";
                mode?: RendererMode;
                progressivePreview?: ProgressivePreview;
                quality?: QualityMode | "auto";
                qualityMode?: QualityPolicy;
                scheduleFrame?: (cb: () => void) => void;
                theme?: Theme;
                tube?: TubeOptions;
            },
            | "buildVolume"
            | "quality"
            | "qualityMode"
            | "progressivePreview"
            | "cameraMode"
            | "frameContent"
            | "interactionQuality"
            | "theme"
            | "colorMode"
            | "tube",
        >;
        scrub?: null
        | number;
        scrubTime?: null | number;
        showRetractions?: boolean;
        showTravel?: boolean;
        showVolumeCage?: boolean;
        showWipe?: boolean;
        source?: GcodePreviewSource;
        theme?: Theme;
        tube?: TubeOptions;
        view?: CameraView;
    }
    Index

    Properties

    adjacentLayers?: number

    2D only (renderer="2d"): preceding "ghost" layers beneath the active one (default 1, floor 0).

    Consumer-configured volume — wins over file-discovered geometry (DD-005 precedence).

    cameraMode?: CameraMode

    #150 (DD-009 D3): camera projection.

    cameraState?: null | CameraState

    #268/#275/M6: restore a saved camera pose. Pair with onCameraChange for a two-way binding.

    colorMode?: ColorMode
    createWorker?: () => WorkerLike

    Worker factory escape hatch (DD-005 slim/custom entries; D2).

    frameContent?: "object" | "all"

    #306/#6: frame the printed 'object' (excl. skirt/prime) or 'all' extrusion. Default 'all'.

    hiddenFeatureRoles?: FeatureRoleValue[]

    DD-031 G3: feature roles to hide (e.g. [FeatureRole.Skirt, FeatureRole.Brim]). Declarative form of controls.setFeatureRoleVisible; gate on capabilities.featureRoles.

    interactionQuality?: "auto" | "off"

    #306/2 (DD-020): 'auto' reduces detail while the camera moves. Default 'off'.

    layerRange?: null | [number, number]

    Inclusive [start, end]; null/undefined shows every layer.

    onBuildComplete?: (e: { quality: QualityMode; segments: number }) => void
    onCameraChange?: (state: CameraState) => void

    #275/M6: fires after a user camera interaction settles, with the new serializable state.

    onDisclosure?: (text: string) => void
    onError?: (e: { code: string; message: string }) => void
    onMachineGeometryDiscovered?: (machine: MachineGeometry) => void
    onMachineGeometryMismatch?: (message: string) => void
    onParseCancelled?: () => void
    onParseError?: (e: { code: string; message: string }) => void
    onParseProgress?: (p: { bytesProcessed: number; totalBytes: number }) => void
    onProgressPresentationChanged?: (e: { mode: string; reason?: string }) => void
    onQualityFallback?: (
        e: { from: QualityMode; reason: string; to: QualityMode },
    ) => void
    onReady?: (
        summary: {
            capabilities: Record<string, Confidence>;
            complete: boolean;
            layers: number;
            metadata: undefined | DialectMetadata;
            segments: number;
            warnings: readonly Warning[];
        },
    ) => void
    onStage?: (
        e: {
            detail?: { built: number; total: number };
            progress?: number;
            stage: PreparationStage;
        },
    ) => void

    DD-029 staged preparation progress (building-geometry carries a real progress + counts).

    parseOptions?: WireParseOptions
    progress?: null | ProgressObservation

    DD-006 live progress observation; null hides the overlay.

    progressivePreview?: ProgressivePreview

    #60 curtain: 'lines' (default, stream the preview), 'hold' (reveal only the final build), or 'off'. 3D only.

    quality?: QualityMode | "auto"
    qualityMode?: QualityPolicy

    Fidelity policy (DD-023 §4 D6): 'full' | 'adaptive' | 'fast'. 3D only.

    renderer?: RendererMode

    DD-014 D5: which renderer backs the preview — '3d' (default, Three.js) or '2d' (the low-resource Canvas layer view). Three.js is loaded on demand, so '2d' never ships it.

    rendererOptions?: Omit<
        {
            adjacentLayers?: number;
            buildVolume?: BuildVolumeDef;
            cameraMode?: CameraMode;
            chunksPerTick?: number;
            colorMode?: ColorMode;
            createRenderer?: (canvas: RenderTargetCanvas) => GLRendererLike;
            frameContent?: "object" | "all";
            geometryConcurrency?: number | "auto" | "off";
            geometryMemoryBudgetBytes?: number;
            ghostOpacity?: number;
            interactionQuality?: "auto" | "off";
            mode?: RendererMode;
            progressivePreview?: ProgressivePreview;
            quality?: QualityMode | "auto";
            qualityMode?: QualityPolicy;
            scheduleFrame?: (cb: () => void) => void;
            theme?: Theme;
            tube?: TubeOptions;
        },
        | "buildVolume"
        | "quality"
        | "qualityMode"
        | "progressivePreview"
        | "cameraMode"
        | "frameContent"
        | "interactionQuality"
        | "theme"
        | "colorMode"
        | "tube",
    >

    Advanced/test renderer injectables (pass-throughs of the renderer contract).

    scrub?: null | number

    Scrub cut (IR segment index); null shows everything up to the layer range.

    scrubTime?: null | number

    Time-based scrub cut in ms of print time (#181); null clears it.

    showRetractions?: boolean

    DD-009 D1 (#148): opt-in retraction/deretraction markers.

    showTravel?: boolean
    showVolumeCage?: boolean

    #306/#6: show the build-volume wireframe cage (independent of the bed/plate). Default true.

    showWipe?: boolean

    DD-016 (#182): show slicer wipe moves. Default true; set false to hide the wipe chunk.

    The one prop needed in practice: bytes/File to parse. Changing it re-parses.

    theme?: Theme

    #153 (DD-009 D4): bounded declarative theme.

    view?: CameraView

    #268/#275/M6: snap to a preset orientation (top/front/iso/…). Instant; preserves the projection.