Re: Useable content?
"@onefang: Pray do tell more!"
Well, since you asked...
I had long been involved in Second Life / OpenSim. The Second Life viewer was open sourced long ago, and as is typical with crap code, lots of people forked it. The Second Life server was never open sourced, so some people wrote a clean room implementation of the server called OpenSim, which is open source. Almost as crap, and people have forked it. Some company hired me to work on their custom viewer. Some other company hired me as their long term viewer developer, and I also helped run their OpenSim based grid.
With that experience under my belt, yet another company eventually hired me to add Oculus Rift support to their custom OpenSim viewer. This was before Oculus Rift was released to consumers, so I bought a Rift DK2 and ported the Rift code from the CtlAltStudio viewer to this companies custom viewer, which I recall was largely based on the Imprudence viewer. I understand at a trade show Angela Merkel submitted to the experience of my VR code and didn't throw up.
Someone wrote a viewer for Android, which I believe now supports Google Cardboard or Daydream, I've not tried it.
Finally we get to the interesting bit. The local city councilor, being the only person I had ever voted for that actually won, got into a discussion with me at a protest he had organised. I mentioned the above things to him, or some of them. He often uses Google Street View to show people various things around his ward, especially planned changes. He was interested in taking this to the third dimension, and adding his own stuff. So I dragged my Oculus Rift development system to his office, gave them a demo, and we made plans. I was part way through a from the ground up rewrite of Imprudence viewer and OpenSim, since the original code bases are pure unadulterated crap, but that project was no where near ready for this job. He would have preferred a web based option, but there was no mature open source solution for that. So we could wait a few years for the code to be ready, or go with stuff that works now. Who knows, in a few years time he may no longer be a city councilor, so we went with the later option.
So the plan was to use various bits of data, including OpenStreetMaps, to build an OpenSim based grid that replicates the city ward he is responsible for, and to script various bits of the city so that clicking on them switches between existing city and planned city. Either running a viewer on his laptop, or an Oculus Rift, or the Android viewer on a phone, to show the things he was using Street View for. Also letting people have guest accounts, so they can wander around on their own.
I wrote a Lua script to collect elevation data from here, overhead photos from there, building data from elsewhere, and build a small database of data and textures, to be read by a C# OpenSim module & LSL script I wrote that created that section of our city in his grid. Second Life / OpenSim avatars are generally giants, so I scaled things down to be life sized, and even spent a lot of time walking around the virtual / real city with stop watch / tape measure in hand, to keep it real. Basically you stand in an empty grid, enter longitude / latitude for the part of the world you are interested in, watch as the world grows around you, then go for a wander.
The big problem was the building data. OpenStreetMaps has protocols for including building shapes in it's database, but since it crowd sources its data, we had to rely on the crowd to source the data. No one had added any building data to our part of the world. The councilor wasn't able to find a city council source of that info that I could use. So I have created an OpenSim grid that replicated our local council ward, with accurate elevations, reasonably detailed photos of the ground and building roofs, but no actual buildings. sigh
I should dump this project in my GitHub account some day, and find a part of the world with building data so I can finish it. Alas the councilor is stuck with Google Street View for now.
Ya had to ask, didn't ya.