No description
| .github/workflows | ||
| scripts | ||
| src-tauri | ||
| tests | ||
| viewer | ||
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| dfg-3dviewer-library.zip | ||
| embed.html | ||
| index.html | ||
| jsconfig.json | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.js | ||
| README.md | ||
| rollup.config.js | ||
| viewer-settings-example.json | ||
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 module.
Build and package
npm install
npm run build:library
npm run pack:library
Output:
dist/library/—dfg_3dviewer.min.jsandassets/(CSS, draco, IFC WASM, fonts)dfg-3dviewer-library.zip— extract toweb/libraries/dfg-3dviewer/on Drupal (gitignored)
Local development
cp viewer/viewer-settings-example.json viewer-settings.json
npm run dev:test
# http://localhost:1234
Install on Drupal
-
Install the library to
web/libraries/dfg-3dviewer/— either build locally (see above) and extractdfg-3dviewer-library.zip, or download a release prebuild.Latest release:
curl -fL "https://gitlab.nasarek.dev/rnsrk/dfg_3dviewer_js_library/-/releases/permalink/latest/downloads/dfg-3dviewer-library.zip" -o /tmp/dfg-3dviewer-library.zip mkdir -p web/libraries/dfg-3dviewer unzip -o /tmp/dfg-3dviewer-library.zip -d web/libraries/dfg-3dviewer rm /tmp/dfg-3dviewer-library.zipPin a version (replace
0.0.1with the tag you need):curl -fL "https://gitlab.nasarek.dev/rnsrk/dfg_3dviewer_js_library/-/releases/0.0.1/downloads/dfg-3dviewer-library.zip" -o /tmp/dfg-3dviewer-library.zip mkdir -p web/libraries/dfg-3dviewer unzip -o /tmp/dfg-3dviewer-library.zip -d web/libraries/dfg-3dviewer rm /tmp/dfg-3dviewer-library.zipRun from your Drupal project root (e.g.
/opt/drupal). -
Enable the
dfg_3dviewerDrupal module and configure at/admin/config/dfg_3dviewer
Standalone embed
<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/— sourcedist/— build output (gitignored; runnpm run build:library)rollup.config.js— production buildstests/— Playwright E2E