CesiumGS / CesiumGS/cesium

3D Model Entity API at a disadvantage

Open
#7,831 1 comment 4 reactions 0 assignees View on GitHub
category - entity type - enhancement
Dominant language
JavaScript
Stars
15.8k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

Users of 3D Models at the Entity API level are limited in what they can do, because of the one-way transfer of information between that level and the graphics primitive level. This is not a problem for things like points and labels, where any given label doesn't need to tell the API user anything new that the user didn't already tell it.

But in the case of 3D models, after telling the Entity Model graphics which model file to load, there's plenty of new information to be had about this particular model beyond just the timing of its readiness, including:

- A list of available animations that could be controlled
- A list of available nodes that are available for nodeTransformations
- Coming soon, a list of [AGI_articulations](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/AGI_articulations) that could be articulated or pointed

Now take the case of CZML. We know that CZML is one-way down from the server. But it's not unreasonable to ask the server to do its own inspection of the server-side copy of the model, to understand the available animations, node transformations, and articulations, prior to constructing the CZML stream to send down.

The same is not true for users of the Entity Model API. These users shouldn't have to deeply inspect the glTF on the client, since Cesium is already responsible for doing so on the same client. This would double the memory and double the processing time, and increase the required amount of code, for a client to attempt this on the same system where it had already been performed.

So, I think the ModelGraphics API needs a way to expose certain pieces of information (listed above) to API users, even if these pieces will not be used by CZML.

/cc #7378 #4727

Contributor guide

Open the contributing guide

Research direction

Review the ModelGraphics API and the related issues #7378 and #4727 first. Define how Entity API users should access available model animations, nodes for nodeTransformations, and future articulations, and consider how this information relates to CZML and client-side glTF inspection.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, computer-graphics, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.