Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Interface ZarrViewerConfig

    Viewer configuration from Python API (stored in zarr root .zattrs). All fields are optional — only set fields are present. Keys use snake_case to match the Python/zarr convention.

    This is also the format exported by Ctrl+Shift+S in the viewer, enabling full Python → zarr → viewer → export → Python round-trips.

    interface ZarrViewerConfig {
        camera?: ZarrCameraConfig;
        environment?: {
            source?: string;
            probe?: string | [number, number, number];
            resolution?: number;
            intensity?: number;
            url?: string;
        };
        title?: string;
        background_color?: string;
        tone_mapping?: string;
        exposure?: number;
        global_offset?: number;
        global_gamma?: number;
        bloom_enabled?: boolean;
        bloom_strength?: number;
        bloom_radius?: number;
        bloom_threshold?: number;
        bloom_levels?: number;
        control_type?: string;
        auto_rotate?: boolean;
        auto_rotate_speed?: number;
        auto_rotate_axis?: string;
        auto_dolly?: boolean;
        auto_dolly_amplitude_percent?: number;
        auto_dolly_period?: number;
        natural_drag?: boolean;
        cinematic_mode?: boolean;
        playback_lod_depth?: number
        | "auto"
        | "all"
        | "fast";
        vignette_enabled?: boolean;
        vignette_darkness?: number;
        vignette_offset?: number;
        detector_noise_enabled?: boolean;
        detector_noise_readout_sigma?: number;
        detector_noise_photon_gain?: number;
        detector_noise_fpn_sigma?: number;
        fxaa_enabled?: boolean;
        msaa_enabled?: boolean;
        msaa_samples?: number;
        ssaa_enabled?: boolean;
        ssaa_multiplier?: number;
        chromatic_lens_distortion_enabled?: boolean;
        chromatic_lens_distortion_x?: number;
        chromatic_lens_distortion_y?: number;
        chromatic_lens_dispersion?: number;
        chromatic_lens_principal_point_x?: number;
        chromatic_lens_principal_point_y?: number;
        chromatic_lens_focal_length_x?: number;
        chromatic_lens_focal_length_y?: number;
        chromatic_lens_skew?: number;
        fly_movement_speed?: number;
        fly_rotation_speed?: number;
        fly_inertial_mode?: boolean;
        fly_damping?: number;
        fly_rotation_damping?: number;
        dynamic_clipping_enabled?: boolean;
        adaptive_dpr_enabled?: boolean;
        allow_high_dpr?: boolean;
        ui?: {
            show_help?: boolean;
            show_rendering_controls?: boolean;
            show_performance_monitor?: boolean;
            show_dimensions?: boolean;
            show_scale_bar?: boolean;
            show_layers?: boolean;
            show_overlays?: boolean;
            kiosk?: ZarrKioskConfig;
        };
        theme?: string;
        dimensions?: { current_step?: number[]; selected_dimension?: number };
        animation?: {
            playing?: boolean;
            target_fps?: number;
            loop?: string;
            direction?: string;
            step_size?: number;
        }[];
        waypoints?: ZarrWaypoint[];
        audio?: ZarrAudioConfig;
        control_panel?: unknown;
    }
    Index
    environment?: {
        source?: string;
        probe?: string | [number, number, number];
        resolution?: number;
        intensity?: number;
        url?: string;
    }

    Where the scene environment that lights material="physical" meshes comes from (MESH_PHYSICAL_MATERIALS_SPEC.md §3.3). Ignored by every other material. Validated and narrowed by extractEnvironmentConfig.

    Type Declaration

    • Optionalsource?: string

      room (default), scene (exact cube capture from probe), hdri (url).

    • Optionalprobe?: string | [number, number, number]

      'auto', 'node:<path>', or an [x, y, z] world position.

    • Optionalresolution?: number

      Cube face size in pixels for a scene capture, 16–1024.

    • Optionalintensity?: number

      scene.environmentIntensity, >= 0.

    • Optionalurl?: string

      Equirectangular image for hdri, relative to the store or absolute.

    title?: string
    background_color?: string
    tone_mapping?: string
    exposure?: number
    global_offset?: number
    global_gamma?: number
    bloom_enabled?: boolean
    bloom_strength?: number
    bloom_radius?: number
    bloom_threshold?: number
    bloom_levels?: number
    control_type?: string
    auto_rotate?: boolean
    auto_rotate_speed?: number
    auto_rotate_axis?: string

    Turntable axis: a camera-frame axis or a fixed scene axis; see AutoRotateAxis.

    auto_dolly?: boolean
    auto_dolly_amplitude_percent?: number

    Peak dolly swing as a percent of the viewing distance (15 → ±15%).

    auto_dolly_period?: number

    Seconds per full dolly oscillation.

    natural_drag?: boolean
    cinematic_mode?: boolean
    playback_lod_depth?: number | "auto" | "all" | "fast"

    Authored playback detail for every dimension: how deep additive ladders are loaded per frame while playing or scrubbing. A positive integer pins that many rungs, 'all' the whole ladder, 'auto' the energy rule (default), 'fast' the time-budgeted streaming. Python: ViewerConfig.playback_lod_depth.

    vignette_enabled?: boolean
    vignette_darkness?: number
    vignette_offset?: number
    detector_noise_enabled?: boolean
    detector_noise_readout_sigma?: number
    detector_noise_photon_gain?: number
    detector_noise_fpn_sigma?: number
    fxaa_enabled?: boolean
    msaa_enabled?: boolean
    msaa_samples?: number
    ssaa_enabled?: boolean
    ssaa_multiplier?: number
    chromatic_lens_distortion_enabled?: boolean
    chromatic_lens_distortion_x?: number
    chromatic_lens_distortion_y?: number
    chromatic_lens_dispersion?: number
    chromatic_lens_principal_point_x?: number
    chromatic_lens_principal_point_y?: number
    chromatic_lens_focal_length_x?: number
    chromatic_lens_focal_length_y?: number
    chromatic_lens_skew?: number
    fly_movement_speed?: number
    fly_rotation_speed?: number
    fly_inertial_mode?: boolean
    fly_damping?: number
    fly_rotation_damping?: number
    dynamic_clipping_enabled?: boolean
    adaptive_dpr_enabled?: boolean
    allow_high_dpr?: boolean
    ui?: {
        show_help?: boolean;
        show_rendering_controls?: boolean;
        show_performance_monitor?: boolean;
        show_dimensions?: boolean;
        show_scale_bar?: boolean;
        show_layers?: boolean;
        show_overlays?: boolean;
        kiosk?: ZarrKioskConfig;
    }
    theme?: string
    dimensions?: { current_step?: number[]; selected_dimension?: number }
    animation?: {
        playing?: boolean;
        target_fps?: number;
        loop?: string;
        direction?: string;
        step_size?: number;
    }[]

    Type Declaration

    • Optionalplaying?: boolean
    • Optionaltarget_fps?: number
    • Optionalloop?: string
    • Optionaldirection?: string
    • Optionalstep_size?: number

      Per-dimension step override (absent = Auto).

    waypoints?: ZarrWaypoint[]
    control_panel?: unknown