Summary
A special treatment for 3d models in glb/gltf format is implemented in the Binaries Service.
If URLs to files of this format are submitted to the service then these files will not only be downloaded and saved. A preview image of the model contained in the file is generated and exported to the IIIF Image server. Therefore the same reference-id used to download the model can be used to retrieve a preview image.
This preview generation happens on the cluster nodes. A Chrome browser instance is started on a virtual framebuffer device. The model is loaded by the browser and then a screenshot of the browser is taken.
Obtain Sources
The software can be obtained by executing
git clone https://dev.fiz-karlsruhe.de/stash/scm/ddb/3d-screenshot-generator.git
Installation
In order for the scripts to work the following things need to be done on the cluster nodes:
sudo yum install npm xorg-x11-server-Xvfb atk java-atk-wrapper at-spi2-atk gtk3 libXt ImageMagick # Register and start Xvfb service sudo echo " [Unit] Description=Xvfb headless plotting After=network.target [Service] User=root ExecStart=/usr/bin/Xvfb :0 -screen 0 1280x1024x24 [Install] WantedBy=multi-user.target Alias=Xvfb.service Alias=xvfbd.service " > /etc/systemd/system/xvfb.service sudo systemctl daemon-reload sudo systemctl enable xvfb sudo systemctl start xvfb
Configuration and Problem solving
Please always refer to the projects Readme file (especially for CentOS 7 systems). The configuration in appconfig.json needs to be adapted.
Regular problems
If some models work and other models don't work do the following checks:
- Always first check if the timeout setting in appconfig.json is high enough.
- Is is the correct Binary Server?
- It could be that the Puppeteer (Chromium) version is to old for newer generated model version. Update Puppeteer (and Node itself).