The improvements of “OSM go” are going on. I was quite proud, as the OSM weekly mentioned it. The handling and the control is usable now. There are keyboard- and URL-commands. The rendering includes building levels and train tracks. The first “Layer” is included: Keepright. It is motivating to clear the errors, marked in the 3D world. A object selector does show its OSM tags.
And did you ever see this in any tool or service?: OSM, rendered in stereo, to see it in a Google Cardboard? OSM go enables you to walk or fly through the virtual world of OSM
Read all details in the OSM-Wiki page for OSM go . There you will also find details to ongoing component states and rendering details. And a todo list at last.
The 3D rendering code was only a preliminary attempt. I wanted to use an existing renderer out of the box. In the last weeks I was no search but did not find a solution. There are really a lot of 2D renderer and even quite a view 3D renderer. Only some use Javascript and I found only one using the framework Three.js. Unfortunately, most of this renders are comertial, even if the code is open source. The client part at last. Often, important functions like OSM tag analysis are hidden in the tile server. They all use a 2D layer as Basis, bridges are not placed in the 3D space as I intend to have. Its almost impossible to read all the pages of so many projects, analyse all the supported features of all tools. I would like to make/have an overview as a table. A good start is the Wiki page for 3D_development.
- First I had an eye on OSM2WORLD. It offers a more and more realistic view, less data visualisation as I intent. It is written in Java. I remember a framework to run Java in Javascript. May be I just could take the logic like tag analysis.
- Next was OSMBuildings. Using Javascript but not Three.js but WebGL direct. I had some nice talk and mailing with its creator Jan. We even considered to do a re-implementation with Three. We still try to find a way to work together. But Mapbox seems to be a better place to go for Jan.
- This days, Mapbox announced its 3D service. Their renderer also uses WebGL directly. The Tiles are binary and kind of a blackbox to me.
- There is only one 3D render using Three, as far as I know: vizicities. I can’t see much there because the Mapzen tiles it uses are offline now. I will try to update it.
Because of the commercial character of the projects, I do have my doubts. If I add features, they may merge it out of my control, they may change their source incompatible to my code. And if the tile server does to much, I will not be able to do what I have in mind. At last, ist’s a hard point to get into a big bunch of code. So I desided to stop my search and improve my simple renderer as much as long as it will be fun. Most renderer try to show a more or less realistic scene. That’s not a aim of OSM go to become perfect, but do present the OSM data as a abstract, dynamical view with access to all tags and data. And to edit the data! That’s why the next steps will be data and object selection and first edit features. To avoid bad newbie edits, I think about edits, related to the 3D visualisation, like building height and roof type.
Another aim of OSM go is, to experiment mit new features, i.e. a way to move through a augment or virtual world. So the meaning of “go” changed from “as Pokemon” to “go around in OSM and experiment with the data”. One next experiment will be a “Segway-Mode” for 3D glasses. May be avatars to meet other users virtual, chat and edit together. OSM go started as a diffuse gameplay idea and extended to something to “does anything”. But the Idea to improve the OSM data by players is still there. Add missing house numbers to get points, why not. A player will expect an experience with high scores, competitions, batches and motivating optical effects. I would love to code such things. But I need help, may be an artist and designer to develop the whole gameplay.
The Code is still in a beginning state, buggy sometimes, not tested with all devices. Please try it and tell me, how it went, what was nice, what was odd. What should be changed and how. Are you missing a feature or would like to try something special? Think about OSM go as a sandbox. Make a draft and I may implement it. Do you like a feature for your project? I would love to help to include it.
Discussion