# DFG 3D Viewer — JavaScript Library

Three.js-based 3D viewer. Ships as a minified bundle for `web/libraries/dfg-3dviewer/` or standalone HTML embeds.

**Drupal integration** is provided by the separate [`dfg_3dviewer`](https://github.com/your-org/dfg_3dviewer) module.

## Build

```bash
npm install
npm run build:library
npm run pack:library
```

Output:

- `dist/library/dfg_3dviewer.min.js`
- `dist/library/assets/` — CSS, draco, IFC WASM, fonts
- `dfg-3dviewer-library.zip` — extract to `web/libraries/dfg-3dviewer/` on Drupal

## Local development

```bash
cp viewer/viewer-settings-example.json viewer-settings.json
npm run dev:test
# http://localhost:1234
```

## Install on Drupal

1. Extract `dfg-3dviewer-library.zip` to `web/libraries/dfg-3dviewer/`
2. Enable the `dfg_3dviewer` Drupal module and configure at `/admin/config/dfg_3dviewer`

## Standalone embed

```html
<div id="DFG_3DViewer" 3d="./examples/box.stl"></div>
<script type="module" src="./dfg_3dviewer.min.js"></script>
```

Or pass config in code: `await Viewer.MainInit({ ... })`.

## Repository layout

- `viewer/` — source
- `rollup.config.js` — production builds
- `tests/` — Playwright E2E
