This repository contains six tools developed to make 2D images and 3D models of natural history specimens easier to use, from fetching and preparing images (scale bars, sharpening, thumbnails) to viewing models and exporting them as GLB files with Blender. They were developed after interviews with 27 users of 3D data, and are designed for three groups: scientists and taxonomists who need high-quality, easy-to-handle 3D models; providers of scientific data such as digitization centres and natural history collections; and educators and outreach staff who use 3D models in teaching and exhibitions. The tools were built with specimens from the ETH Zurich Entomological Collection (ETHZ-ENT) and the ETH Earth Science Collections.
This repository is the main software output of the ETH Domain Open Research Data (ORD) Explore project "Enhancing 3D data visualization standards and practices for natural history collections" (2nd call, 09/2024 – 07/2026; main applicant: Prof. Consuelo De Moraes, ETH Zurich).
The folders follow the order of a typical workflow. Each folder has its own README.md with detailed instructions.
| Folder | What it does |
|---|---|
01 Fetcher |
Collects the files (e.g. jpg, png, obj) of a list of specimens from the collection's scan storage and copies them next to the list. Input: a text file with one specimen identifier per line, a collection number and the file types wanted. |
02 Scalebar |
Adds a scale bar to every image of a specimen. The pixel size is read automatically from the ScanInformation.pdf in each specimen folder. Available as a Python script and a Windows executable (.exe). |
03 Sharpen |
Sharpens specimen images (Unsharp Mask and High Pass filter) in batch and saves the results in a separate _sharpen folder. Available as a Python script and a Windows executable. |
04 Viewer |
Two web viewers for Gaussian Splatting models (.ply, .splat, .ksplat), based on GaussianSplats3D: one for quickly testing and comparing several models via drag-and-drop, and one for publishing a single model on a website. |
05 Thumbnail |
Automatically creates three standard views (top, bottom, side) of each GLB model in the browser, for quick quality control and as preview images. Runs as a small Flask web app. |
06 Blender GLB |
Blender script that imports the .obj models of many specimen folders at once, rotates them into a consistent orientation and saves them as Blender projects for GLB export. |
- Operating system: Windows (the scripts were developed and tested on Windows only).
- Python 3 (tested with 3.12) with the packages
Pillow,PyPDF2,opencv-python,numpy,tqdmandflask:Thepip install Pillow PyPDF2 opencv-python numpy tqdm flask.exefiles in02 Scalebarand03 Sharpenrun without a Python installation. - Blender for
06 Blender GLB. - A modern web browser for
04 Viewerand05 Thumbnail.
Note: Some scripts contain file paths of the ETH Entomological Collection's own storage (e.g. Z:\01_SCANNED_AND_PROCESSED\02 FINAL). To use them elsewhere, change these paths at the top of the scripts (01 Fetcher/fetcher.py, 05 Thumbnail/app.py, 05 Thumbnail/extract_images.py).
See the README.md in each folder for step-by-step instructions. A typical workflow is:
- Collect the files of the specimens you need (
01 Fetcher). - Add scale bars and sharpen the images (
02 Scalebar,03 Sharpen). - Orient the 3D models in Blender and export them as GLB (
06 Blender GLB). - Create preview images for quality control (
05 Thumbnail). - View or publish Gaussian Splatting models on the web (
04 Viewer).
- Video tutorials on 3D imaging and post-processing (ETH Entomological Collection), e.g. 3D Imaging Part I: Image acquisition, Part II: Photogrammetry, Part III: Post-processing
- Prototype websites: 3D Specimens, EAPS3D
- Instructions for capturing 3D insect specimens
If you use this software, please cite:
Felsner C, Greeff M (2026). ORD-Project: Tools for using 3D models of natural history specimens. Zenodo. https://doi.org/10.5281/zenodo.23566632
- Dustin Brunner (
02 Scalebar,03 Sharpen) - Si An Oliver Tran (
01 Fetcher) - Christian Felsner, Michael Greeff (project team, ETH Zurich)
This project is licensed under the MIT License – see the LICENSE file.
The viewers in 04 Viewer include the GaussianSplats3D library by Mark Kellogg and three.js, which come with their own (MIT) licenses.
This project was supported by the Open Research Data Program of the ETH Board.
Entomological Collection, ETH Zurich – entomological.collection@usys.ethz.ch