Just a few informations on what we are currently working on at Oslandia, which could be of interest for the discussion.
We are busy with PostGIS 3D implementation, and we have some progress done.
You can read more about it here :
Some more insights into PostGIS 2.x and 3D are in those presentations :
And find some code here :
Our aim is :
- to build a full 3D support for PostGIS, with 3D object, and textures as a second step. It will allow for storage (already in) and processing of 3D objects, just as you can do it with 2D data.
- to build on top of that a «streaming» server for 3D objects. It is not streaming per se, but it’s a 3D vectorial data access webservice. It will be implemented using PostGIS 3D features and TinyOWS (part of Mapserver) WFS-T fast server. It will probably output CityGML first, but collada (KMZ) and X3D are candidates we will for sure consider. REST webservices would be great too, even if our first target is OGC webservices compliancy (yes, I know…).
- Have tools to import / export data to and from postgis 3D (from collada/KMZ, CityGML)
As for now, PostGIS 3D foundations seem good. The next steps are :
- discuss integration of the 3D codebase into postgis core (at OSGeo Boston code sprint)
- improve available 3D operations in the database
- start implementing the webservice part
Among the operations to be found, we have extrusion, straight skeleton (for roof generation) and much more (see current CGAL features).
The following steps will be :
- integration of 3D objects from webservices into 3D web clients (cesium, opengeoglobe, openlayers 3)
- data edition
Note that 3D objects are in the Cesium Roadmap, and Openlayers 3 will probably use Cesium for 3D. As for data edition, it needs to be thought about…
We will work hard this year to have as much of this stack as possible implemented. We are open to any contribution and help, just follow the projects on their respective source code repository and send pull requests, or write to respective mailing lists.
If you are interested in collaborating, do not hesitate to send a direct email too, as we do not follow this forum closely.
We will have to think about scalability as well, but PostgreSQL/PostGIS has made great progress lately, and probably with decent hardware, sharding and replication we can handle quite large load. If it’s not enough, caching 3D objects in a NoSQL database (memcache, redis…) could be an option. This would depend on the exact use case and will probably need prototyping and testing.
All that do not answer right now to the OP needs, which are different, but I hope it gives you some matter to think about for the future, and answer !i! comments on a full-featured 3D object streaming stack.