[RFC] Feature Proposal - 3D tagging for building base shapes

Hello OSMers,

I have written a proposal (3D tagging for building base shapes) to introduce a new set of tags for representing the shape of building undersides, for example archways and spherical building parts, which cannot currently be accurately represented in regards to 3D rendering. I am seeking constructive criticism and comments about the tags I have proposed, particularly concerning the suffix :inverted, where I am open to changing the recommended tagging for differentiating between a downwards arch shape and an upwards arch shape, please see the Examples section for how this tag is intended to be used.

Please leave feedback on this thread, not on the Wiki talk page.

Looking forward to reading everyone’s feedback…

11 Likes

Mandy of your examples are realy complex. I would ratter recoment to use 3dmr.eu for them.

May be you could add some rather simple examples, like this:

1 Like

I can try to add some more examples, but the image you shared of a gatehouse is effectively already given as an example in this drawing

(File:Base shape round inverted example.png - OpenStreetMap Wiki)

Edit: I added example tags in the Rationale table of what tags would end up being used to represent the three different shapes pictured there.

Strongly support this concept, it is very much required. I’d had something very similar in mind, including the choice of base: prefix and eg. base:direction sense all as described.

It’s been a shame to be able to nicely define the upper half of a fancy building and then for the bottom half to ā€˜go all Minecraft’ due to the current assumption that (modern) buildings are all biggest at the bottom, with only flat-topped holes.

I’d not considered directly copying all the roof:shape names but rather adding what is needed with appropriate names. ā€˜round’ and ā€˜dome’ and ā€˜pyramidal’(or ’cone’) - and default ā€˜flat’ of course - make sense as natural mirrors of the roof ones. I was imagining ā€˜slope’ rather than the very roof-related term ā€˜skillion’ for a non-flat planar base, and something like ā€˜round_arch’ (for semi-eliptical eg semi-circular if height=width/2), ā€˜pointed_arch’ (for a Gothic one with 2 arcs meeting at a top centre corner point) and it seems flatter arches get called ā€˜segmented_arch’ (for a circular arc that has height <width/2).
(The diagrams in the proposal should reflect the semi-eliptical shape implemented for ā€˜round’, not a general parabolic-ish shape unless we more carefully define roof and base curve shapes. Actually, being able to explicitly choose a flatter arc not necessarily a semi-ellipse would be useful for roofs too, but that’s another matter).

Seems unnecessary to specify or invite use of the other roof shapes (incl onion etc) unless we really have examples? But fine if we do.

The presence and meaning of base:levels might need a little thought. roof:levels is a bit strange in being additive to the building:levels (but values of height are total with roof:height subtracted to get the walls-only height). Would base:levels also be additive? (not sure; probably yes if they are proper 1-storey arches). But base:height being subtractive like for roof makes sense. Haven’t got my head around this yet but we need to check what makes sense here. What if roof:levels and base:levels are both large so that the remaining (wall) levels is negative - this is wanted for the overall diagonally sloping building case. Also I guess same for heights for the case of the matching arched base and top, having height - roof:height - base:height as negative is a realistic case.

Another issue for the base that doesn’t occur for roof is interaction with the ground. Not an issue in many 3d renders, but already hurts peoples head with a flat building base and slopey ground where ground shape is implemented. May need to choose if we specify that the skillion/slope base is specifically meant for in-the-air undercut faces, or not. Again, needs some more thought to be sure we know what we want to do. Matching building shape to slopey ground is really another subject but it’s unavoidably linked once base shape can be set.

I’ve one other undercut shape for which this opens up only partial solutions - the lower part of ā€˜The Gherkin’ in London is a symmetrically undercut circle - which would either need a tall downward dome deeply embedded in the ground, a ring of undercut planar facets, or to stick with the current horizontal slicing. At least it’s good to have choices, even for unusal cases.

2 Likes

Thanks for your comments Cebderby, there’s some good suggestions here that will incorporate into the proposal, for example:

  • to not suggest all these roof shape equivalent values until someone finds a real life example where it would be useful
  • to change some of the roof-centric tag names to things like slope instead of skillion and arch (or round_arch) instead of round:inverted
  • proposing some entirely new, useful shapes like gothic arch and segmented arch (this one will need a bit of thought because it would be an arch shape that begins already at a very shallow angle, which isn’t something possible even with round roofs)

As for base:levels, I think in contrast to roof:levels it must be subtractive, say for example you have a 4 storey building where it has a sloped underside for the bottom 1 level, it must be tagged building:levels=4 and base:levels=1. I don’t think there’s any other way you could tag this. You can’t have building:levels=3 and base:levels=1 (for a total height of 4) because that’s really confusing in respect to existing building tagging.

I’m not really sure what point you are making in regards to how this could be affected by ā€˜slopey ground’, so I’d appreciate more info if you think there is a potential issue there.

As for the Gherkin, that’s going to be a tricky one to solve. I think it’s a similar problem to where the roof shape is a cone but there’s a multipolygon inner to create a flat central section for example (which isn’t official or supported well as far as I know). Certainly though we shouldn’t be encouraging editors to tag building shapes that go down underneath the ground just to provide the desired effect. Height=40 and base:height=100? No thanks :joy:

I haven’t updated the proposal yet, but I’ve rethought all the base:shape values that I’m going to present in the proposal. I have eliminated things like onion and side_half-hipped until I can find a real world example where those would be useful. I’ve flipped around which way is inverted and which way is normal, I think it makes more sense like this (most uses will probably be non inverted tags now). I have added a few new values such as pointed_arch and segmental_arch that were suggested. I am also featuring gabled, gambrel and saltbox, as these could actually be very useful for representing the overhangs present at the ends of some of these rooves. Also I’ve changed the tagging (for example) from dome:inverted to inverted_dome, as this eliminates the colon in the value field and is also the more natural order that a human would use to describe the shape. (ā€œThat’s an inverted dome, not a dome invertedā€)

3 Likes

I suggest taking a look at the basket arch as well which was used quite often https://en.m.wikipedia.org/wiki/Basket-handle_arch

Mentioned it now in advocating for base:shape=arch + base:shape:arch= to replace base:shape=*_arch Proposal talk:3D tagging for building base shapes - OpenStreetMap Wiki
There’s a caveat if you know bridges more. Basket handle arch bridge has a different meaning. It’s for non-vertical arches that moves closer to each other at the top. Therefore I was thinking three-centered is a better term.

1 Like

What would be the difference between round as it is now and basket arch? You can use base:height to make the arch shape shorter which seems like is exactly what basket arch is…

Therefore I was thinking three-centered is a better term.

I think it is a good term because it describes the geometrical construction

1 Like

round is quite unspecific but I would assume it means a (semi) circle. The basket arch us made from three circles (arcs)

1 Like

I’m not a fan of this three-centred arch shape, namely because it’s ambiguous the exact shape it should form. There’s some complex geometric maths going on and you would need a way of explicitly tagging the radius of the smaller arcs. (See image). When you reach a situation like this, I think it would be simpler to introduce a partial arc shape that could be used to construct complex curved shapes (for example a wavy archway, if that exists)

At a glance, it does seem workable. In fact, I’ve already gone ahead and added base:material and base:colour support to OSM2World. (Would be easy to change if we agree on some other tags.) But I can’t be sure if there are non-obvious problems unless I’ve tried implementing it. So if you plan to move this to a vote I feel there should be one or two experimental implementations first to verify the idea.

This case, for example …

… is going to be quite tricky to get right, especially if I want to support indoor mapping inside those levels which are simultaneously part of the base and the roof.

Some more unorganized thoughts: There are similar challenges with modelling the shape of windows (window:shape and especially window:top:shape), the shape of doors, and the shape of tunnels. If some terms works across those domains, that would seem ideal.

This is a minor aside, but: The tag doesn’t seem established in the context of indoor mapping, so IMO the wording shouldn’t suggest that it should be used for that either. Judging from Taginfo, the bulk of uses seem to be from imports or organized editing campaigns.

2 Likes

Thanks Tobias, any experimental implementations would be very welcome! One key thing to know for the implementation is that base:height and base:levels are both going to be subtractive from the overall building height and levels. E.g. if I set min_level=4 and base:levels=1 the base shape is going to occupy the fifth level of that building shape, not the fourth (contrasting how roof:levels works). I’ve decided it’s necessary to do it this way in order to be able to handle more complex situations where the top of the base shape could overlap with (level-wise, not literally), the bottom of the roof shape.

I’ve adjusted the wording surrounding floor:material=* to remove any suggestion of redefining that tag within the scope of this proposal. The proposal still of course encourages people to use base:material.

A V2 of my diagram of all the proposed base shapes currently in this proposal:


Please note the addition of partial_arch/arc (placeholder value, opinions please!) for creating a custom arch piece beginning and ending at whichever angle the user wishes to specify. This will also need a new tag for specifying said angles at the top and bottom of the arch. The rationale behind adding this is that some complex archway types and geometry involve too many parameters and mathematical equations to be practical to map and render. Hopefully, with a partial arch shape, this unlocks many possibilties of any type of arch or curved piece that needs to be represented. (Maybe next we can add partial arch as a roof shape!)

In addition I’ve also rewritten sections of the proposal page to reflect the new base:shape tags I’m proposing and to incorporate the feedback I’ve recieved, so feel free to re-read it. Still to come will be a proper table with all the base:shape values with example tags and real example buildings where they can be seen.

1 Like

I have problems with the basic premise that simple 3d building mapping should have any where near the level of detail that is being proposed. It was always intended as an rough approximation of the buildings outer hull not a near photo realistic model. Now while the scheme has been, not unexpectedly, misused a lot, that doesn’t justify continuing down that path, particularly considering that it makes adding actual useful information vs. eye-candy much much more difficult to add.

3 Likes

Hi Simon,

I wanted to highlight the fact that this proposal aims to reduce the misuse of building parts by providing simple shapes that 3D mappers can use instead of creating blocky undersides with dozens of building parts, where one would suffice. For example, each orb of the Atomium (Relation: ‪Atomium‬ (‪19189219‬) | OpenStreetMap) is currently represented with 21 circular building parts - with this proposal it could be done with one. Likewise, the Puerta de Europa towers in Madrid (Way: ‪Puerta de Europa Este‬ (‪11103227‬) | OpenStreetMap) consist of 27 stepped building parts each (one per floor), under my proposal this could be reduced to three.

While I agree that some buildings have been mapped in an extreme level of detail (See this church in Chelyabinsk with its 6000 building parts Way: ‪Cathedral of the Nativity of Christ‬ (‪419266377‬) | OpenStreetMap), I don’t think that warrants the argument that the Simple 3D Buildings schema is problematic in some way. I have specifically limited this proposal to only 3 new types of basic arch shape, including a partial arch in order to reduce the burden on 3D renderers to calculate the complex geometry required for some of those shapes. All other shapes in the proposal are already existing roof shapes. If, in your opinion, people are misusing building shapes or will misuse these new building shapes, it should be up to the OSM community to police how building parts are used, similar to how the response to tagging for the renderer is to engage with users doing it, not removing icons and area colours from carto simply because they’re being misused.

Additional: in response to your mention of ā€œthe level of detail that is being proposedā€ - there is no minimum, maxium or recommended level of detail being proposed or even mentioned in this proposal. It’s up to the editors how much detail they want to add, like everything in OSM.

6 Likes

Maybe we could remove the ā€œarchā€ from pointed_arch and segmental_arch for slightly shorter tags? (or alternatively, add it to round for consistency)

1 Like

I picked pointed_arch and segmental_arch because they’re very clear what they mean (base:shape=pointed to me sounds quite vague). However I chose to use round for consistency with the existing roof shape, as I felt people would be familiar with the tag and shape. I don’t think round_arch or rounded_arch is necessary as round is clear enough to me.

1 Like

@LordGarySugar, sorry for the late reply.

From my perspective this scheme looks really interesting. The latest revision (inverted_* looks down) seems to be correct.

Not much 3D renderers nowadays to experiment with, I guess authors of Osm2world or UrbanEye should do something with it :slight_smile:

1 Like