-
Notifications
You must be signed in to change notification settings - Fork 469
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A proposal for a 3D Tiles packaging format specification #727
Comments
One potential change: keys should be relative filesystem paths (Unix style) instead of URIs, so no percent encoded characters. This would align with how .3dtiles files have been produced historically. |
Hi there, great to see some discussion and already existing tools to alleviate the burden on filesystems + transfers of big tilesets composed of lots of small files - transfer/copy speed, allocated size on disk, etc. Just a quick question regarding current state of the implementation and support within the 3dtiles ecosystem of a 3dtiles packaging format. This instructive comment by you Marco on the community forum states that
Again thanks for your great work. Best, |
Some aspects of the support for the packaging formats are not documented extensively. And there are a few places where one could consider a broader support on the implementation level. The
This is one of the aspects that the 'broader support' refers to. There is some functionality for handling 3DTILES e.g. in the ion asset server and Cesium ion in general. But there are still ongoing efforts for improving the support, specifications, and documentation of all that. The It's not entirely clear where HTTP2 Range Reqests could come into play here. The only case where I see an "obvious" (potential) fit is when serving something like "slices from a 3TZ file". But there are still some questions that may affect whether this is a viable approach. For example, the general topic of the compression of the entries of such a package. (Roughly: Imagine a file that stores ZSTD compressed entries, but the server wants to deliver GZIP - the server would have to unpack the ZSTD, and re-pack as GZIP, which might not be ideal...)
Some of this is not yet extensively tested or specified. But the goal behind that 'package support' in the From a quick test, merging filesystem+3DTILES into 3TZ seemed to work, but further consistency checks and validation may be necessary. And there's also the open question about entry compression, at CesiumGS/3d-tiles-tools#56 ...
This is the underlying specification for 3TZ, yes. |
There have been several issues that asked about an archive/package format for 3D Tiles datasets (#89, #399, #422, and some issues in related repositories).
An early proposal for a packaging format was given in a comment in one of these issues, which described a format that is based on an SQLite database that just contains a table with a
key
(a "file name") and acontent
(a blob with the data of that "file"). Over the years, this format has become a "de facto" standard for tileset packages. This includes support via thetilesetToDatabase
function in the3d-tiles-tools
repository. This still carries the note that the specification for the tables in the database is not final.The following PDF file is an attempt to specify this format in more detail, including some technical constraints and implementation notes:
3DTilesPackageSpecification-1.0.0-2022-12-08.pdf
There are many discussion threads in the linked issues, about generalizing the keys, indexing, adding metadata, or different compression options. But for now, this document is mainly intended to capture something that could reasonably be called "version 1.0.0" of the packaging format specification.
The text was updated successfully, but these errors were encountered: