Overview
I investigated an issue where PLY files were not being output as items in IIIF manifests by the Omeka S IIIF Server module, while GLB files were output correctly.

Prerequisites: Omeka S Configuration
By default, PLY files cannot be uploaded to Omeka S. The following configuration is required.
Error When Uploading PLY Files

With default settings, upload errors occur because the PLY file’s media type (application/octet-stream) and extension (.ply) are not permitted.
Adding Configuration
In the admin panel under “Settings” > “Security”, add the following:

- Allowed media types: Add
application/octet-stream - Allowed file extensions: Add
ply
Cause
The module did not have processing code for PLY files.
While there was explicit extension checking and type conversion code for GLB files, no equivalent code existed for PLY files.
Technical Details
GLB File Processing (Existing Before Fix)
TraitMedia.php (format() method)
IiifTypeOfMedia.php
IIIF Manifest Items Generation Flow
Media type determination (
TraitMediaInfo.php)- Each media is classified into a IIIF type (Image, Video, Sound, Text, Dataset, Model, other, invalid)
Painting candidate prioritization
- Priority order: Model > Video > Sound > Image > Text
Modeltype is prioritized for Canvas painting
Canvas placement (
Manifest.php)
Why PLY Was Not Included in Items
- When a PLY file is uploaded, the media type is often
application/octet-stream - There was no code to check the
.plyextension - The IIIF type was not recognized as
Modeland was classified asotherorinvalid - The
paintingkey was not set, so no Canvas was generated
Fix
1. src/Iiif/TraitMedia.php
2. src/View/Helper/IiifTypeOfMedia.php
Behavior After Fix
When a PLY file (.ply extension) is recognized as application/octet-stream:
- The media type is returned as
model/ply - The IIIF type is recognized as
Model - It is output in the IIIF manifest
itemsjust like GLB files
Output Example
After the fix, the IIIF manifest for an item containing a PLY file is output as follows:
A Canvas is generated within items, with the body type output as Model and format as model/ply.
Related Files
| File | Role |
|---|---|
src/Iiif/TraitMedia.php | Media format (MIME type) determination |
src/View/Helper/IiifTypeOfMedia.php | IIIF type (Image, Model, etc.) determination |
src/Iiif/TraitMediaInfo.php | Media information collection and painting candidate selection |
src/Iiif/Manifest.php | IIIF manifest items generation |
Acknowledgments
The sample PLY file data used in this investigation was downloaded from the following article:
- 3D Gaussian Splatting Data (PLY) [Download Available] - steam studio / 3D SCAN STUDIO iris
Investigation Date
2026-02-06