Hi Marc,
Welcome to this working group !
This is great that you provide a use case and ideas regarding the API.
Let me try to address your points, see if the rest of the group agrees/disagree..
1. Computing BBox (I used AABB, since only axis aligned viewpoints where computed in this first experiment, but OBB should be interesting too).
Yes it is one of the main goal of the 3D REST API to provide information about the 3D models before the user decides to download the model in its application. Bounding boxes of various kinds make sense as a request for this API
2. Computing viewpoints (default axis aligned viewpoints is a good start, but being able to compute direction from position or position from the rotation would be more interesting).
I am not so sure that is necessary, my thoughts are the app should be able to calculate this from the info retrieved from the rest API. This said, I can imagine cases where it is not possible to calculate such position, but instead store camera information and metadata with the model could make sense. For example, a building would have a camera that show the front of the building, which would not be possible to calculate without knowing where is the front…
3. do you expect these 3D-REST services to be extensible? In case we state that it's impossible to specify the complete set of possible (and needed) services, the way to specify a specialization of the services in regard with a generic model would have to be explicitly defined -> specialized services could then be discovered on-the-fly and made accessible over a wide network.
Yes, extensibility is build in the spec, and a by product of url / namespace. I tried to write this down in the ‘spec’. Versioning the API is also built-in.
4. Transformation between formats. Being able to export to at least one format easily usable with WebGL is a must have. Being able to translate between several formats would be great.
I am not thinking about this API in term of file format per say. I can imagine to be able to request the data in whatever format it is stored into. Some servers like ourbrick covert everything to collada and that is what is provided if you ask for downloading the data. Some servers store the original file, and may provide a different format as well. Some store the file in many formats. So, yes, the API should provide access to those, but… I do not see the need to conversion as I see the API to be able to provide information about the model, returning values in XML/JSON/… , and possibly the app to use this to reconstruct what it needs. This will probably require several iterations over the API to provide enough queries, and understand what the return values should be. For instance, what seems to be the right return format for WebGL or other webapp seems to be typed array instead. So I can imagine an API asking to return specific data from a model, expresses how the data should be encoded in a typed array, and use the model ..
5. Merging meshes. Just to reduce the number of draw calls. This implies that there is a way to get the scene graph so that the application can chose which nodes to merge.
Yes, all kind of data processing could be available, and combined as you may not want to spend time downloading/uploading when several processes need to be applied on a model.
6. Reducing mesh complexity. This one is tough, but removing tiny details or degenerate triangles could make things easier on the presentation part.
Sure, that too. I can envision even some web services providing such service for a fee if they provide a good quality implementation. Or maybe crowdsourcing.
Regards
-- Remi