Skip to content
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

3D Tiles Next - list of developer resources and the ecosystem #560

Open
pjcozzi opened this issue Nov 14, 2021 · 6 comments
Open

3D Tiles Next - list of developer resources and the ecosystem #560

pjcozzi opened this issue Nov 14, 2021 · 6 comments

Comments

@pjcozzi
Copy link
Contributor

pjcozzi commented Nov 14, 2021

Looking for someone to diligently facilitate this one, any takers? 😄

I believe that one of the main drivers of the early success of 3D Tiles and glTF was how community contributions were encouraged, organized, and findable. For example:

In this same spirit, I think we should start tracking all developer resources and the software ecosystem for 3D Tiles Next. The list could be as simple as a README.md with a GitHub issue full of comments to add things to it as we discover them (and as contributors post to it) or something else sophisticated if it is needed at this point.


@javagl
Copy link
Contributor

javagl commented Nov 16, 2021

Right now, the blog post covers most of the resources, but that number will grow quickly.

I assume that a first solution for this could just be a file similar to https://github.com/javagl/3d-tiles/blob/main/RESOURCES.md , but in the next subdirectory. In doubt, these files could easily be merged at some point.
(Also: There are some dead links in the existing RESOURCES.md - I'd update this with the first PR for the next/RESOURCES.md then).

And... until there's an overwhelming number of articles and projects (and/or until KhronosGroup/glTF-Project-Explorer#88 is addressed), new links could just be dropped here, as comments, and I'll integrate them regularly.

@pjcozzi
Copy link
Contributor Author

pjcozzi commented Nov 17, 2021

I assume that a first solution for this could just be a file similar to https://github.com/javagl/3d-tiles/blob/main/RESOURCES.md ...

@javagl sure, please also link directly to this from the main README.md.

We should also duplicate the resources from the announcement blog as that list will grow quickly.

@javagl
Copy link
Contributor

javagl commented Nov 17, 2021

This has been addressed in #579 . Maybe someone wants to have a short look (@ptrgags ?)

The list will probably be refactored when the number of resources increases, but I hope that the current structure is a reasonable start.

(BTW: I noticed that the main RESOURCES.md was not linked ... from anywhere... so I also added a link to that in the main README.md).

@gkjohnson
Copy link

Hello! Thanks for putting the effort in to maintain a list of resources and keeping such great documentation on the format!

This is not necessarily 3D Tiles Next specific but in terms of additional resources that would be nice to have as a developer who's been working on a tileset renderer for a bit now. Here's a quick list of some of the info that would be nice to have available when working on a implementation. I think between this spec repo, the 3d-tiles-samples repo and blog posts this should all have a good place to live:

  • A basic CMPT sample file with embedded B3DM, I3DM, PNTS files for testing.
  • In the sample data repo there is a dataset with an "expire" field presumably causing the data to get reloaded but there is no mention of an "expire" field in the format specification. Is this an canonical feature?
  • A reasonably complex tileset with deep hierarchies and lots of tiles so an implementation can be benchmarked
  • Related to the previous point a reproduceable Cesium reference-implementation demo page with benchmark scores showing performance of different pieces of the tileset system would be useful for comparing a new implementation (ie how long is "update" taking to run, how long did it take to download everything, tiles shown, number of active downloads, etc)
  • This might be a big ask considering there's an associated cost but a publicly usable Cesium Ion token with only one or two usable data sets would be great. A user contributed a Cesium Ion demo page for 3DTilesRendererJS but beyond just demonstrating Ion integration it was useful for ensuring the proper headers and metadata could flow through in the subsequent tile requests.
  • A blog post / write up with visuals detailing the construction, distance measurements, and frustum intersection algorithms for the "region" bounding volumes. I've taken a look at the implementation in Cesium but unfortunately it wasn't immediately clear to me an I didn't have the time to dig in further considering it wasn't necessary for our internal use cases. A more intuitive write up would be great if this feature is going to be supported more broadly.
  • A larger list of test data that generally includes more format features and extensions would be great but I expect this could evolve over time from the community. Generally 3DTilesRendererJS has been waiting for test data that breaks the library before implementing some of the extensions and tile semantics. Being able to point users to a location where they can "donate" a tileset for community would be nice.
  • And finally from a number of users I've gotten a lot of questions on how 3d tiles can be generated. Including any publicly available tools (commercial or otherwise) for generating 3d tiles or converting an existing model might be worthwhile, as well.

Thanks again. Let me know if I need to clarify anything!

@javagl
Copy link
Contributor

javagl commented Dec 15, 2021

@gkjohnson Many of these points refer to test data in various forms, and even though some of them are not specific for 3D Tiles Next, the 3d-tiles-samples repo will probably be updated with additonal test data sets soon.

Until then, two short hints:

A basic CMPT sample file with embedded B3DM, I3DM, PNTS files for testing.

The "Specs" (Unit Test data) directory of CesiumJS contains some data sets that may be suitable for testing certain features in own implementations: https://github.com/CesiumGS/cesium/tree/main/Specs/Data/Cesium3DTiles - this includes some examples of composite tiles.

Being able to point users to a location where they can "donate" a tileset for community would be nice.

This can generally be done via PRs into the 3d-tiles-samples repo. Depending on the type of tileset, possible licensing questions and other discussion, it could make sense to open an issue first, to see whether the respective tileset can become one of the samples.

@lilleyse
Copy link
Contributor

lilleyse commented Apr 4, 2022

In addition to a new resources page (#680) we should also make a new ecosystem diagram.

2016 2017 2019
Screen Shot 2022-04-04 at 3 27 59 PM Screen Shot 2022-04-04 at 3 24 07 PM image

And for reference here are some of the glTF ecosystem diagrams from the past:

2016 2017 2018 2020
image image image image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants