3D Model Repository

Now i can see my model on OSMgo24 but it’s rotated 90 dgr on z or x axis i think.
In the repository i see that you can rotate the model on vertical axis - which one of them is that x,y or z?i think it’s y.Because i try to rotate the model but i can’t get it right - my model needs to be rotated on another axis.
I rotate the model and even try to switch axis between them in C4d and i exported the model after that but after i upload it,on OSMgo24 it still doesn’t have the right rotation.

and tell me about F4map,does it support these 3d models?

Thanks for these reports. I’ll see what I can do about them.

No. Admins can hide them, however. Perhaps we could extend that feature to also allow hiding if you own the model file.

Place the model normally in C4d, as you exported it the first time. Then, when exporting as OBJ, there might be an option to export it with Z as the up axis. There’s this option in Blender, maybe C4d has it too (I’ve never used C4d).

I’ve never heard about F4map supporting 3DMR.

F4Map use their own, non-free 3d models. So far, they haven’t expressed an interest in supporting 3DMR, but they’d be welcome of course. :slight_smile:

Wow, thats an amazing project. I dreamed about an OSM related 3D-modell database since a while (having 3D buildings, connect them with an OSM way/node, replace them in 3D renderings) and you exactly realized it. Just saw the FOSSGIS-Talk (german language) - unfortunately my Blender skills aren’t the best but maybee it’s enough to try a simple modell.
Much thanks for your work, I hope this projekt grows and becomes better known in the community!

Thank you for the kind words, and I hope you enjoyed the FOSSGIS talk! Looking forward to your contributions if you manage to tame Blender! :slight_smile:

Yes, I added the tag in OSM. Just to a Node, about at the right place. There is no Building in OSM to correctly add the 3dmr-tag, could you add it? And you should edit the size value of you model in 3DMR or in C4D. In OSM, 1 unit is 1 Meter. Then you will see this:

We need to add more documentation to 3DMR, may be even a tutorial - as video.

The orientation value in the 3DMR is meant to rotate the model to the real compas direction of the building. Values for switching axises could be added to 3DMR but I hope, you will be able to correct it in C4D. If you still have trouble, tell me, we will solve it, together.

  • The start page of 3DMR shows the 6 last imported models. It takes quite a while until the models get visible. :roll_eyes: May be there sould only be pitures (screenshots of the rendereing). The rendering, rotating and scaling may be in the single model view only.

  • Quite a view models don’t render well. An info/error-message would be helpfull. I know, its on GitLab. I realy sould start to help there. :sunglasses:

Ok now the orientation/rotation and scaling of my 3d model it’s pretty ok.I don’t know exactly what i did in C4d - i flipped the Z Axis,swaped Y/Z axis,swapped faces in the obj. exporter options but in the end it turned ok.

Another aspect to consider it’s clearing the browser cache after you revised your 3d model,because in the first time i didn’t clear it all the time,and thus i couldn’t see all the “transformations” on the Osmgo page.

I should correct the position of the model,i mean move it in the horizontal axis,but this i think it should be fixed with making the area of the building in Openstreetmap editor and then assign the right 3dmr tag to it,isnt’it?

In OSMgo, the values of the parameter “origin” of 3dmr.eu are used now, to shift the zero/rotation point of the model. Meaning: [right,near,elevate]. :slight_smile: Mind: If you edit them, they toggle the sign! I think, it’s a error :confused:

To test the values of “origin”, 3D models now can be moved (shift & arrow keys), elevated and rotated (no shift) if selected. :sunglasses: Just click on it (only in control mode “View”, key X to select it).

It’s not final. We have to define a lot of things - later.

Moved flying 3D model Tardis

There is a new visible 3D model /9 . It has to be scaled yet.

And there is an error in the Javascript code, to be investigated.

https://osmgo.org/go.html?lat=46.11468713&lon=3.68270798&ele=7.96&dir=38&view=-30&dbg=1&fps=10&con=1&tiles=1&opt=0&name=montagne

church in OSMgo

In the last days, some models have been uploaded. Rendering them and implementing was a challenge, may questions raised. Some user of 3dmr.eu missed descriptions. This is a collection of topics. Please check them, if I am correct. We should place the user documentation to a Wiki page and work it out incrementally. It’s not done, the more difficult obstacles are still on the way. (I did not code the replacement of relations and building:parts yet.)

  1. Create and upload Zip-file.

  2. Tag model in OSM

  3. Fine tune parameters metadata of the model

  4. Create and upload Zip-file

  • Edit your own 3D model or find a good one. In this case clarify the copyright! You may use Blender, Sketchup or any tool you like. Set the positive y to the north and positive x to the east,

  • The file format actually is OBJ with MTL. Both should have the same name. There may be multible material files JPG, PNG? No unused and none missing please. It would be better, if the images sizes are power of two (i.E. 512x256). Don’t add extra data, as macOS used to do! (You may clean the zip by the two commands: zip -d name.zip *.DS_Store zip -d name.zip "__MACOSX*”)

  • Put all the files on one ZIP file. Do not use any path, just a flat list. There mustn’t any path in the MTL file to!

  • Later we may also support other file formats like Collada

  • Login into www.3dmr.eu with you OSM login. (AOout??)

  • Add a new model by “Upload Model”. Give it a name, description, tags and categories (more hints needed)

  • If it is a uniq object, set its position by map or values. The GPS position is NOT the position used by the renderer, only to find repository models in an given bounding box.

  • You may already know the scale

  • A model like a bench should have its origin at the center, to make rotation possible. To adjust this, you may set the offset origin values now or later by testing it out. The meaning of the 3 values are: with/right , dept/back , elevate up. Their unit is the models unit before scaling, not afterwards in Meter.

  • The rotation value may be needed to let the modes direct to the expected side (like a bench is directed to the view you have, if you sit on it. All instances of i.e. a bench should have its direction tag. So both values later are added by the renderer. The direction tag may also be “along” to place a bench along the nearest way it is placed to.

  • A unique model like the Eiffel Tower may only use the repository value.

  • Licensing: More Info!

  • And finally upload the ZIP file

  1. Tag model in OSM
  • Multiple used models like a benches usually placed by an OSM Node. So just add the Tag “3dmr” = “id-number” (or uuid, mesonic name, in discussion) For objets like a bench, an Tag “direction” is recommended. See the wiki page for all the options. - The default symbol or object, the Node usually is shown will not get rendered but replaced by the model.
  • A model may also be tagged to an OSM way, like a “building" or an small “amenity”. Never on open ways? How is the “center” of an area calculated? All renderers should use the same algorithm. Maybe we need an pseudo code for it. If it is a unique used model, the origin Metadata may fit the model to the right place. - The default object, the Way usually is shown will not get rendered but replaced by the model. That includes all building:parts inside this area, partial to?
  • An OSM relation is NOT adequate to place a model because it does not have a defined position. But the “outer” member as an are is fine. In this case, all member objects of the relation will not get rendered but replaced by the model, also including building:parts. If the area, a relation covers does not fit to the model, the model should be divided in multiple parts, an extra relation for a model should be avoided.
  1. Fine tune parameters metadata of the model
  • Depending on the data refresh cycle of the used 3D renderer, that may be a view minutes with overpass, the model should now be visible.
  • Changing the Metadata in the repository should be valide at once. Refresh the rendering (mind the cache!) and repeat this until the model is placed accurate. The 3D renderer may provide an interactive fine-tuning of the model and set direct or show you the values to edit into the metadata.

Now scaling is also posible. :sunglasses:
The controls are soft now, the display unified for all values

Fine tuning of a 3D model, rendered out of http://www.3dmr.eu
Click the model to select. Start to find out its metadata
<> rotate/direction ^v scale
shift <>^v and pageUp/down to place origin (right,back,up)
0 or o reset all

Tweet with movie: https://twitter.com/OSM__go/status/984003969071673346 :smiley:

How to get from a model in 3dwarehouse.sketchup.com to 3dmr

In 3dwarehouse:

If no Collada.dae file is present, download the SketchUp.skp
Open skp in SketchUp (I user 2017)
File Export 3D Model to *.dae .... wait
Set the Options! Two-Side, NO Edges, Export textur maps
Next to the Name.dae will be a folder Name with the textures.

Open Blender

Erase the block and import the dae. Textures are NOT visible
Export to OBJ .... wait
Set the Options! NOT include Edges, Write Materials
You will see a Name.obj and Name.mtl but NO Textures. Use the folder from SketchUp

For 3DMR.eu you need more steps:

Move obj and mtl into the folder from SketchUp
Edit the Name.mtl and remove (Text replace all) all path at the texture files
Create a ZIP with obj, mdl and all textures and upload it to 3DMR.eu

If you check the log output of OSM-go you will see a lot of warnings because the texture sizes are not Power-of-Two. It works anyway. To be perfect, resize the textures to the values of the warnings before you ZIP the model.

Hi all,
when I try to login at https://3dmr.eu/ I got a “Server Error (500)”…

Login is broken? After Logging in by OSM, I get Error 500.

3DMR is online again!

From my friend Martin, I got a small container-crane and uploaded it. Th moving parts are missing yet and will follwe. 3DMR does not support moving models yet (windmills, London Eye, etc. but also moving sequences like building site cranes etc. That may be done one day to.

It was not to much work to place multiple instances of the crane in OSM. As I assumed, there were some cranes, visible by satellite images, in the port of Cologne (Köln) and (hurray) there were already nodes in OSM: https://www.openstreetmap.org/node/2561999495

I had to add the tags 3dmr and direction. And I had to move one of the nodes to have them all at the same distance to the water:
http://osmgo.org/go.html?lat=50.97991&lon=6.97676461&ele=37.12&dir=158&view=-16&name=crane&tiles=6&opt=2

Cranes in Cologne port

The tagging of the nodes just did say: container crane, no size, no type nor the company it was build. But because it is not at a see port, it most probably its a small crane, not a big container crane for oversee ships. In theory, any node, tagged the same way could be replaced by a crane model without the 3dmr-tag. Well, you need some AI to find the water border and adjust direction and position this way :-o Yes, I am dreaming.

For now it should be done manually. Overpass does show uns quite a view cranes as candidates.
node"seamark:crane:category";
But there are a lot of other types! We could ask the building company for a list. They would get dubious, wouldn’t they? This one looks good:
https://www.openstreetmap.org/edit?editor=id&node=2544979831#map=17/51.62641/6.60709

Adding the tags is done quickly. Even the direction is easy to set by iD. Only the position is a problem. May be we should set the 0.0 point in 3DMR to the water border? No that would mean to shift all notes to this point to. In OSMgo is a nice function to find the coordinates for 3DMR. It also should be able to find the needed lat/lon for the node.

Good work -karlos-!

I’m thinking about the possibility of integrating a 3D renderer that works in the browser (such as OSMgo) into the upload model and edit model forms to set these values, so that they’re easier to fill.

That would be reasonable. It could be a simplyfied version of a renderer & editor. Even the latest http://vrmap.kairo.at looks good for this.

Model Update:

Hi karlos, thanks a lot for your efforts in supporting 3dmr! I’m only getting around to responding now, but I have a few comments to your posts:

The direction tag isn’t just used for 3dmr – it’s a popular key used by quite a few applications. So I believe we should follow the existing rules for the tag instead of using 3dmr-specific values. So far, “along” is not an established value for direction.

I think 3dmr models could be linked to open ways in some cases, e.g. for bridges or even an unusually pretty/remarkable barrier=wall.

Yes, such a set of instructions should probably include instructions to check the license, for example:

Make sure that you have the right to publish the model under one of 3DMR’s licenses. This usually means that you created the model yourself or that the author gave you explicit permission. Models found online are rarely suitable for 3DMR! Also make sure that the same applies for the textured used in the model – textures from proprietary sources such as Street View cannot be used.

@Tordanik

Direction: A bank to sit on usually faces to the way, next to it. We should have a tagging for this. May be I did see it as roof:orientation. Next to direction we could support the tag orientation=parallel/opposite/etc., or whatever you like. Please make a recommendation.

I would set paralles as the default rendering (except the code of OSMgo is so verkorkst, it cant’t be done there :smiley: )

Open ways: Bridges are a good argument. So we should have Ways, open or as arrays. But we also must have a definition, how the resulting point is calculated!

NEXT? I was happy to see, the HTML-Error 500 got fixet. This project seamed almost abandoned. There are some todos (documentation, discussions) but no activities, sadly. As a last contribution, I am just in an dialog about including a small 3D renderer into the server (rather not OSMgo), to solve the idea of @n42k.