CesiumGS / 3d-tiles

Specification for streaming massive heterogeneous 3D geospatial datasets :earth_americas:
2.04k stars 459 forks source link

Ecosystem and resources #680

Closed javagl closed 2 years ago

javagl commented 2 years ago

Preview link: https://github.com/javagl/3d-tiles/blob/draft-1.1-resources/RESOURCES.md

(Related to https://github.com/CesiumGS/3d-tiles/issues/560)

There are currently different places that contain information that is somewhat scattered:


The overall structure of how this information will be presented is not yet decided upon.

I just started with trying to sort the ECOSYSTEM.md. The current state can be seen at https://github.com/javagl/3d-tiles/blob/draft-1.1-resources/ECOSYSTEM.md

(Note: this is an early draft. Going through the links and trying to figure out the connection to 3D Tiles by doing websearches like companyName "3d tiles" takes a while...)

The basic structure consists of several sections, where each section contains a link+screenshot, and a short description.

The sections currently are

Further sections, with information from the RESOURCES.md, could be


This PR is only opened as a draft, for early feedback.

lilleyse commented 2 years ago

Here's how I envision the sections and layout of the page. If there's too many screenshots it becomes difficult to parse so I only have screenshots in the Featured Demos section at the bottom. This is essentially the same as "Applications and Services Using 3D Tiles" just with a different name.

3D Tiles Resources

Viewers

Tools

Sample Data

Generators

Data Providers

Selected Talks

Selected Articles

Featured Demos

Description
Description
lilleyse commented 2 years ago

And to help seed some of these categories:

Viewers

Tools

Sample Data

Generators

Data Providers

Selected Talks

Selected Articles

Featured Demos

image Ecosystem diagram from 2019

jailln commented 2 years ago

Hi, Two nice tools working with 3D Tiles to add to the list:

javagl commented 2 years ago

And to help seed some of these categories:

The current effort is less in "seeding" these categories, but rather in ... "weeding them out" or organizing them in a sensible form. To summarize the suggestion:


Two nice tools working with 3D Tiles to add to the list:

Both of them are already listed in ECOSYSTEM.md. That's one of the things that I referred to when saying that it is difficult to present all this in a useful way....


(Eventually, people will type something something 3D Tiles into Google and hit "I'm feeling lucky". But it still makes sense to have a curated list of resources, and if doing a CTRL+F search on that page leads to the expected result, that could be fine...)

jailln commented 2 years ago

Both of them are already listed in ECOSYSTEM.md. That's one of the things that I referred to when saying that it is difficult to present all this in a useful way....

Oh actually yes for itowns, my bad. Regarding the other one, I mentioned py3dtileRs (which is based on py3dtiles that is already listed but which is not the same).

I agree with you that the current lists are not so easy to go through. For what it's worth, I like @lilleyse proposition of putting screenshots only for featured demos to ease navigation in these resources.

javagl commented 2 years ago

Sorry, I overlooked that 'r'.

This is also related to some of the questions that are relevant here, and that are discussed in a similar form for the https://github.com/KhronosGroup/glTF-Project-Explorer .

(And again, as a disclaimer: I think it's good to at least have that resource information, curated, and in one place - everything that I'm talking about here is about details regarding the presentation and structure)

For this example: One can create a list

and some of these questions are:

And for each entry one can ask more specific questions:


I already considered to collect all this, in a structure similar to that used by the glTF-Project-Explorer, just to have that information in a machine-processable form in the first place. The reason is simple: Generating a markdown file from such a JSON is trivial. The other way around is impossible. But I'll at least try to create a first page, based on the information from the existing pages for now. Going beyond that wouldn't make much sense due to all the open (and open-ended) questions.

lilleyse commented 2 years ago

I already considered to collect all this, in a structure similar to that used by the glTF-Project-Explorer, just to have that information in a machine-processable form in the first place. The reason is simple: Generating a markdown file from such a JSON is trivial. The other way around is impossible. But I'll at least try to create a first page, based on the information from the existing pages for now. Going beyond that wouldn't make much sense due to all the open (and open-ended) questions.

I like this approach

javagl commented 2 years ago

A small update with an intermediate state:

I removed ECOSYSTEM.md and moved its contents into https://github.com/javagl/3d-tiles/blob/draft-1.1-resources/RESOURCES.md . The ECOSYSTEM.md only contained screenshots+links. These are now mainly listed in the table under "Applications and Services Using 3D Tiles" (which is separate from "Featured Demos"). I verified/added these entries insofar that I tried to add a short description of what the use-case is. A few entries have already been moved to other places (e.g. into the "Generators" section), but there still are a few entries that are not really plain uses of 3D Tiles, but could reasonably be considered to be Tools/Generators/Viewers/..., so this still has to be reviewed at some point.

The suggested sections have largely been filled with the suggested links. But they may still undergo a few 'refactorings'. For example, I added a section "Implementations". The reason is simply that something like cesium-native or loaders.gl are not "Viewers". Some of them are plain, direct implementations of the data structures of 3D Tiles. There sometimes are no clear borders between "loaders", "loader plugins", "visualization plugins" and "visualizers", but we'll sort that out at some point...

There are still several TODOs at the bottom of the RESOURCES.md, but I'll address them ASAP.

javagl commented 2 years ago

^ NOTE: I'll do a proofreading pass before finalizing this PR, of course...

javagl commented 2 years ago

There are still some pending TODOs, which are largely related to adding further entries in each of the current categories:

A somewhat broader question is how the original "3D Tiles Next Resources" should be weaved in there, or more generally, in how far sections will be to be explicit about whether something refers to 3D Tiles 1.0, Next, or 1.1.

But for now, I tried to bring the RESOURCES.md into a first, sensible shape so that it could be merged.

lilleyse commented 2 years ago

A somewhat broader question is how the original "3D Tiles Next Resources" should be weaved in there, or more generally, in how far sections will be to be explicit about whether something refers to 3D Tiles 1.0, Next, or 1.1.

I think it's good to be explicit, especially for items in the viewer, implementations, and tools sections.

javagl commented 2 years ago

The latter has some caveats. The connection between the respective company/product is not always obvious, and sometimes rather tangential. My starting point usually was a webseach for <companyName>"3d tiles", and/or looking at the company website directly, and the results varied:


An aside: Some of the original entries in the ECOSYSTEM.md now appear twice: Once in the table that shows the screenshots, and once in the respective category (Viewer/Generator...). There are clear-cut examples: https://map.geo.admin.ch/ only uses 3D Tiles. It is not a (standalone) viewer or generator. It only shows one use-case. But generally, separating between a "demo/example" and an "application" can be hard.

(In fact, for some of the "demos", I went the extra mile: I opened the demo and looked at the Browser->Network tab to see whether there are requests for a tileset.json or some B3DM going out, to be sure that this is actually 3D Tiles. In some cases, it was rather disappointing to see that demos just plainly do not work (at all), but maybe that's normal nowadays...)


Further steps for extending the lists would be to search for https://github.com/search?q=3D+Tiles - but I think that blindly adding further links here does not make much sense. If/when this is tackled, then the information should be condensed in a machine-readable form, including the information of whether a certain project supports 1.0 and/or 1.1, for example.

lilleyse commented 2 years ago

@javagl this looks good. I did an edit pass over the document and filled in the talks and articles sections from scanning the Cesium blog and presentations page. I left a couple TODOs for things that will be posted soon. I also removed anything that was marked as discontinued.

Eventually the Applications and Services Using 3D Tiles section will need to be filled in since most of the content there is from 2017, but that doesn't have to hold up the PR.

lilleyse commented 2 years ago

I left a couple TODOs for things that will be posted soon.

I decided to remove these TODOs in https://github.com/CesiumGS/3d-tiles/pull/680/commits/ba8cbd1fb5abe694621626e74fde00bb66ca3568 to unblock this PR. They can be added later.