cocoKnight 9dae144089 first commit 1 mês atrás
..
src 9dae144089 first commit 1 mês atrás
LICENSE 9dae144089 first commit 1 mês atrás
README.en.md 9dae144089 first commit 1 mês atrás
README.md 9dae144089 first commit 1 mês atrás
package.json 9dae144089 first commit 1 mês atrás
tsconfig.json 9dae144089 first commit 1 mês atrás

README.en.md

@file-viewer/geometry-engine

Framework-neutral geometry-kernel boundary package for Flyfish File Viewer. It does not bundle heavy OpenCascade, web-ifc, or rhino3dm WASM runtimes by default. It currently provides STEP, IGES, IFC, 3DM, and BREP detection, signature inspection, recommended engine routes, and user-facing notices.

import {
  inspectGeometryKernelFile,
  formatGeometryKernelNotice,
} from '@file-viewer/geometry-engine'

const inspection = inspectGeometryKernelFile(new Uint8Array(buffer), 'step')
const notice = formatGeometryKernelNotice(inspection.format, 'en-US')

Scope

  • inspectGeometryKernelFile() reads a small file prefix and detects common STEP / IGES / IFC / 3DM / BREP signatures.
  • geometryKernelRoutes documents the recommended WASM path: OpenCascade / OCCT for STEP, IGES, and BREP; web-ifc / That Open for IFC; McNeel rhino3dm for Rhino 3DM.
  • @file-viewer/renderer-3d consumes this package for accurate conversion guidance without pulling CAD/BIM kernels into core or the default 3D install path.
  • Full visual rendering can evolve here later, or split into focused packages such as @file-viewer/geometry-occt, @file-viewer/geometry-ifc, and @file-viewer/geometry-3dm.

Why This Package Exists

STEP, IGES, IFC, and 3DM are not lightweight formats that ordinary Three.js loaders can faithfully decode. They need CAD/BIM kernels, worker isolation, WASM asset hosting, license review, and real-world sample regression. Keeping the boundary in a separate package lets @file-viewer/core stay fast to install while engineering-format fidelity can evolve independently, the same way the native PPTX engine does.