# Function loadPly

- loadPly<
  Type extends "geometry"
  | "line"
  | "pbmMesh"
  | "pbmPointCloud",
  ResultType = {
  geometry: BufferGeometry;
  line: Line<BufferGeometry>;
  pbmMesh: PBMMesh;
  pbmPointCloud: PBMPointCloud;
  }[Type],
  >(
  url: string,
  options?: {
  customPropertyMapping?: Record<
  string,
  {
  itemNames: string[];
  itemType: | "float32"
  | "uint32"
  | "int32"
  | "uint16"
  | "int16"
  | "uint8"
  | "int8";
  normalized?: boolean;
  },
  >;
  fetcher?: Fetcher;
  light?: boolean;
  modelUpAxis?: "Y"
  | "Z";
  onDownloadProgress?: (
  percent: number,
  loaded?: number,
  total?: number,
  ) => void;
  propertyNameMapping?: Record<string, string>;
  type?: Type;
  upAxis?: "Y" | "Z";
  },
  ): Promise<LoadResultType<ResultType>>

  #### Type Parameters

  - Type extends "geometry" | "line" | "pbmMesh" | "pbmPointCloud"
  - ResultType = {
    geometry: BufferGeometry;
    line: Line<BufferGeometry>;
    pbmMesh: PBMMesh;
    pbmPointCloud: PBMPointCloud;
    }[Type]

  #### Parameters

  - url: string
  - options: {
    customPropertyMapping?: Record<
    string,
    {
    itemNames: string[];
    itemType: | "float32"
    | "uint32"
    | "int32"
    | "uint16"
    | "int16"
    | "uint8"
    | "int8";
    normalized?: boolean;
    },
    >;
    fetcher?: Fetcher;
    light?: boolean;
    modelUpAxis?: "Y"
    | "Z";
    onDownloadProgress?: (
    percent: number,
    loaded?: number,
    total?: number,
    ) => void;
    propertyNameMapping?: Record<string, string>;
    type?: Type;
    upAxis?: "Y" | "Z";
    } = {}

  #### Returns Promise<LoadResultType<ResultType>>

  - Defined in lib/five/model/loaders/ply.ts:62